Après cet été caniculaire, comme vous avez pu le vérifier avec votre Thermomètre, il est temps de s’intéresser à l’air que nous respirons. Et pour cela, quoi de mieux qu’expérimenter avec un petit capteur connecté pour surveiller ou notifier des alertes ?
Leon Anavi en a fait son challenge en proposant un produit dont je vous fais la primeur d’essayer.
Sommaire
Matériel
En ouvrant le colis venant de Plovdiv Bulgarie on y trouve quelques autocollants KiCad car le projet a été conçu avec et les designs sont publiés (OSHW ou open source hardware).
Coté matériel, il s’agit toujours du processeur ESP8266 (4 Mio) avec les périphériques suivants :
- un capteur de Gaz type MQ (connecté sur le port analogique) ;
- un écran OLED (I²C) ;
- un port USB pour l’alimentation.
Il y a aussi des pins UART, d’autres broches I²C pour ajouter d’autres capteurs (BMP180, HTU21D), lesquels pourront reposer sur le support en acrylique et, en option, un câble de débogage USB/UART.
Le capteur MQ-135, qui est sensible à la présence de benzène, d’alcool et de fumée, est plutôt destiné à un usage intérieur.
Comme indiqué dans les spécifications, il faudra l'étalonner et le préchauffer en le laissant tourner vingt‐quatre heures dans un endroit neutre.
Logiciel
Côté logiciel, le micrologiciel de référence utilise l’API Arduino et les sources sont aussi disponibles.
L’utilisation est assez classique, dans l’état initial, l’utilisateur doit avant tout se connecter sur le point d’accès Wi‐Fi de l’appareil (ssid="ANAVI Gas Detector FFFFFF").
Ensuite, via le navigateur Web (http://192.168.4.1/) il faut configurer quelques paramètres, Wi‐Fi local, serveur MQTT, (par exemple, un serveur mosquitto dans son réseau local ou sinon un serveur public sur Internet, tel que mqtt.eclipse.org). Relevez également le « machineid » associé au produit qui nous sera utile plus tard.
Un redémarrage plus tard, l’écran affiche l’adresse IP du contrôleur Wi‐Fi, il est possible de vérifier le trafic via un subscriber MQTT de type mosquito.
Pour référence la trace ressemble à :
mosquitto_sub -h ${host} -t "#" -v
homeassistant/binary_sensor/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/DangerousGas/config {"device_class":"gas","name":"FFFFF Dangerous Gas","unique_id":"anavi-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF-DangerousGas","state_topic":"workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/DangerousGas",“device”:{"identifiers":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","manufacturer":"ANAVI Technology","model":"ANAVI Gas Detector","name":"FFFFF","sw_version":"e491cbccda9e73ef23d235532606a251","connections":[["mac","ff:ff:ff:ff:ff:ff:ff"]]}}
homeassistant/sensor/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AirConductivity/config {"unit_of_measurement":"%","value_template »:"{{ value_json.Conductivity | round(2) }}","name":"6998b Air Conductivity »,"unique_id":"anavi-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF-AirConductivity","state_topic":"workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AirConductivity","device":{"identifiers":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","manufacturer":"ANAVI Technology","model":"ANAVI Gas Detector","name","6998b","sw_version":"e491cbccda9e73ef23d235532606a251","connections":[["mac","ff:ff:ff:ff:ff:ff:ff"]]}}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/wifi/ssid {"ssid":"Private"}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/wifi/bssid {"bssid":"ff:ff:ff:ff:ff:42"}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/wifi/rssi {"rssi":-44}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/wifi/ip {"ip":"192.100.0.42"}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/sketch {"sketch":“e491cbccda9e73ef23d235532606a251"}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AirQuality {"Quality":"Good"}
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/DangerousGas OFF
workgroup/FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/AirConductivity {"Conductivity":9}
On notera que plusieurs topics sont utilisés, mais que le principal est :
workgroup/${machineid}/AirConductivity {"Conductivity":9}
D’ailleurs, je me demande s’il n’est pas préférable de ne pas tout regrouper dans une structure JSON sur un seul topic.
Il est aussi possible de le connecter dans une gateway IoT homeassistant, mais pour ma part j’ai prévu de l’utiliser autrement avec la plate‐forme IOT de Mozilla.
Il est possible de faire facilement une mini passerelle MQTT vers HTTP en utilisant le module MQTT interne à IoTjs et IoTjs-express pour la partie REST.
Et en utilisant webthing-iotjs, j’ai partagé un exemple de proxy webthing prêt à être connecté à la passerelle de Mozilla.
L’exemple est assez facile d’utilisation :
$ iotjs index.js "8888" "gateway.local" "1883" "workgroup/${machineid}/AirConductivity" Conductivity
$ curl http://localhost:8888/properties
{"Conductivity":13}
Ensuite, il suffit de déployer l’application sur la passerelle Mozilla, qui est un système Raspbian tout à fait conventionnel.
Capteur
À partir de là, un petit challenge pour les plus curieux : essayez d’intégrer ce capteur dans un digital twin de SmartHome et de visualiser ainsi le capteur dans un environnement plus large (XR).
À noter qu’il est également possible de « reflasher » le micrologiciel pour prendre en charge WebThing sous l’API Arduino. Inspirez‐vous de l’exemple LEDLamp déjà réalisé pour gérer l’Anavi light.
Vous pouvez naturellement conserver la carte et remplacer le capteur par un autre de même type (MQ), ou bien un capteur analogique 5 V, ou un capteur série tel que le SDS01 qu’on utilise à Rennes pour mesurer la présence de particules dans l’air extérieur.
Ah oui, j’allais oublier, le produit est commandable à partir de 25 €. Mais surtout, cela participe à supporter une activité d’un contributeur OSHW indépendant.
Aller plus loin
- Commander le produit (397 clics)
- Sources pour KiCad (66 clics)
- Vidéo (103 clics)
# Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par Gabin3 . Évalué à 4.
Sont-ce là les seuls composés à surveiller?
Qu'est-ce qui défini un air sain?
J'imagine que le dispositif ici doit aussi être couplé à une sonde mesurant l'humidité.
Et sinon, que donnent les tests? Merci.
[^] # Re: Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par Aris Adamantiadis (site web personnel) . Évalué à 4.
Je suis aussi étonné de ne pas voir de capteur de CO2 ou de particules PM10/PM2.5. Mais c'est vrai que ces capteurs coûtent relativement cher (de mémoire dans les 80€) comparés aux capteurs benzène/alcool/fumée qui sont parfois utilisés pour estimer le CO2 dans les appareils bon marchés.
[^] # Re: Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par xryl669 . Évalué à 2.
Non, ce n'est pas le cas. Le CO2 n'est pas détectable par les capteurs bon marché. Ce qu'ils détectent, c'est les particules de la fumée (donc il faut que ça "fume"). Il n'y a pas d'arnaque car ils sont bien vendus comme détecteur de fumée.
Leur technique de détection varie, mais c'est grosso modo soit la transparence de l'air qui est mesurée (lumière/capteur) ou pour les plus avancés ils détectent la variation électrique d'une source d'ions (souvent générés par un composé radioactif) qui sont perturbés par la fumée.
[^] # Re: Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par Aris Adamantiadis (site web personnel) . Évalué à 3.
Oui c'est bien ce que je disais. Il n'empêche que certains vendeurs peu scrupuleux font passer leur détecteur de fumée pour un détecteur de CO2 parce que les deux sont parfois corrélés. C'est écrit en tout petit dans les spécifications voire pas du tout.
Premier résultat sur "CO2 detector" sur banggood:
https://www.banggood.com/MH-Z19-0-5000PPM-Infrared-CO2-Sensor-For-CO2-Indoor-Air-Quality-Monitor-UARTPWM-p-1094463.html?rmmds=search&cur_warehouse=CN
[^] # Re: Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par xryl669 . Évalué à 2.
Il est considéré qu'une dose de 20ppm de CO est la limite acceptable. Si l'on regarde la courbe du capteur MQ 135, cela correspond à une variation de 12% de la résistance du capteur (autant dire, pas grand chose).
Le problème c'est qu'une telle variation est obtenue avec 15ppm de CO2 dans l'air, c'est à dire que si tu mets un seuil trop faible pour la détection de CO, le simple fait d'allumer une bougie dans la pièce le fera franchir à cause du CO2.
C'est d'ailleurs le problème de ce genre de capteur, qui ne font aucune différence sur les composés qu'ils détectent.
[^] # Re: Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par gpe . Évalué à 2.
15 ppm de CO2 ???? De mémoire dans l'air extérieur on est autour de 400 ppm et en intérieur on peut assez facilement être à 700 ou 800 ppm …
[^] # Re: Le capteur MQ-135: sensible à la présence de benzène, d’alcool et de fumée
Posté par tipic . Évalué à 1.
Faux !
des mesures avec des capteurs fiables et bien calibré donnennt :
200 ppm à 1650 mètres
et les 400ppm ne sont valables que dans des grandes villes. Prendre une mesure dans un carrefour très fréquenté donne ces valeurs.
Dès que l'on est en campagne, les valeurs sont bien plus faibles. (écart type entre les deux 100 à 200 ppm).
D'autre part, les mesures montrent que la température précède l'augmentation du CO2, notamment près d'un grand plan d'eau, mais valable ailleurs aussi.
N'en déplaise. Faite les mesures même avec des capteurs supr sophistiqués. Vous verrez bien.
# esp8266: faille
Posté par Gabin3 . Évalué à 3.
Matheus Garbelini a récemment écrit un billet et partagé le code de source d'un PoC concernant ses récentes études de ce module: en gros, ça va trancher chérie.
Ne l'utilisez pas pour le contrôle d'une serrure. :)
Ensuite, l'esp8266 étant aussi un module assez commun dans certaines appliances IoT, il est possible que celles-ci ne soient jamais patchées.
[^] # Re: esp8266: faille
Posté par papap . Évalué à 6.
C'est plutôt : "ça va couper chérie" non ?
[^] # Re: esp8266: faille
Posté par Colin Pitrat (site web personnel) . Évalué à 5.
Il savait pas, il fait ça à mi-temps.
[^] # Re: esp8266: faille
Posté par xryl669 . Évalué à 1.
Si tu regardes les détails des 3 failles, la première force l'ESP8266 à rebooter (ce qui n'est pas forcément un soucis de sécurité, seulement tu perds ton périphérique).
Les deux autres nécessitent que l'ESP8266 soit connecté en EAP (cas très très rare chez les particuliers).
Dans la pratique, ce n'est pas Hiroshima.
[^] # Re: esp8266: faille
Posté par Benjamin Henrion (site web personnel) . Évalué à 2.
A quoi tu t'attends avec des blobs binaires?
La stack wifi des ESP est un gros blob binaire.
[^] # Re: esp8266: faille
Posté par xillibit . Évalué à 2.
Je viens d'aller voir sur le billet l'ESP32 (2éme génération remplaçante de l'ESP8266) est touchée aussi par les mêmes failles
# détecteur de gaz Epoxy ?
Posté par papap . Évalué à 2.
Est-ce que ça existe un détecteur de gaz Epoxy ?
[^] # Re: détecteur de gaz Epoxy ?
Posté par Anonyme . Évalué à 2.
ce serait plutot un explosimetre avec la courbe modifé pour ce gaz.
[^] # Re: détecteur de gaz Epoxy ?
Posté par papap . Évalué à 2.
Pourquoi un explosimètre ? Ce n'est pas explosif le gaz epoxy?
[^] # Re: détecteur de gaz Epoxy ?
Posté par Kerro . Évalué à 2.
Vu que ce n'est pas un gaz, ça ne peut effectivement pas être un gaz explosif.
# OSWH / OSHW ?
Posté par Meku (site web personnel) . Évalué à 3.
Je pense qu'il y a une typo dans le titre sur « OSWH » (j'imagine que c'est OSHW).
Ça pourrait être bien d'ailleurs de rappeler dans l'article ce que cela signifie (en une phrase), pour remettre dans le contexte.
[^] # Re: OSWH / OSHW ?
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Corrigé, merci.
# Typo dans le titre?
Posté par nud . Évalué à 5.
Ne serait-ce pas "OSHW" (Open-Source HardWare) plutôt que "OSWH" ?
# Lost in translation stallionning
Posté par Anonyme . Évalué à 3.
Primo, en bon français on parlera d'étalonnage, calibration c'est un anglicisme.
Secundo, la procédure décrite m'ayant paru farfelue, je suis allé voir ces spécifications chez Olimex dans lesquelles on peut lire quelque chose d'un peu plus sérieux :
La seule mention de 24 heures, c'est dans la partie D: Sensitivity Characteristics et ça parle de Preheat Time ce qui englobe autant l'étalonnage que la mise en service.
[^] # Re: Lost in translation stallionning
Posté par Benoît Sibaud (site web personnel) . Évalué à 4. Dernière modification le 07 septembre 2019 à 08:55.
Corrigé, merci.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.