Capteur de température et d'humidité en MQTT

De MediaWiki UOF
Aller à la navigation Aller à la recherche

Création d'un capteur IOT connecté à une plateforme MQTT.

Composition

  • Ces modules capteurs sont architcturés autour d'un Firebeetle ESP32 V4.0.
  • Un capteur de température et d'humidité de type DHT22 lui est associé.
  • Un pont diviseur externe relié à GPIO34 permet la mesure de la tension Vcc.
  • Un pont diviseur interne (nécessitant le soudage de 2 ponts sur le Firebeetle R10 et R11) permet la mesure de la tension de la batterie.
  • Une led est reliée à la broche GPIO5.
  • Une batterie LiPo de 3.7V / 1000 mAh alimente le module via un interrupteur et un régulateur CMS (MCP17003V3) à faible chute de tension.

Fonctionnalités

Lorsque l'ESP32 s'initialise, il allume la led (si l'option est activée) puis il mesure la valeur de la tension Vcc. Si cette valeur est supérieure à un seuil paramétrable et que l'émission est interdite en charge, le module se met en sommeil.

Lorsqu'il est en sommeil, l'ESP32 ne fait rien.

Si aucune interdiction d'émission n'existe, le programme mesure les paramètres du capteur (humidité et température) ainsi que la tension de la batterie.

Le module essaye ensuite de se connecter au réseau Wifi qu'il connait. Cette tentative de connection est limitée dans le temps par un time out pour éviter un bloquage du programme.

Si la connection n'aboutit pas, le module se met en sommeil.

S'il est connecté au Wifi, le module tente de se connecter au broker. Cette tentative est, elle aussi, annulée au bout d'un certain temps paramètrable.

De même si la connection au broker échoue, le module se met en sommeil.

Si la connection au broker est établie, les données lui sont envoyées.

Enfin, la led est éteinte et le module se met en sommeil.

Après un temps défini, le module se réveille automatiquement et recommence le cycle au début.

Schéma électrique

Capteur de temperature et d hygrometrie mqtt v1 Schéma electrique capteurs V1.png

Programme

Fichier:Capteur temperature humidite mqtt programme v 1 1.zip

Paramètres

  • allumage_led  : allumage de la led pendant le réveil : (true = oui, false = non)
  • bloquage_programme_en_charge : interdit la connection au Wifi et l'émission des informations pendant la charge (true = émission interdite false = émission autorisée).
  • tension_separation_charge_batterie : lorsque l'émission est interdite pendant la charge, cette valeur permet de différentier une tension de charge (> 3900 environ et une tension de batterie en fonctionnement normal. La valeur peut aller de 0 à 4095. Elle est généralement aux allentours de 3950.
  • timeout_connection_wifi : durée après laquelle une tentative de connection au réseau Wifi est abandonnée. Elle est exprimée en millisecondes. Elle permet de limiter la consommation électrique globale.
  • timeout_connection_broker : durée après laquelle une tentative de connection au broker MQTT est abandonnée. Elle est exprimée en millisecondes. Elle permet de limiter la consommation électrique globale.
  • intervalle_entre_deux_emission : durée pendant laquelle le module s'endort entre 2 mesures/émissions. Durée exprimée en millisecondes.

Evolution

Evolution mineure

Le pont externe (100k / 220k) initialement choisi entraîne une consommation permanente de 10 µA. Ce qui, au regard de la consommation de l'ESP 32 en veille (environ 12 µA), double la consommation du module pendant la phase de veille. Ce pont peut avantageusement être remplacé par un pont de résistances de 1M/2.2M faisant chuter la consommation du pont à 1 µA soit une économie notable.

Pages liées

Les plateformes IOT de l'UBO Open Factory