capteur-dht.ino

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

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.

← Retour à la fiche