Wemos propose une grande gamme de cartes d’extension (Shield) pour la Wemos 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.

Déballage du shield DHT22

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 wemos d1 mini dht22 unboxing deballage

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 wemos d1 mini monte empile assemble

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.

ide arduino librairie dht

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.

Avec ESP Easy : une sonde de température/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…

esp easy configuration device dht22 wemos d1 mini shield

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.

 

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

2
Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de
visvic

Hello,

L’article date quelque peu maintenant, mais je souhaiterais connaitre la hauteur total de l’ensemble.
Hauteur qui commence du dessous de la wemos d1 au dessus du dht 22 (je n’utiliserai pas l’extension de PIN)

merci par avance l’ami 🙂

Bonjour visvic, l’ensemble mesure 15mm (en soudant le DHT22 vers le bas ce qui est plus compact), sinon 23mm sans prendre en compte les broches de la Wemos. Pour obtenir quelque chose de plus compact, vous pouvez prendre le nouveau shield DHT12 http://s.click.aliexpress.com/e/c4UI8Cti. La sonde peut être détachée et déportée, une idée géniale. A très bientôt

Domotique et objets connectés à faire soi-même