capteur-dht11.ino

Arduino UNO R4 Minima · Fichier : capteur-dht11.ino · Langage : Arduino · Usage : Relever température et humidité avec un DHT11

Le DHT11 fonctionne à l'identique sur le R4 : la bibliothèque Adafruit est portable sur le core RENESAS. Le relevé toutes les 2 s avec contrôle d'erreur est le patron de base de toute station météo maison.

Matériel requis

Une Arduino UNO R4 Minima (Renesas RA4M1, Cortex-M4 @ 14 MHz, 5 V, DAC 12 bits, sans radio) alimentée par USB ou 6-24 V. 1 capteur DHT11 (module 3 broches) + résistance 10 kΩ si capteur nu.

Câblage

VDD sur 5 V, GND sur GND, DATA sur D4 avec pull-up 10 kΩ vers 5 V.

Fonctionnement

readTemperature/readHumidity déclenchent le protocole 1 fil ; un NaN signale une trame perdue, réessayée au cycle suivant sans bloquer loop().

Exécution

Arduino IDE 2.x (core « Arduino UNO R4 Boards » installé), choisir « Arduino UNO R4 Minima », sélectionner le port et Téléverser. Le moniteur série est à 9600.

Variantes

Passer au DHT22 (±0,5 °C), ou afficher les valeurs sur la matrice LED du R4 WiFi en mode défilement.

capteur-dht11.ino

// DHT11 sur D4 : temperature + humidite vers le moniteur serie.
#include <DHT.h>   // "DHT sensor library" (Adafruit) via le gestionnaire

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

unsigned long t0 = 0;

void setup() {
  Serial.begin(9600);
  dht.begin();
  Serial.println(F("DHT pret"));
}

void loop() {
  if (millis() - t0 < 2000) return;   // cadence mini du capteur
  t0 = millis();

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println(F("lecture ratee (cabling ?)"));
    return;
  }
  Serial.print(F("T = ")); Serial.print(t, 1);
  Serial.print(F(" C | HR = ")); Serial.print(h, 1);
  Serial.println(F(" %"));
}

// Le RA4M1 est plus rapide que les AVR : les temporisations
// 1 fil du protocole restent generees correctement par la lib.

← Retour à la fiche