ESP Easy: DHT22 + BMP180 pour créer un baromètre BME280 virtuel

Promos Gearbest Soldes Amazon jusqu'à -60% Soldes Cdiscount Soldes Darty

Dans ce tutoriel, nous allons voir comment créer un instrument virtuel en combinant plusieurs mesures d’autres capteurs dans un Dummy Device du firmware ESP Easy. Un cas concret d’utilisation est de combiner la mesure d’humidité obtenue à l’aide d’un DHT11 ou DHT22 avec la mesure de pression atmosphérique réalisée à l’aide d’un BMP180. En combinant les trois mesures, ou pourra simuler un BME280 très facile à intégrer dans Domoticz par exemple.

Si vous débuté, vous pouvez commencer par lire ces deux articles d’introduction :

Matériel nécessaire

esp8266 Wemos D1 mini Module ESP8266 ESP-12. Par exemple Wemos D1 Mini
chargeur raspbery pi 3 5v 3000ma Alimentation 5/3A micro-usb
BMP180 Capteur de pression atmosphérique

BMP180

Broches DHT22 Capteur de température et d’humidité

DHT11 ou DHT22

oled ssd1306 ecran i2c Ecran OLED monochrome 168×64 pixels 0.96″

SSD1306

jumper dupont Jumper Dupont
breadboard Breadboard

Circuit

Voici un tableau de repérage et de correspondance des broches entre Arduino et ESP8266. Vous pouvez également ajouter un écran OLED SDSD1306.

Composant Broches Repérage Arduino Equivalence ESP8266 (Wemos D1 mini)
DHT22 VCC 5V 5V
GND GND G
Data GPIO-14 G5
BMP180 VCC 5V 5V
GND GND G
SDA GPIO-4 D2
SCK GPIO-5 D1
OLED SSD1306 0.96” VCC 5V 5V
GND GND G
SDA GPIO-4 D2
SCK GPIO-5 D1
Led activité WiFi Pole + GPIO-12 D6
Pole – GND G

 

espeasy + dht22 + ssd1306 + bmp180

 

Ajouts des Devices DHT22 et BMP180

J’ai repris le mini projet précédent à base de DHT22 et de BMP180. Vous devez disposez d’un Device appelé DHT22 qui possède 2 variables TempDHT22 et HumDHT22 (à modifier à votre convenance)

espeasy dht22 configuration

et un Device BMP180 avec une variable Pression

espeasy configuration bmp180 bmp085

Préparer un capteur virtuel sous Domoticz

Sous Domoticz, créez un capteur virtuel de type Temp+Humidité+Baromètre. Donnez lui un nom et notez l’IDX en allant dans la liste des dispositifs.

domoticz capteur virtuel temp humidite barometre bme280

Création du Device BME280 virtuel

Créez un nouveau Device et choisissez Dummy Device dans la liste puis :

  • Name : donnez un nom. Par exemple BME280_Virtuel
  • Delay : la fréquence d’actualisation (ou de publication) des valeurs
  • IDX : l’identifiant du capteur virtuel Domoticz.
  • Simulate Data Type : choisissez Sensor_type_Temp_Hum_Baro pour simuler un BME280
  • Send data : cochez pour activer l’envoi des données vers Domoticz
  • Decimals : choisissez le nombre de chiffres après la virgule
  • Value name 1 : Temperature
  • Value name 2 : Humidite
  • Value name 3 : Pression
  • Enregistrez avec submit

esp easy dummy device bme280 virtuel

Dans l’éditeur de Rules, recopiez ce code

Que fait ce code ?

A chaque fois qu’une mesure est renvoyée par le DHT22, on recopie dans le Dummy Device la température et la pression atmosphérique du BMP180 ainsi que le taux d’humidité du DHT22 dans le Dummy Device n°4

La commande TaskValueSet s’écrit comme ceci

TaskValueSet <task nr>,<taskvalue nr>,<value|formula>

  • task nr : numéro du Device (récupéré dans le tableau Devices, colonne Task)
  • taskvalue nr : index de la variable (1 à 4) du Dummy Device
  • value ou formula : valeur affectée à la variable, ou formule de calcul avec les opérateurs + , – , / , *  uniquement.

Retounez dans les Devices. A chaque actualisation de la température mesurée par le DHT22, le BME280 virtuel sera actualisé.

esp-easy-bme280-virtuel

Affichage du BME280 virtuel sur Domoticz

