- Le Monty Home Device Hacking Guide explique à l’origine comment étendre avec un Raspberry Pi l’appareil BLE Monty Home, conçu pour la surveillance du compost, afin de récupérer, afficher et automatiser des données environnementales comme la température, l’humidité ou la batterie
- Le dépôt propose 3 projets utilisant Python, le BLE et un Raspberry Pi, avec notamment le contrôle d’une LED selon des seuils de température, l’affichage sur un écran OLED I2C et l’envoi d’alertes via IFTTT
- Les commandes BLE incluent la température
;QT\r\n, l’humidité ;QH\r\n, la batterie ;QL\r\n, le CO2 ;QC\r\n, le TVOC ;QO\r\n, la version du firmware ;QV\r\n, le redémarrage ;CR\r\n, la réinitialisation usine ;CF\r\n, etc.
- L’environnement d’exécution nécessite un Raspberry Pi compatible BLE, un appareil Monty Home BLE, Python 3, Bleak, Requests, Adafruit CircuitPython SSD1306, Pillow, etc.
- Les utilisateurs peuvent modifier les commandes BLE dans les scripts ou étendre les conditions de
notification_handler pour traiter d’autres données de capteurs, intégrer des tableaux de bord, faire du logging ou ajouter d’autres automatisations
Guide d’extension de l’appareil BLE Monty Home
- Le Monty Home Device Hacking Guide est un guide pas à pas pour étendre les fonctionnalités de l’appareil BLE Monty Home avec un Raspberry Pi
- L’appareil Monty Home a été conçu à l’origine pour la surveillance du compost et collecte des données de température, d’humidité et d’autres indicateurs environnementaux
- Ce guide s’adresse aux utilisateurs intéressés par les appareils BLE, les applications IoT et la surveillance environnementale
- L’achat de Monty Home est indiqué sur https://montycompost.co/
Les 3 projets inclus
-
Contrôle d’une LED selon la température
- Utilise les données de température de l’appareil Monty Home pour piloter une LED sur le Raspberry Pi
- La LED s’allume lorsque la température dépasse un seuil défini afin d’afficher une alerte
- Les technologies abordées sont le contrôle de LED via GPIO, la récupération de données BLE et le traitement conditionnel en Python
- Le matériel requis est un Raspberry Pi compatible BLE, une LED et une résistance de 330Ω
-
Affichage de la température et de l’humidité sur un OLED I2C
- Affiche sur un écran OLED connecté au Raspberry Pi la température et l’humidité en temps réel récupérées depuis l’appareil Monty Home
- Met en œuvre l’affichage de données dynamiques sur un écran OLED SSD1306, ainsi que la récupération des données BLE et l’actualisation de l’écran
- Le matériel requis est un Raspberry Pi compatible BLE et un écran OLED SSD1306, avec une configuration possible en 128x32 ou 128x64
-
Alertes de température via IFTTT
- Lorsque la température de l’appareil Monty Home dépasse un certain seuil, le Raspberry Pi envoie une notification via IFTTT
- Couvre l’intégration IFTTT pour l’automatisation IoT, les requêtes HTTP via la bibliothèque
requests et la combinaison des données BLE avec les alertes cloud
- Le matériel et les comptes requis sont un Raspberry Pi avec Wi‑Fi et un compte IFTTT
Environnement d’exécution et dépendances
- Côté matériel, il faut un Raspberry Pi Zero 2 ou un autre modèle de Raspberry Pi compatible BLE, ainsi qu’un appareil Monty Home BLE
- Selon le projet, des composants supplémentaires comme une LED, un écran OLED ou un compte IFTTT peuvent être nécessaires
- Le système d’exploitation peut être Raspberry Pi OS Lite ou Raspberry Pi OS with Desktop
- Python 3 et
pip doivent être installés
- Les bibliothèques Python utilisées sont les suivantes
- Bleak : pour la communication BLE,
pip install bleak
- Requests : pour l’intégration IFTTT,
pip install requests
- Adafruit CircuitPython SSD1306 : pour le contrôle de l’OLED,
pip install adafruit-circuitpython-ssd1306
- Pillow : pour le traitement d’image sur l’OLED,
pip install pillow
Commandes BLE de Monty Home
- Les commandes BLE peuvent être remplacées ou modifiées dans les scripts Python afin de demander d’autres données ou d’exécuter d’autres actions
| Commande |
Fonction |
;QA\r\n |
Renvoie l’index de toutes les données présentes dans la mémoire flash |
;QP\r\n |
Renvoie l’index des données en attente dans la mémoire flash |
;QR\r\n |
Renvoie un enregistrement par index, ou NACK si l’index est absent |
;QS\r\n |
Renvoie l’état de l’appareil |
;QL\r\n |
Renvoie le niveau de batterie en pourcentage |
;QT\r\n |
Renvoie la mesure de température du capteur NTC |
;QH\r\n |
Renvoie la mesure d’humidité relative |
;QO\r\n |
Renvoie la mesure TVOC la plus récente |
;QC\r\n |
Renvoie la mesure CO2 la plus récente |
;QU\r\n |
Renvoie l’ID unique de l’appareil |
;QV\r\n |
Renvoie la version du firmware de l’appareil |
;CR\r\n |
Redémarre l’appareil |
;CF\r\n |
Effectue une réinitialisation usine |
Mode d’exécution du code
- Chaque projet inclut un script Python qui établit la connexion BLE, envoie les requêtes et traite les données
- L’exécution consiste à se déplacer vers le dossier du projet dans le terminal du Raspberry Pi, puis à lancer le script
cd /path/to/project
python3 project_script.py
project_script.py doit être remplacé par le vrai nom du fichier ; l’exemple donné est project1_temperature_led.py
Points de personnalisation
- En modifiant la commande BLE, il est possible de récupérer d’autres types de données
- Par exemple, pour interroger l’humidité au lieu de la température, remplacez la commande comme suit
command = ";QT\r\n"
command = ";QH\r\n"
- En ajoutant des conditions dans la fonction
notification_handler, il est possible de décoder et d’afficher plusieurs types de données, comme la température et l’humidité
- Les données peuvent être intégrées à une plateforme IoT ou à un tableau de bord pour la visualisation en temps réel, le logging et des automatisations supplémentaires
Références
1 commentaires
Avis sur Hacker News
Ça me donne une idée. J’ai un gros tas de compost issu du nettoyage d’une écurie, composé principalement de copeaux de bois imbibés d’urine et de crottin de cheval presque décomposé, avec aussi un peu de terre mélangée.
Cet été, j’ai essayé d’y planter des pommes de terre et des carottes : les pommes de terre ont très bien donné, les carottes beaucoup moins, mais je pense que c’est dû à un mauvais arrosage.
Comme ça n’a pas encore l’air complètement décomposé, mesurer la température devrait permettre de voir à quel point il est actif. J’ai aussi un capteur de température basé sur ESP8266 qui suivait la température ambiante dans un autre projet de fermentation.
Je pourrais sceller la thermistance, mettre le 8266 dans un boîtier IP67, puis le planter sur le tas de compost avec un panneau solaire. Comme il sert déjà une page web via un domaine
.local, ça ne devrait presque pas demander de travail.Je vais peut-être vraiment essayer ce week-end.
Le fumier chaud contient beaucoup de composés azotés, se décompose rapidement dans un tas de compost et produit beaucoup de chaleur au passage. Les serres traditionnelles utilisaient l’énergie du fumier en décomposition pour faire pousser semis et boutures en hiver ; les fientes de poule et de canard, ainsi que le crottin de cheval, entrent dans cette catégorie.
Le fumier froid est moins riche en nutriments et dégage moins de chaleur en se décomposant, ce qui réduit le risque de brûler les plantes. C’est le cas des animaux ruminants comme les vaches, les chèvres et les moutons, qui extraient la majeure partie de l’azote des aliments végétaux pendant la digestion. Les lamas et les alpagas ne sont pas des ruminants, mais leur fumier est pauvre en nutriments, donc on peut le considérer comme froid.
Sans vouloir dénigrer le produit, je ne pense pas en avoir personnellement besoin. Cela dit, je me demande s’ils ont étudié à partir de quelle échelle de compostage la surveillance électronique améliore suffisamment le produit final pour rentabiliser l’investissement.
J’ai l’impression qu’il faudrait une échelle assez importante.
J’aime bien le côté champignon du design domestique, et ils auraient peut-être pu pousser davantage dans cette direction.
Dans ce type d’environnement, les insights fondés sur les données peuvent réellement aider à gagner en efficacité et à réduire les coûts, par exemple en optimisant les cycles d’aération ou en repérant les inefficacités avant qu’elles ne deviennent coûteuses. Le site du produit est ici : (https://www.monty-pro.com)
À la maison, l’objectif est moins la réduction des coûts que la fourniture d’insights pratiques qui aident les utilisateurs réguliers de compost à mieux tirer parti de leurs efforts. Il s’agit d’enrichir l’expérience globale du compostage à petite échelle.
collectd est un système de monitoring open source qui peut par exemple écrire dans des fichiers plats RRD ou dans SQLite, et transmettre les métriques collectées à des applications de monitoring, de graphiques et de détection d’anomalies comme Grafana ou InfluxDB
Nagios dispose d’une fonctionnalité de « state flaping detection » pour éviter les alertes inutiles
collectd-python-plugins contient des scripts permettant de surveiller l’humidité et la température avec des capteurs i2c et Python : https://github.com/dbrgn/collectd-python-plugins
Il existe aussi des capteurs d’humidité du sol LoRaWAN, mais ils nécessitent une batterie ou une méthode de recharge sur site
« Satellite images of plants' fluorescence can predict crop yields » (2024)
« Sensor-Free Soil Moisture Sensing Using LoRa Signals (2022) » https://dl.acm.org/doi/abs/10.1145/3534608 .. https://news.ycombinator.com/context?id=40234912
Recherche de capteurs d’humidité du sol open source : https://www.google.com/search?q=open+source+soil+moisture+se...
Recherche wiki sur le monitoring des cultures : https://www.google.com/search?q=crop+monitoring+wikipedia ...
Agriculture de précision : https://en.wikipedia.org/wiki/Precision_agriculture
Agriculture numérique : https://en.wikipedia.org/wiki/Digital_agriculture
Recherche de systèmes de monitoring des cultures sur GitHub : https://www.google.com/search?q=crop+monitoring+system+site%...
SIEM : https://en.wikipedia.org/wiki/Security_information_and_event...
Je me demande quels fabricants et modèles de capteurs sont utilisés. Dans un projet perso, j’ai fait du monitoring environnemental avec des capteurs très bon marché, et j’ai eu une très mauvaise expérience en matière de répétabilité des mesures et d’immunité au bruit du capteur de CO2
Il y a aussi eu une discussion connexe sur HN, qui m’a permis de comprendre et de vérifier que le bruit était la cause du problème
J’ai quelques idées de projets qui dépassent le bricolage sur breadboard à la maison ; comme le logiciel et l’infrastructure arrivent à maturité, j’aimerais maintenant construire sur des composants fiables
Si vous partagez davantage vos idées de projets, nous pourrons en discuter plus en détail dans la mesure où cela peut être utile
C’est bien de voir se développer un monitoring du compost à petite échelle plus complet et extensible. La communauté Gathering for Open Ag Tech pourrait aussi être intéressée (https://forum.goatech.org/)
C’est bien, mais pour faire du compost chaud, il me semble qu’un simple thermomètre suffit assez largement. Si mon compost dépasse 45°C, on peut être assez sûr qu’il contient des micro-organismes thermophiles et qu’ils sont à l’œuvre
Cela dit, notre système prend tout son sens quand on veut aller un peu plus loin. Par exemple, ajouter des données sur les gaz, le niveau d’humidité et la pression atmosphérique permet de diagnostiquer ou d’optimiser le processus plus efficacement. On peut voir si l’activité est aérobie ou anaérobie, ou si l’humidité penche trop d’un côté ou de l’autre
Ces informations deviennent utiles lorsque la composition du compost ou les apports se complexifient, ou quand le processus s’arrête sans qu’on comprenne pourquoi. Bien sûr, tout le monde n’a pas besoin de toutes les fonctionnalités possibles : un thermomètre fiable et un bon sens du compost peuvent déjà produire un compost excellent et sain
C’est un bac noir en plastique en forme de Dalek, avec un volume trop important par rapport à sa surface, et il est placé dans un endroit très ombragé
Je suis surtout curieux de l’utilité pratique des valeurs de capteurs obtenues lorsqu’on surveille le compost. La température et l’humidité sont intuitives, mais par exemple, la composition des gaz indique-t-elle le ratio carbone/azote, ou sert-elle plutôt à vérifier si le tas passe en conditions anaérobies ?
Je me demande aussi si la pression atmosphérique est un indicateur indirect général de la vitesse de décomposition.
J’aimerais aussi savoir si ce que vous avez appris grâce au monitoring vous a déjà fait changer concrètement vos habitudes de compostage.
Associé aux données de température, cela permet assez bien de savoir si l’activité est aérobie — donc si le tas de compost est sain — ou au contraire anaérobie, ce qui est indésirable et peut générer des odeurs. Par exemple, si les TVOC augmentent fortement alors que la disponibilité en oxygène baisse, il est très probable qu’on soit en conditions anaérobies.
La pression atmosphérique est utilisée dans Monty Mobile, l’application compagnon, dans le cadre de la détection des événements de retournement du tas. L’application analyse aussi, avec les autres données, l’effet des changements de conditions comme le niveau d’humidité ou la fréquence des retournements sur la décomposition.
Pour la plupart des utilisateurs, un indicateur indirect général permettant de savoir si le tas est « actif » ou « stagnant » suffit. Cela permet d’ajuster le processus, par exemple en ajoutant des matières brunes, en réglant l’humidité ou en augmentant l’aération.
Les résultats du compost varient beaucoup selon la configuration — tumbler, bac, lombricomposteur — et les apports, comme le fumier, les déchets alimentaires ou les déchets de jardin. Malgré cela, les données 24 h/24 de notre système simplifient le processus de changement de comportement.
Au lieu de s’en remettre à une approche « essayer, attendre, puis réessayer », on reçoit un retour immédiat, ce qui peut faire une grande différence aussi bien pour les débutants que pour les utilisateurs expérimentés.
Personnellement, Monty a aussi été un excellent outil d’apprentissage. En utilisant l’application Monty Mobile, je me suis davantage intéressé à mon tas de compost, et je me rappelle mieux d’ajouter des matériaux quand c’est nécessaire pour l’ajuster. J’ai vraiment l’impression d’être plus connecté à ce qui se passe à l’intérieur.
Cela fait longtemps que j’ai envie de faire un projet similaire. L’idée serait d’avoir un piquet unique planté dans un pot, qui mesurerait la composition du sol, les niveaux de nutriments, l’humidité, la vitesse du vent, la luminosité, l’humidité de l’air, etc., afin de recommander des soins pour la plante et d’optimiser sa croissance.
Au final, je ne l’ai toujours pas fait. Je me demande si vous avez des recommandations d’achat de capteurs.
Trouver les bons capteurs a demandé beaucoup d’essais et d’erreurs, surtout parce que les conditions de compostage sont particulièrement difficiles. Si vous relancez le projet, je serais ravi de vous encourager ou de comparer nos notes.
Vous pouvez consulter Monty Monitor ici : https://montycompost.co/products/im-perfect-monty-monitor
Je ne sais pas comment vous avez lu dans mes pensées, mais par pure coïncidence, j’étais justement en train de chercher des thermocouples pour surveiller le compost.