start:projets:capteur_de_co2

Quelques capteurs


Capteur de CO2 communicant - dioxyde de carbone

Ce tuto a pour but d'expliquer toute la démarche qui permet de construire et installer un capteur de CO2 communiquant.
Pour rester le plus simple possible, il n'est pas prévu d'afficher les mesures sur le capteur.
Les mesures effectuées seront donc envoyées vers une plateforme web sur Internet afin de les traiter. En fonction des possibilités de la plateforme, les données pourront être enregistrées, affichées, agrégées, retraitées ou tout simplement ignorées.


Afin de mener à bien ce montage, il est nécessaire de disposer des éléments suivants :

  • Un capteur de dioxyde de carbone, ou “CO2” de type “MH-Z19B”, disponible par exemple ici.
  • Un microcontrôleur avec connexion WiFi de type ESP8266 “Wemos D1 Pro” comme celui-ci (la carte complète)
  • Le firmware Tasmota pour faire fonctionner le microcontrôleur.
  • Une alimentation USB, de type “chargeur de téléphone”
  • Un câble USB permettant de connecter le microcontrôleur au PC qui de pouvoir effectuer les configurations.
  • Une plateforme web permettant d'enregistrer et d'afficher les données. Il est possible d'en installer une chez soi avec le système enez. Un tuto sera bientôt disponible pour expliquer comment monter une telle plateforme. Des services de ce type sont aussi disponibles sur Internet, comme par exemple Cayenne.

En gros, le capteur détermine la concentration de dioxyde de carbone dans l'air ambiant. Cette valeur est transmise via une communication série au microcontrôleur. Celui-ci, connecter à Internet en WiFi, va publier à intervalle défini cette valeur vers un 'broker', en fait un serveur informatique, via le protocole de messagerie MQTT.
Le protocole MQTT est assez léger et permet une grande souplesse dans l'utilisation des données. En effet, il suffit aux clients, c'est à dire l'appareil ou les appareils qui vont utiliser la donnée, de s'abonner au broker. C'est ce que fait le système enez, mais rien n'empêche de créer ses propres écrans de visualisation avec node-RED par exemple.
Les données sont encapsulées dans un document json et se présentent ainsi:

{"Time":"2021-06-01T10:11:12","MHZ19B":{"Model":"B","CarbonDioxide":588,"Temperature":28.0},"TempUnit":"C"}

L'outil MqttExplorer permet de visualiser les données en temps réel et peut-être un excellent outil pour comprendre le fonctionnement de MQTT.


La première chose à faire est d'installer un firmware sur le microcontrôleur. Le firmware choisi étant Tasmota, nous allons utiliser Tasmotizerpour installer le firmware. Une fois Tasmotizer installé, relier le microcontrôleur à votre PC et lancer Tasmotizer. Note importante, pour télécharger le firmware, aucun capteur ne doit être branché au microcontroleur.

  1. Choisir le port COM avec lequel votre PC communique avec la carte microcontrôleur.
  2. Choisir l'image. Il y a plusieurs version de Tasmota. Ici, il est nécessaire d'utiliser la version “sensor”. Le plus simple est de sélectionner “Release”, puis “tasmota-sensors.bin”.
  3. Cliquer sur Tasmotize. La dernière version du firmware est alors téléchargée et installée sur la carte Wemos D1.
  4. Enfin, le bouton “Send config” permet de personnaliser les paramètres de fonctionnement du microcontrôleur. Seront ainsi définis:
    • Le réseau WiFi qui sera utilisé
    • Les paramètres du broker MQTT vers lequel les données seront publiées
  5. Il faut maintenant configurer le capteur via l'interface web fournie par Tasmota. Cette page web s'obtient en navigant vers l'adresse IP du microcontrôleur. Tasmotizer permet de facilement connaitre cette adresse IP en cliquant sur le bouton vert “Get IP”. Dans cette page web:
    • Choisir “Configuration”, puis “Configure Module”.
    • Choisir le module type “Generic (18)”
    • Sur la ligne “TX GPIO1”, choisir “MHZ Tx”
    • Sur la ligne “RX GPIO3”, choisir “MHZ Rx”
    • Cliquer sur le bouton “Save”

Capteur fonctionnel Capteur fonctionnel

La liaison entre le capteur et le microcontrôleur va se faire grâce au câble fourni avec le capteur. Ce câble sera coupé au milieu. Coté broche, il sera insérer dans le connecteur du capteur, le fils jaune du coté de la bosse. Coté microcontrôleur, les fils seront soudés selon la table ci-dessous. Le fils qui ne servent pas seront coupés.

Les broches utilisées sont :

Wemos D1 MiniMH-Z19BCouleur du fil
VCC +5VVinRouge
GNDGNDNoir
TXRxBleu
RXTxVert

Voilà, l'ensemble capteur/microcontrôleur va maintenant envoyer ses données toutes les 5 minutes au broker.

Le site web du microcontrôleur permet de contrôler son fonctionnement et autorise une personnalisation plus fine si nécessaire.

Il est possible, via les pages de configurations du capteur, de personnaliser bien d'autres paramètres.
Ces pages sont accessibles en faisant pointer son navigateur web sur l'adresse IP du capteur.
Il est possible d'intervenir directement via les différents écran. Mais il y a une console disponible. Cette console permet de taper des ordres afin de modifier certains éléments de configuration, ou d'obtenir des informations.
Un de ces éléments de configuration permet notamment de dire au broker MQTT de retenir la dernière valeur envoyée (MQTT retain). Pour cela, dans la console, taper “SensorRetain 1” et valider en appuyant sur la touche Entrée.


Voici ce que l'on peut obtenir sur un écran enez:

  • start/projets/capteur_de_co2.txt
  • Dernière modification : 2021/11/27 23:09
  • de finizi