Retournons maintenant sur Domoticz pour voir comment s’intègre le BME280.

Allons tout d’abord dans les dispositifs pour vérifier que nous recevons bien des mesures de l’ESP8266. L’ordre des variables est très important lors de la configuration du Dummy Device car le firmware publie les mesures du BME280 virtuel dans l’ordre des variables. Ici, on reçoit bien la température, l’humidité et la pression atmosphérique. Comme les unités sont métriques par défaut, nous n’avons aucune conversion à faire (sinon les formules sont là pour ça).

domoticz espeasy bme280

Allez maintenant sur la page Météo pour y trouver le baromètre.

domoticz barometre bme280

 

Sur la page température, on a maintenant un nouvelle sonde qui affiche la température et le taux d’humidité dans l’air. C’est donc la combinaison de la température mesurée par le BMP180 (ou le DHT22, c’est égal) et le taux d’humidité du DHT22. On retrouve la mesure de la pression atmosphérique et le calcul du point de rosée.

domoticz bme280 temperature humidite

 

Sur ce graphique, on peut voir l’intégration de la mesure du taux d’humidité. Pour conserver l’historique des mesures, il suffit de désactiver l’envoi des données (décocher la case Send Data) pour les Devices DHT22 et BMP180 et leur attribuer un IDX arbitraire (différent de l’IDX du BME280 attribué par Domoticz, ici 1 et 2). En désactivant l’envoi de données on évite de surcharger le réseau, on réduit la consommation (si on fonctionne sur batterie) et on ne pollue pas Domoticz inutilement. On attribue ensuite au BME280 virtuel l’IDX attribué par Domoticz au moment de la création du dispositif (dans le cas présent, c’est le 22).
domoticz bme280 historique temperature

Voici l’une des possibilités du Dummy Device très facile à mettre en oeuvre grâce au nouveau système de Rules d’ESP Easy.

Tous les capteurs et actionneurs compatibles avec ESP Easy

-5% Intelligent Électronique broches Flamme Capteur De Détection D'incendie Module D'allumage Source Détecte...
0,37 0,39
Voir l'offre
AE__banggood AliExpress
-15% 10 pcs Tactile Push Button Switch Tact Commutateur pour Arduino 4 P...
0,39 0,46
Voir l'offre
AE__banggood AliExpress
Ultrasons Module HC-SR04 de Mesure De Distance Capteur Capteur
0,85
Voir l'offre
AE__banggood AliExpress
1 PCS GY-302 BH1750 BH1750FVI intensité de la lumière éclairage module 3...
0,90
Voir l'offre
AE__banggood AliExpress
Nouveau 1 PCS Importé DALLAS DS18B20 18B20 18S20 TO-92 IC PUCE Thermomètre...
0,93
Voir l'offre
AE__banggood AliExpress
-4% 1B1 Nouvelle Température et Humidité Relative Capteur DHT11 Module avec Câble
0,98 1,03
Voir l'offre
AE__banggood AliExpress
Luminosité Capteur GY-2561 TSL2561 Module D'éclairage
1,28
Voir l'offre
AE__banggood AliExpress
1 PCS TENSTAR ROBOT GY-68 BMP180 Remplacer BMP085 Barométrique Numérique Capteur de...
1,29
Voir l'offre
AE__banggood AliExpress
-5% 1 Pcs Paquet En Acier Inoxydable DS18b20 Étanche DS18b20 Sonde de Température...
1,31 1,38
Voir l'offre
AE__banggood AliExpress
C302 Livraison gratuite Zéro dérive CJMCU-219 INA219 I2C interface Bi-directionnel courant/puissance surveillance...
1,58
Voir l'offre
AE__banggood AliExpress
5 PCS PCF8574P PCF8574 DIP16 DIP nouveau et original IC livraison gratuite
1,58
Voir l'offre
AE__banggood AliExpress
-5% Nouvelle Interface Série Module IIC I2C MCP23017 SPI MCP23S17 Bidirectionnel 16-Bit I/O...
1,69 1,78
Voir l'offre
AE__banggood AliExpress
-4% PCA9685 16 Canal 12 bits PWM Servo Pilote I2C Interface pour Raspberry...
1,78 1,87
Voir l'offre
AE__banggood AliExpress
Hrph Capteur BMP280 Pression Module De Haute PréCision AtmosphéRique Arduino Remplacer BMP180
2,00
Voir l'offre
AE__banggood Amazon.fr
TENSTAR ROBOT DHT22 Température Numérique et Capteur D'humidité AM2302 Module + PCB...
2,58
Voir l'offre
AE__banggood AliExpress
-7% Industrielle De Haute Précision Si7021 Capteur D'humidité avec Interface I2C
2,68 2,91
Voir l'offre
AE__banggood AliExpress
-4% BME280 Capteur Numérique Température Humidité Capteur de Pression Barométrique Module I2C SPI...
3,06 3,22
Voir l'offre
AE__banggood AliExpress
-16% Micro SD TF Card Memory Shield Module SPI Micro SD Adapter For...
3,19 3,80
-10% 0.96 pouce IIC Série Blanc OLED Module D'affichage 128X64 I2C SSD1306 12864...
3,39 3,77
Voir l'offre
AE__banggood AliExpress
5 Couleur Dessus de Touche 25 Pcs Tactile Bouton-Poussoir Momentané 12*12*7.3 MM...
3,60
Voir l'offre
AE__banggood AliExpress
1 PCS écran LCD2004 + I2C 2004 20x4 2004A bleu HD44780 Caractère...
4,10
Voir l'offre
AE__banggood AliExpress
Sharp GP2Y1010AU0F Compact des poussières du capteur capteur optique de fumée de...
5,88
Voir l'offre
AE__banggood AliExpress
GY-63 MS5611-01BA03 Haute-résolution Atmosphérique Hauteur Capteur Module IIC/SPI Communication MS5611
6,85
Voir l'offre
AE__banggood AliExpress
Module convertisseur Bingo-uk Pcf8591 AD/DA analogique vers numérique Conversion Arduino + câble
Voir l'offre
AE__banggood Amazon.fr
MLX90614 Sans Contact Module De Capteur De Température Infrarouge Ir 3-5V Pour...
Voir l'offre
AE__banggood Amazon.fr

