Capteur de température et d’humidité

Je viens tout juste de recevoir mon premier « Wemos D1 Mini » ! Ayant un capteur DHT22 qui traine, j’ai décidé de monter un petit capteur connecté avec ces deux éléments.

Présentation

Wemos D1 Mini

C’est une carte à base d’un ESP 8266(EX), donc un module fonctionnant sur le Wi-Fi 2,4 GHz. Il peut s’alimenter par l’intermédiaire de son port micro-USB en 5 V. Ce port permet aussi de le flasher en connexion directe sur le PC (par besoin de convertisseur TTL).

Wemos D1 Mini

Il existe une version dite « pro » sur lequel il y a un connecteur UFL afin d’y connecté une antenne externe (idéal dans un endroit où on ne capte pas bien son Wi-Fi).

DHT22

C’est un capteur de température et d’humidité. Il se compose de 4 pins servant respectivement, à la tension d’alimentation (3,3 V), la data, à rien et à la masse.

Vue schématique du DHT22

Principe

Matériel

On va donc associer le capteur DHT22 au Wemos afin de créer un capteur de température et d’humidité sur IP (en Wi-Fi bien sûr !).

La documentation du Wemos précise que le pin « D2 » est de type SDA (Serial DAta), on va y connecter le pin « DATA » du capteur.

Les documentations que j’ai pu lire préconisent l’utilisation d’une résistance de tirage vers le haut (de « pull-up ») entre le VCC et la DATA afin de maintenir un état haut sur notre entrée de données. En utilisant une résistance forte entre , on va réduire l’impédance du système, et donc, limiter les parasites sur cette patte. Dans notre cas, on va utiliser une résistance de 4,7 kΩ.

DHT22 avec la résistance de tirage

On reliera donc le DHT22 au Wemos de la manière suivante :

Schéma du câblage

Logiciel

On va utiliser ESPHome pour programmer configurer le Wemos D1 Mini.

Lors du premier flashage (en USB), j’ajoute seulement l’interface Web. De cette manière, je fais le flashage final en OTA.

Voici ma configuration finale du module sous ESPHome :

esphome:
  name: wemos_d1_mini_1
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: !secret secret_wifissid
  password: !secret secret_wifimdp

# Enable logging
logger:

# Enable WebUI
web_server:
  port: 80

# Enable Home Assistant API
api:
  password: !secret secret_wemos_d1_mini_1

ota:
  password: !secret secret_wemos_d1_mini_1

sensor:
  - platform: dht
    model: DHT22
    pin: D2
    temperature:
      name: "Wemos1 Temperature"
    humidity:
      name: "Wemos1 Humidity"
    update_interval: 60s

Vous aurez remarqué que j’utilise maintenant les « secrets » pour mes données sensibles. Cela me permet de rappeler facilement les identifiants tels que ceux de mon Wi-Fi sur les différents ESP que j’utilise. Je peux du coup partager mon code plus rapidement sur ce site ! J’ai donc un fichier secrets.yaml dans mon dossier de configuration que je remplis de manière suivante :

# Wi-Fi connexion
secret_wifissid: MonSSID
secret_wifimdp: MonMDPwifi

# OTA password
secret_wemos_d1_mini_1: azertyuiop0123456789

À la fin du flashage on redémarre la board en débranchant et rebranchant le câble USB.

Prototypage

Pour avoir laissé en fonctionnement le Wemos pendant un moment, je remarque qu’il chauffe un peu. De ce fait, si le capteur est trop près du module il va nous délivrer de fausses valeurs. Je vais donc mettre des câbles de types jumper afin de déporter le capteur de la carte. De ce fait, je vais souder un pin à chaque point de connexion. Cela me permettra aussi de tester le montage sur une plaquette de prototypage avant de faire le montage final.

J’ai donc soudé les 3 pins nécessaires au projet :

Wemos D1 Mini avec les 3 pins soudé

Ainsi, j’ai monté le tous sur une plaque de prototypage :

Maquette de test

Pour l’alimentation, je l’ai connecté sur un port USB de ma box Internet avec un câble USB type-A vers USB micro-B (« micro-USB ») pour récupérer la température de mon salon. J’ai éloigné au maximum le capteur de la box afin de ne pas relever de fausse valeur (car la box chauffe).

Tests

En allant sur l’interface Web du Weemos (via son adresse IP ou son nom en résolution mDNS (dans mon cas http://weemos_d1_mini_1.local), on peut consulter les valeurs relevées :

État des capteurs du module

Ayant un thermomètre classique (le truc au mercure), j’ai pu comparer les deux valeurs sur plusieurs jours. Ce module ajoute au maximum 1°C à la valeur du mercure. J’ai donc considéré cette valeur comme réelle.

Intégration dans Home Assistant

On ajoute donc le capteur dans la page d’intégration (composant « ESPHome » si vous avez désactivé la découverte automatique) et on l’ajoute sur Lovelace avec une carte d’entités. Voici le code de ma carte :

entities:
  - entity: sensor.weemos1_temperature
    name: Température
  - entity: sensor.weemos1_humidity
    name: Humidité
show_header_toggle: false
title: Salon
type: entities
Aperçu de la carte (thème Dark Blue)

Laisser un commentaire

Your email address will not be published. Required fields are marked (required)