HN vorgestellt: Open Source für Kompost-Monitoring-Technologie
(github.com/gtls64)Monty Home Device Hacking Guide
Der Monty Home Device Hacking Guide ist ein Repository, das zeigt, wie sich die Funktionen von Monty-Home-BLE-Geräten mit einem Raspberry Pi erweitern lassen. Das Gerät wurde ursprünglich für das Monitoring von Kompost entwickelt und erfasst Umweltdaten wie Temperatur und Luftfeuchtigkeit. Mit diesem Guide lässt sich lernen, wie man die Daten abruft, anzeigt und automatisiert.
Überblick
- Dieser Guide wurde für Menschen entwickelt, die sich für BLE-Geräte, IoT-Anwendungen und Umweltmonitoring interessieren.
- Das Monty-Home-Gerät liefert Echtzeitdaten über BLE, darunter Temperatur, Luftfeuchtigkeit und Batteriestand.
- Enthalten sind drei Projekte, die Python, BLE und Raspberry Pi nutzen, um mit dem Monty-Home-Gerät zu interagieren.
Projekte
Projekt 1: LED-Steuerung auf Basis der Temperatur
- Zweck: Verwendet die Temperaturdaten des Monty-Home-Geräts, um eine LED am Raspberry Pi zu steuern. Wenn die Temperatur einen bestimmten Schwellenwert überschreitet, zeigt die LED eine Warnung an.
- Erworbene Kenntnisse: Einrichtung der GPIO-Steuerung, Abfrage von BLE-Daten, grundlegende Python-Programmierung und Bedingungsverarbeitung
- Benötigte Hardware: Raspberry Pi mit BLE-Unterstützung, LED und 330-Ohm-Widerstand
Projekt 2: Anzeige von Temperatur und Luftfeuchtigkeit auf einem I2C-Display
- Zweck: Zeigt die Echtzeitdaten zu Temperatur und Luftfeuchtigkeit des Monty-Home-Geräts auf einem mit dem Raspberry Pi verbundenen OLED-Bildschirm an.
- Erworbene Kenntnisse: Arbeit mit I2C-Geräten, dynamische Datenanzeige mit einem SSD1306-OLED-Display, Abruf von BLE-Daten und Implementierung von Display-Updates
- Benötigte Hardware: Raspberry Pi mit BLE-Unterstützung, SSD1306-OLED-Display
Projekt 3: Temperaturwarnungen über IFTTT
- Zweck: Richtet den Raspberry Pi so ein, dass er über IFTTT eine Benachrichtigung sendet, wenn die Temperatur des Monty-Home-Geräts einen bestimmten Schwellenwert überschreitet.
- Erworbene Kenntnisse: Integration von IoT-Automatisierung mit IFTTT, Senden von HTTP-Anfragen mit der Bibliothek
requests, Kombination von BLE-Daten mit Cloud-basierten Benachrichtigungen - Benötigte Hardware: Raspberry Pi mit Wi‑Fi-Unterstützung, IFTTT-Konto
Einrichtung
Hardware-Anforderungen
- Raspberry Pi (Zero 2 oder ein Modell mit BLE-Unterstützung)
- Monty Home BLE-Gerät
- Zusätzliche Hardware, die für die einzelnen Projekte benötigt wird (LED, OLED-Display, IFTTT-Konto usw.)
Software-Anforderungen
- Raspberry Pi OS: Installation von Raspberry Pi OS Lite (headless) oder Raspberry Pi OS with Desktop (grafische Benutzeroberfläche)
- Python 3: Installation von Python 3 und
pip - Bibliotheken:
- Bleak: für BLE-Kommunikation
- Requests: für die IFTTT-Integration
- Adafruit CircuitPython SSD1306: für die OLED-Steuerung
- Pillow: für die Bildverarbeitung auf dem OLED
BLE-Befehle
- Hierbei handelt es sich um Befehle, die für die Interaktion mit dem Monty-Home-Gerät verwendet werden. Jeder Befehl fordert bestimmte Daten an oder führt eine Aktion aus.
- Beispiel:
;QT\r\ngibt den Temperaturwert des NTC-Sensors zurück.
Code ausführen
- Jedes Projekt enthält ein Python-Skript, das eine BLE-Verbindung aufbaut, Abfragen sendet und Daten verarbeitet.
- So wird ein Skript ausgeführt:
- Terminal auf dem Raspberry Pi öffnen
- In den Projektordner wechseln:
cd /path/to/project - Skript ausführen:
python3 project_script.py
Anpassung
BLE-Befehle anpassen
- Die BLE-Befehle im Code lassen sich ändern, um verschiedene Arten von Daten vom Monty-Home-Gerät abzurufen.
Notification-Handler erweitern
- Um mehrere Datentypen zu verarbeiten, können innerhalb der Funktion
notification_handlerBedingungen ergänzt werden, damit unterschiedliche Messwerte dekodiert und angezeigt werden.
Integration mit anderen Plattformen
- Es kann sinnvoll sein, die Daten in IoT-Plattformen oder Dashboards zu integrieren, um Echtzeitvisualisierung, Logging oder weitere Automatisierung umzusetzen.
Weitere Materialien
- Python auf dem Raspberry Pi
- BLE-Guide für den Raspberry Pi
- IFTTT-Webhooks-Dokumentation
- Adafruit-CircuitPython-SSD1306-Guide
Beiträge
- Pull Requests, Problemmeldungen und Funktionsvorschläge sind willkommen. Es kann dazu beigetragen werden, diesen Guide zu verbessern und neue Projekte hinzuzufügen.
1 Kommentare
Hacker-News-Kommentare
Ein Nutzer teilte seine Erfahrung, Kartoffeln und Karotten auf einem Komposthaufen aus Pferdestallmist angebaut zu haben; Kartoffeln wuchsen gut, Karotten hingegen wegen Wassermangels nicht besonders gut
Ein anderer Nutzer fragte sich, ab welcher Größenordnung sich die Qualität von Kompost durch elektronische Überwachung verbessern lasse, und äußerte die Ansicht, dass dies wahrscheinlich in größerem Maßstab erfolgen müsse
Ein weiterer Nutzer teilte seine Erfahrungen mit Umweltüberwachung unter Verwendung günstiger Sensoren und erwähnte Probleme mit der Reproduzierbarkeit der Sensoren sowie der Rauschunempfindlichkeit von CO2-Sensoren
Ein Nutzer begrüßte die Skalierbarkeit von Kompostüberwachung im kleinen Maßstab und erwähnte, dass die Community Gathering for Open Ag Tech daran interessiert sein könnte
Ein anderer Nutzer bevorzugte eine einfache Methode zur Messung der Komposttemperatur und erklärte, dass bei Temperaturen über 45 Grad thermophile Bakterien aktiv seien
Ein weiterer Nutzer teilte den Gedanken, ein Pflanzenüberwachungssystem bauen zu wollen, und erwähnte, dass er Empfehlungen für Sensoren erhalten möchte, die Bodenbeschaffenheit, Nährstoffgehalt, Feuchtigkeit und Ähnliches messen können
Ein Nutzer fragte nach dem praktischen Nutzen der durch Kompostüberwachung gewonnenen Sensordaten und wollte wissen, ob sich neben Temperatur und Feuchtigkeit auch feststellen lasse, welchen Einfluss die Gaszusammensetzung auf das C/N-Verhältnis hat oder ob der Kompost in einen anaeroben Zustand übergeht
Es wurden zusätzliche Informationen zum Produkt Monty Monitor bereitgestellt
Ein Nutzer erwähnte, dass er für die Kompostüberwachung nach Thermoelementen gesucht habe
Ein Nutzer fragte, ob an einer Integration mit HomeAssistant gearbeitet werde