Ein Pretzelboard ist ein Arduino Nano mit einem WIFI-Modul vom Typ ESP8266. Dieser Microcontroller war mein persönlicher Einstieg in die Welt von IoT. Für die Bewässerungsanlage dient das Pretzelboard als Bindeglied zwischen FHEM und der Relaissteuerung.
Wie das Pretzelboard konkret zum Einsatz kommt, zeige ich in diesem Beitrag.
- Definition der Anforderungen
- Auswahl des passenden Bewässerungssystems
- Planung einer individuellen Steuerung
- Entwurf der Steuerungslogik
- Füllstandsmessung per Ultraschall (alt) oder Füllstandsmessung mit einer Pegelsonde (neu)
- Programmierung Pretzelboard (Microcontroller)
- Steuerung mit FHEM
- Darstellung auf FHEM Tablet-UI
Mit einem Pretzelboard als Microcontroller ist es möglich, die Bewässerungsanlage aus FHEM heraus anzusteuern. Hierzu dient in erster Linie ein kleiner Webserver, der auf dem Pretzelboard läuft. Es können somit über den Aufruf einer URL mit angefügten GET-Parametern per WIFI Befehle gesendet werden. Das Ergebnis der Befehle gibt der Webserver als Response wiederum auf seiner Webseite aus. Dieser Response kann wiederum in FHEM ausgewertet werden.
Das Senden des Requests und die Auswertung des Response übernimmt das HTTP-Modul in FHEM.
Für die Relaissteuerung habe ich drei Parameter vorgesehen:
Die Steuerung über GET-Parameter erfolgt somit wie folgt:
Folgender allgemeiner Statusbefehl wurde ebenfalls implementiert:
Eine Ultraschallmessung in der Zisterne wird wie folgt eingeleitet:
Aus diesen Steuerungsaufrufen ergibt sich automatisch die Funktionalität, die implementiert werden muss. Letztendlich ist ein Webserver notwendig, um die Befehle (GET-Parameter) zu empfangen. Die übermittelten GET-Parameter müssen ausgewertet und daraus resultierend die entspr. Pins des Microcontrollers geschaltet werden. Auf die Herausforderungen bezüglich Ultraschallsensor (seriell vs. digital) bin ich bereits im Abschnitt Füllstandsmessung mit Ultraschallsensor eingegangen.
Weitere Anforderungen waren:
Die Programmierung erfolgte mittels der Arduino-IDE unter Windows. Als Programmiersprache wird C++ verwendet. Das Programm selbst, der sogenannte Sketch, besteht im Wesentlichen aus zwei Methoden. Dies ist einleitend eine Setup-Methode, die nur einmal zum Programmstart durchlaufen wird. Hierin werden Grundeinstellungen (z.B. Zuweisung der festen IP, Initialisierung diverser Parameter) vorgenommen. Die eigentliche Programmlogik liegt in der Loop-Methode, die fortlaufend aufgerufen wird. Um die Übersichtlichkeit zu erhöhen, können diverse Funktionalitäten in weitere Methoden gekapselt und ausgelagert werden. Zusätzlich können zu Beginn des Programms noch diverse Libraries (z.B. für den seriellen Port) eingebunden oder globale Variablen definiert werden.
Das geschriebene Programm kann direkt über eine USB-Verbindung vom PC auf das Pretzelboard geladen werden. Über den USB-Port wird in diesem Falle auch die Stromversorgung gewährleistet. Für Tests kann das Pretzelboard mit der Relaisplatine oder dem Ultraschallsensor über Entwicklerboard - Steckbrückenkabel verbunden werden. Ein Debugging ist mit Trace-Ausgaben über den seriellen Monitor der Arduino-IDE möglich.
Hier finden Sie die Sketches, mit denen ich meine Bewässerungsanlage steuere:
Senden Sie mir Ihre Fragen oder Anregungen über die Kontaktbox oder direkt per Email. Sie können mich natürlich auch über die gängigen sozialen Netze erreichen.
kontakt@kaempf-nk.de