capteur-dht.ino
Le capteur DHT11 fournit température et humidité, publiées vers le cloud toutes les 30 s en événement privé. Le rythme ménage la limite de flux Particle et la batterie ; le JSON tient en 64 octets.
Matériel requis
Un module Particle Photon (Wi-Fi 2,4 GHz, microcontrôleur STM32, blindage métallique) alimenté par USB ou VIN. 1 capteur DHT11 (module 3 broches) + résistance 10 kΩ si capteur nu.
Câblage
VDD sur 3V3, GND sur GND, DATA sur D5 avec pull-up 10 kΩ vers 3V3.
Fonctionnement
La bibliothèque Adafruit pilote le protocole 1 fil ; le résultat est formaté en JSON puis Particle.publish le monte vers le cloud en événement privé (visible par votre compte seulement).
Exécution
Avec le CLI Particle : particle flash --serial (mode DFU, double reset) ou flash OTA une fois la carte en ligne. Le mode Safe Mode (reset + WiFi) sert au dépannage.
Variantes
Passer à DHT22 pour ±0,5 °C, ou stocker en tampon local (SaveToSparkFile/SF25) quand le cloud est absent.
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.