Test du shield LoLin d1 mini DHT11 ou DHT22 avec du code Arduino ou ESP Easy • Domotique et objets connectés à faire soi-même

Wemos propose une grande gamme de cartes d’extension (Shield) pour la LoLin D1 Mini. Elles sont regroupées dans cet article de présentation au fur et à mesure de leur sortie. Dans ce tutoriel rapide, nous allons découvrir comment assembler le shield DHT22 et l’utiliser dans un code Arduino ou à l’aide du firmware ESP Easy.

Article actualisé le 21 avril 2020

Déballage du shield DHT22 pour LoLin d1 mini

Comme toutes les cartes Wemos, celle-ci est livrée avec 3 types de connecteurs à souder :

  • Pour platine de prototypage (breadboard)
  • Connecteur à superposer court
  • Connecteur à superposer long

La carte mesure 36 (longueur) x 25 (largeur) x 9.6 (hauteur) mm. Il faudra ajouter quelques millimètres supplémentaires en fonction du connecteur choisi.

Shield DHT22 pour Wemos D1 Mini

Une fois assemblé, on obtient cette configuration par exemple. Il est encore possible d’empiler d’autres shields (écran OLED, alimentation sur batterie…)

Shield DHT22 assemblé sur Wemos D1 Mini

Le Shield embarque un DHT22 tout à fait classique, le même que l’on retrouve dans les nombreux kits d’apprentissage Arduino / Raspberry Pi. On va donc pouvoir utiliser les librairies déjà développées pour les 2 plateformes, ou disons plutôt les 3 plateformes si on considère l’ESP8266 comme une plateforme à part entière. Le DHT22 (ou le DHT11) est soudé sur la carte d’extension. Il n’est donc pas possible de choisir la broche. On ira récupérer les mesures sur la broche D4, équivalent au GPIO-2 de l’Arduino.

Code Arduino

Avant de commencer, il est nécessaire d’installer la librairie Adafruit (la plus utilisée). Elle est très facile à installer depuis le gestionnaire de bibliothèque de l’IDE Arduino. Créez un nouveau sketch et collez ce code. Inutile de modifier la broche.

/* DHT Shield - Simple
 *
 * Example testing sketch for various DHT humidity/temperature sensors
 * Written by ladyada, public domain
 *
 * Depends on Adafruit DHT Arduino library
 * https://github.com/adafruit/DHT-sensor-library
 */

#include "DHT.h"

#define DHTPIN D4     // what pin we're connected to

// Uncomment whatever type you're using!
#define DHTTYPE DHT12   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");

  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Impossible de lire la sonde DHT!");
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" *C ");
  Serial.print(hif);
  Serial.println(" *F");
}

Source : https://github.com/wemos/D1_mini_Examples/blob/master/examples/04.Shields/DHT_Shield/Simple/Simple.ino Téléchargez le programme dans la Wemos et ouvrez le moniteur série pour recevoir les mesures. Plusieurs exemples ont été mis à disposition par Wemos sur Github ici

  • Simple.ino : exemple ci-dessus
  • SimpleServer.ino : un bon exemple pour apprendre comment développer un ESP8266 comme un serveur WEB. Un ouvre un page internet dans un navigateur pour lire les mesures renvoyées par la sonde.
  • DeepSleep.ino : un exemple intégrant la mise en sommeil et le réveil à interval régulier de l’ESP8266 pour une utilisation sur batterie.

ESP Easy R120 ou Mega : une sonde de température et humidité en 5 minutes chrono !

Si vous n’avez qu’une petite sonde de température connectée à développer, ESP Easy suffira amplement. Les capteurs DHT11/DHT22 sont très bien gérés. Si vous débutez avec ESP Easy, suivez ce tutoriel pour installer le firmware et vous configurer la connexion Wi-Fi de la Wemos D1 Mini. Un fois connecté, allez à l’onglet Device et cliquer sur un Edit (n’importe quelle ligne). Dans la liste des Devices, choisissez Temperature & Humidity – DHT, puis ajustez les paramètres comme ceci

  • Name : donnez un nom.
  • Delay : le délai de rafraichissement des mesures. Inutile d’aller trop vite.
  • IDX / Var : choisissez un identifiant (1 à 255), différent de 0 sinon ça ne fonctionne pas. Si vous utilisez Domoticz, ce sera l’identifiant interne
  • GPIO : obligatoirement GPIO-2
  • DHT Type : sélectionnez le type de votre carte
  • Cochez Send Data si vous voulez envoyer les mesures à un serveur domotique
  • Formula : pas vraiment utilise
  • Decimals : vous pouvez limiter à un chiffre après la virgule. C’est bien assez.
  • Nommez les variables 1 et 2. Choisissez un nom court, sans espace ni caractères accentués. Il est utilisé pour identifier les variables pour communiquer avec un serveur domotique, MQTT, etc…

Vous pouvez maintenant intégrer très facilement votre sonde à une serveur domotique (Jeedom, Domoticz) ou récupérer les mesures avec Node-RED pour créer de graphiques avec Grafana.

Tous les shields compatibles LoLin d1 mini

La liste détaillée et les informations techniques des cartes d’extension pour L’ESP8266 LoLin d1 mini sont mises à jour régulièrement sur cette page.

Avez-vous aimé cet article ?