capteur-dht.ino

Particle Photon · Archivo : capteur-dht.ino · Lenguaje : Arduino · Uso : Lire un DHT11 et publier température/humidité toutes les 30 s

El sensor DHT11 entrega temperatura y humedad, publicadas a la nube cada 30 s como evento privado. El ritmo respeta el límite de flujo de Particle y la batería; el JSON cabe en 64 bytes.

Hardware

Un módulo Particle Photon (Wi-Fi 2,4 GHz, microcontrolador STM32, blindaje metálico) alimentado por USB o VIN. 1 sensor DHT11 (módulo de 3 pines) + resistencia de 10 kΩ si va suelto.

Cableado

VDD a 3V3, GND a GND, DATA a D5 con pull-up de 10 kΩ a 3V3.

Funcionamiento

La librería Adafruit controla el protocolo de 1 hilo; el resultado se formatea en JSON y Particle.publish lo sube como evento privado (visible solo para tu cuenta).

Ejecución

Con el CLI de Particle: particle flash --serial (modo DFU, doble reset) o flash OTA cuando la placa esté en línea. El Safe Mode (reset + WiFi) sirve para depurar.

Variantes

Pasar a DHT22 para ±0,5 °C, o almacenar localmente (SaveToSparkFile/SF25) cuando la nube no está disponible.

capteur-dht.ino

// DHT11 sur D5 + publication periodique vers le cloud.
// Bibliotheque : "DHT sensor library" (Adafruit) via Particle Build.
#include "DHT.h"

#define TYPE_DHT DHT11
DHT dht(D5, TYPE_DHT);

unsigned long dernierePublication = 0;
const unsigned long PERIODE = 30000; // 30 s : menage la limite cloud

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  if (millis() - dernierePublication < PERIODE) return;
  dernierePublication = millis();

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println(F("lecture DHT ratee"));
    return;
  }

  char trame[64];
  snprintf(trame, sizeof(trame),
           "{\"t\":%.1f,\"h\":%.1f}", t, h);
  Particle.publish("mesures", trame, 60, PRIVATE);
  Serial.println(trame);
}

// getTemperature() (API systeme) donne aussi la temperature du MCU.

← Volver a la ficha