4 minute(s) de lecture

MeteoCOnnect Ce projet détaille pas à pas la construction d’une petite station météo de salon connectée, à base d’un ESP32-C3 made in France. Un capteur de température interne DHT22, qui sera calibré par le logiciel, permet d’afficher la température et l’humidité de la pièce dans laquelle il fonctionne, tandis que les données météorologiques externes sont collectées sur internet en WIFI par un appel d’API. Le tout est affiché sur un petit écran LCD composé de 2 lignes, 16 caractères. L’électronique est logée dans un petit boîtier sur mesure, à imprimer en 3D.

Hardware

Matériel

MeteoCOnnect

pour ce projet il faut:

  • 1 PYBSTICK ESP32-C3 micro-usb avec les 2 rangées de pin headers 13 broches soudées. Cet ESP32-C3 est fabriqué en France.
  • 1 PCB que vous pouvez faire fabriquer à partir des fichier Gerber fourni dans la section /PCB du Github du projet, ou bien me contacter pour savoir s’il m’en reste en stock.
  • 1 écran LCD 16*02 avec backpack I2C
  • 4 fils souples connecteurs dupont mâle-mâle pour relier le PCB à l’écran LCD.
  • 1 connecteur coudé 4 pin 2.54mm à souder
  • 1 capteur de température et humidité DHT22 avec 4 broches
  • 1 diode Schottky SR560
  • 1 résistance 10KΩ
  • 1 condensateur céramique 100nf
  • 1 prise jack DC 3 pin à souder
  • 1 alimentation 5v 2A avec prise Jack
  • 4 entretoises M2.5 15mm en nylon, femelle-mâle
  • 4 entretoise M2.5 6mm en nylon, femelle-mâle
  • 1 boîtier à imprimer 3D, les STL sont à récupérer dans la section /STL du Github du projet.

Électronique

MeteoCOnnect La photo ci-dessus illustre les soudures à faire sur le PCB. Les instructions sont clairement sérigraphiées sur la carte. Ne vous trompez surtout pas de sens avec la PYPSTICK ESP32-C3 ainsi que la diode Schottky.

Assemblage

Le boîtier est composé d’une partie basse dans laquelle se loge le circuit rehaussé avec les entretoises M2.5 en nylon (mettre les petites de 6mm en dessous, elles se vissent sur les grandes de 15mm qui vont supporter l’écran LCD.). La partie haute se clipse autour du LCD correctement positionné sur les entretoises 15mm. Il faut couper au cutter à raz bord du PCB les vis mâles en nylon qui dépassent pour pouvoir fermer le boîtier.

Deux pieds inclinés (à coller avec de la colle PVC) peuvent se mettre sous le boîtier afin de faciliter la lecture de l’écran lorsqu’il est posé sur une table.

Software

scripts micropython

Tous les scripts sont à récupérer dans la section /micropython du Github du projet

  • Cet article explique le fonctionnement d’un écran LCD avec un ESP32-C3
  • Cet article explique comment utiliser un DHT22 avec un ESP32-C3
  • Cet article détaille l’utilisation d’une API de météo avec l’ESP32-C3 afin de récupérer par WIFI les données météorologiques extérieures.

N’oubliez pas de mettre à jour quelques paramètres dans les scripts ci-dessous, en remplaçant les valeurs ‘xxxxx’:

  • boot.py: indiquez votre WIFI_SSID et WIFI_PASSWORD pour que le boîtier se connecte à internet via votre WIFI
  • api_meteo.py: indiquez votre TOKEN de connection à l’API comme expliqué dans cet article.

Calibration du capteur

MeteoCOnnect Le DHT22 est un capteur sensible, il suffit de s’en approcher pour voir immédiatement quelques dixièmes de degrés supplémentaires apparaître. Comme il est soudé sur la carte, l’électronique à proximité va perturber les mesures bien que l’ESP32-C3 soit sobre en consommation: rien ne chauffe. Malgré tout, une petite dérive s’installe et il faut procéder à une calibration pour compenser cette dérive.

Principe

Il faudra vous équiper d’un thermomètre de référence, de préférence un tout simple non électronique au mercure. Le principe est de prendre 2 mesures assez éloignées avec 4 ou 5°C d’écart (une dans la pièce courante, et une à l’extérieur). Ensuite la calibration consiste à faire une interpolation linéaire à partir de ces 2 mesures.

Procédure

  • Il faut tout d’abord régler sur Off la calibration (elle est sur On par défaut avec mes propres mesures): dans le programme dht22.py mettez la variable en ligne 6 QUALIBRATION = False (à la place de QUALIBRATION=True)
  • Ensuite prenez vos deux mesures éloignées de quelques degrès, attendez bien à chaque fois un bon 1/4 d’h pour que les mesures soient stabilisées. Notez-les (T_DHT1, T_R1) et (T_DHT2, T_R2), T_DHTx étant la température indiquée par le DHT22, et T_Rx étant celle indiquée par votre thermomètre de référence.
  • Reportez les valeurs dans le programme dht22.py, lignes 7 à 10, et remettez la variable QUALIBRATION = True en ligne 6

Le programme va alors calibrer la température T mesurée par le DHT22 selon cette formule:

Tc  =  r * T + T0
r = (T_R2 - T_R1) / (T_DHT2 - T_DHT1)
T0 = TR2 - r * T_DHT2

Et voilà la calibration est terminée: la température affichée par le DHT22 devrait être équivalente à celle du thermomètre de référence dans vote pièce principale.

Usage

La première ligne donne les valeurs du capteur interne DHT22: température et humidité. Ces valeurs sont mises à jour toutes les 5 secondes.

La seconde ligne affiche les données météorologiques externes récupérées sur internet et mises à jour toutes les 5 minutes.

  • dans un premier temps on affiche la température externe et le taux d’humidité
  • ensuite il s’affiche la vitesse du vent et la probabilité qu’il pleuve
  • Enfin le bulletin météorologique est scrollé à l’écran.