capteur-dht.ino
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.