Inscrivez-vous à la newsletter hebdomadaire

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

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

  • Ricorico94

    Bonjour,

    Intéressant.

    Comment faites-vous ces tâches:”J’ai simplement arrêté l’envoi de données sur le device BMP180 et récupéré l’IDX pour l’attribué au BME280 virtuel de manière à ne pas perdre l’historique de mesures” ?
    Cdlt,
    Ricorico94

    • Bonjour Ricorico. J’ai repris l’explication dans le tutoriel. J’espère que c’est plus compréhensible comme ceci :
      Pour conserver l’historique des mesures, il suffit de désactiver l’envoi des données (décocher la case Send Data) pour les Devices DHT22 et BMP180 et leur attribuer un IDX arbitraire (différent de l’IDX du BME280 attribué par Domoticz, ici 1 et 2). En désactivant l’envoi de données on évite de surcharger le réseau, on réduit la consommation (si on fonctionne sur batterie) et on ne pollue pas Domoticz inutilement. On attribue ensuite au BME280 virtuel l’IDX attribué par Domoticz au moment de la création du dispositif (dans le cas présent, c’est le 22).
      A très bientôt

  • Damien

    Bonjour, merci pour ces super tutos ! Je tente de créer un capteur de température avec un Uzzah Feather et une sonde DHT22 avec Esp Easy mais je n’y parvient pas… J’ai bien réussi à installer le firmware, à le paramétrer, j’ai accès à l’interface et j’ai aussi réalisé le montage en branchant la sonde DHT22 sur le pin SDA (#4) mais je n’arrive pas à sortir de température… Je suis novice et je ne connais pas les correspondances pin arduino et pin huzzah feather ni sur quel pin brancher la sonde DHT22, est-ce que quelqu’un saurait m’indiquer ? Merci d’avance !

    • Bonjour Damien. Merci beaucoup. Je n’ai pas essayé ESP Easy sur l’Huzzah. Le repérage des broches se trouve ici https://learn.adafruit.com/adafruit-feather-huzzah-esp8266/using-nodemcu-lua?view=all. Par contre le DHT22 n’utilise pas le bus I2C. Il ne faut pas utiliser les broches 4 et 5. Il me semble que sur la feather, les broches sont repérées comme sur un Arduino mais je n’en ai pas pour confirmer. Sinon comme elle est basée sur un ESP-12 ça devrait être la meme chose que pour la Wemos D1 mini (https://www.projetsdiy.fr/wemos-d1-mini-esp8266-test/). Donc vous pouvez essayer de brancher le DHT22 sur le Pin 16 (attention aussi à prendre la bonne broche du DHT, la 2nd face à vous, la 3ème n’est pas bracnhée). Dites moi si ça fonctionne. A très bientôt.

  • Hello, merci pours tous ces précieux tuto. Petite remarque, l’alimentation du capteur BME280 n’est pas correcte sur le schéma Fritzing, les deux bornes d’alimentation sont branchées au positif de l’alimentation.

    Merci encore

    Christophe

    • Oups. Merci beaucoup Christophe. Je vais corriger

  • ROUGE13

    Bonjour,
    Très intéressant de faire communiquer plusieurs objets sur le même bus, après tout c’est comme ça qu’ils ont été pensés 🙂
    J’ai fait l’acquisition récente d’une BME280 et d’un NRF24L01 tous deux capables de discuter sur SPI/I2C, mais je trouve pas de source pouvant m’aider à ne réaliser ne serait-ce que le câblage (le nom des pins est différent entre les deux appareils).
    Auriez-vous un endroit où chercher ou des pistes à me conseiller?

    • Bonjour Rouge. Le NRF24L01 est une antenne qui permet de mettre en place une communication à plus longue distance que le WiFi (ou le Bluetooth). Il faut donc un micro-controleur pour récupérer les mesures réalisées par le BMP180 et les envoyer à un serveur domotique en ligne ou un service de collecte de données en ligne. Par exemple un Arduino ou un Arduino nano v3 (plus petit) Le NRF24L01 est très bien pris en charge par le firmware MySensors. Vous pouvez commencer par celui-ci https://www.projetsdiy.fr/mysensors-v2-mesure-de-temperature-et-dhumidite-dht11dht22/ et ensuite quelques articles sur le sujet https://www.projetsdiy.fr/category/domotique/mysensors-domotique. A très bientôt

      • ROUGE13

        Bonjour,
        Merci pour ce retour 🙂

        En réalité je n’ai aucun soucis pour faire fonctionner le NRF24L01.
        Par contre pour économiser quelques PIN je voulais essayer de brancher le le BME280 sur le même bus que le NRF puisqu’ils sont tous les deux capables de discuter sur les interfaces I2C ou SPI. Mais je ne trouve pas d’exemples.

        • D’accord mais il ne me semble pas que ce soit possible. Je vais regarder, on sait jamais…

          • ROUGE13

            J’ai aussi fait l’acquisition d’un afficheur 7 segments x 8 à base de MAX7219 qui dialogue en SPI,
            je l’ai branché sur le même bus que le NRF comme suit sur mon esp8266:
            NRF—-MAX
            CSN—- /
            / ——– CS
            MOSI—DIN
            SCLK–CLK

            Mais dans ce cas aucun des deux ne fonctionne. Dès que je débranche le MAX7219, le NRF re-fonctionne.

          • Bonjour Rouge. Sans le code, pas facile de trancher. Comme ça, je dirait qu’ils se marchent sur les pieds. Il est possible d’avoir plusieurs matériels sur le bus SPI https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi. Il doit y avoir une librairie Arduino pour ça. Je n’ai pas encore travaillé dessus. Si ça coince, dis le moi que je regarde.

      • ROUGE13

        Hors Sujet mais toujours pour un problème de PIN disponibles, je voulais
        essayer de faire fonctionner des afficheurs 7 segments à base de TM1637
        sur des “port expander” dont j’ai certaines PIN de libres. Mais si je
        n’ai aucun soucis pour faire fonctionner mes I/O sur PCF8574P, je ne
        trouve pas comment faire pour utiliser ces I/O comme des I/O classique
        avec la bibliothèque du TM1637, est-ce possible?

        • Ah. Pour le coup je suis sec. Désolé ! je n’ai pas encore exploré ce type de circuit.

  • ROUGE13

    Bonjour,

    Autre question, est il possible de ajuster la calibration des capteur?, d’après la datasheet bosch, la variable existe bien mais il me semble qu’elle n’est accessible qu’en lecture seule.
    J’ai 4 capteurs les tracés sont parallèles (mêmes amplitudes de variations aux mêmes moments) mais il y a un écart entre les mesures.
    Je pourrais faire l’offset côté soft, mais je me dis que comme il y a des liens/corrections entre les différentes type de mesure (hygro/temp/pression) dans l’algo du BME280 et bien autant les corriger à la source pour que ça n’induise pas d’autres erreurs.

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