Sprint "capteurs" à la PyConFr
J'ai (VinCIv) participé (en paroles plutôt qu'en code) à un sprint PyCon sur la captation de données environnementales.
Le sprint a porté sur une problématique domotique, que nous pourrions proposer dans le cas de personnes cherchant à mesurer la qualité de l'air à leur domicile (problématique assez différente de celle des capteurs citoyens de Rennes).
Structure du cas
- des sondes (température, luminosité,…)
- des ESP8266 (micro Arduino avec WiFi)
- un Raspberry comme serveur
- un service Home Assistant gérant le tout
- chaque sonde est écoutée par un ESP, qui communique ensuite par WiFi sur un bus logiciel MQTT
- le serveur Home Assistant (HA) du Raspberry récupère les données des ESP sur le bus MQTT
- ce HA publie ces données sur son “site” web
- les différents PC se connectent au Raspberry et peuvent voir les données dans leur navigateur
Intérêts
Un utilisateur peut disséminer des sondes dans son logement, dans son jardin, et visualiser les infos depuis son PC ou son smartphone.
Le système est plus facile à gérer que du codage en dur dédié, avec ajout simplifié.
Travaux du sprint
Codes
Ils sont disponibles à l'adresse suivante : https://github.com/buxx/schnoyts
Pour l'essentiel, il a été produit un exemple de donnée calculée (synthèse de deux capteurs PM, en 2.5 et 10) : https://github.com/buxx/schnoyts/blob/master/home_assistant_conf_dir/custom_components/sensor/air_quality_score.py
Home Assistant :
De moncôté, j'ai exploré le code source Arduino de la station Smart citizen :
- exporte directement les données sur le serveur SmartCitizen.
- code sophistiqué ⇒ des choses à reprendre mais complexe (code Arduino d'AirCasting BEAUCOUP plus simple)
- on n'a pas pu l'intégrer au “serveur” domotique Home Assistant, faute de pouvoir modifier son paramétrage WiFi
Échanges
Les discussions ont été très intéressantes, les différents participants ayant des connaissances et visions complémentaires du sujet. Quelques infos ayant émergé :
- certaines sondes (gaz notamment) nécessitent jusqu'à 10 mn de chauffe avant de donner un résultat fiable ⇒ il faudra gérer cela programmatiquement
- en air intérieur, CO et CO² sont plutôt des indicateurs de mauvaise aération que des toxiques
- les polluants intérieurs sont différents des polluants extérieurs
- si pollution + CO/CO² élevé, pas d'aération ⇒ restituer à l'utilisateur un message “Ouvrez les fenêtres”
- si pollution mais taux CO/CO² faible, pb plus grave (présence d'un “apporteur” du polluant mesuré)
- problème de démarrage Home Assistant sou Windows ⇒ il faut mieux un système clé-en-main pour un projet grand public
- évocation des modules radio ZigBee / XBee en remplacement du LoRa. Pb : les ZigBee ont une portée de de quelques mètres (similaire au BlueTooth) ; les XBee Pro ont une portée intéressante pour le projet “Capteurs citoyens” (100m) mais ils sont interdits en France car utilisant la fréquence 900 MHz ; le module XBee (non pro) de Digi utilise lui la fréquence publique 2,4 GHz et aurait une portée urbaine de 60 m.
Enquete sur les sondes MQ
- MQ-3
- The ratio of RS/R0 is 60 in a clear air from Graph (Found using WebPlotDigitizer) (log scale, cf image)
- alcool, benzène, CH4, hexane, GPL, CO
- MQ-135
- multi mesure, à calibrer
- MQ-2
- gaz combustibles, hydrogène…
- MQ-9
- Carbon Monoxide, Coal Gas, Liquefied Gas
- MS1100
- formaldéhyde, toluène - VOCs Sensor – for the detection of Formaldehyde, Tolune, Organic Solvent