
Links sehen wir einen Ultraschallsensor und rechts einen kleinen Computer, einen M5 Atom Lite. Diese Hardware, zusammen mit einer Stromversorgung über das USB-C-Kabel, ist alles was wir brauchen, um Abstände zu messen und die Messwerte zu verarbeiten.
Der M5 Atom Lite ist ein ESP32-Mikroprozessor mit WiFi, einem Button, einer RGB-LED, einem IR-Sender, mehreren IO-Ports und einer Reset-Taste. Man kann ihn z.B. mit der Arduino-IDE von einem Windows-, Linux- oder MacOS-Computer über das USB-C-Kabel programmieren.
Wasserstand im Kanister messen
Das war die erste Aufgabe, die ich mit dieser Hardware erledigt habe.
Der Ultraschallsensor wird im Deckel des Kanisters befestigt und schaut auf die Wasseroberfläche. Er misst den Abstand in festgelegten Intervallen (in Minuten):

Es gibt zwei Parameter, um den gemessenen Abstand in den Wasserstand im Kanister umzurechnen:

Anzeige des Wasserstands mit der RGB-LED
Ich lasse die LED in einer von drei Farben leuchten, je nachdem, wie voll der Kanister ist:
- Abstand kleiner als distanceFull:
=> LED leuchtet blau - Abstand zwischen distanceFull und distanceEmpty:
=> LED leuchtet grün - Abstand größer als distanceEmpty:
=> LED leuchtet rot
Anzeige des Wasserstands im Webbrowser
Um den Wassertand im Webbrowser anzuzeigen, erweitert man das Programm um einen Webserver, der immer den letzten Messwert anzeigt. Auf diesen Webserver kann man dann vom PC oder vom Handy aus zugreifen, wenn diese im gleichen WLAN sind.

Speichern der Wasserstands-Messwerte in einer Datenbank
Um den Wasserstand in einer Datenbank zu protokollieren, benötigt man eine Datenbank, auf die der M5 Atom Lite zum Schreiben des Wasserstands zugreifen kann. Dafür habe ich eine InfluxDB verwendet. Die InfluxDB besitzt ein HTTP-Interface, über das der Prozessor die Daten in die InfluxDB schreiben kann.

Vom Sensor zum Aktor
Wir können den Wasserstand im Kanister messen, aber wir können bisher nichts tun, wenn der Kanister leer läuft.

In diesem Szenario steht der Kanister auf dem Balkon auf einem Regal und versorgt die automatische Bewässerungsanlage mit Wasser. Der Wasserstand im Kanister wird mit dem Wasserstandssensor gemessen.
Wenn der Kanister leer ist, dann soll die Tauchpumpe im Vorratsbehälter aktiviert werden, die den Kanister im Regal wieder auffüllt. Sobald der Kanister voll ist, soll die Pumpe wieder deaktiviert werden.
Wir benötigen also noch einen Aktor, der die Tauchpumpe mit Strom versorgt, wenn die richtige Bedingung eingetreten ist (Kanister ist leer) und der die Pumpe wieder abschaltet, wenn dafür die richtige Bedingung eingetreten ist (Kanister ist wieder voll).
Die einfachste Lösung dafür ist eine schaltbare Steckdose, die über das WLAN ein- und ausgeschaltet werden kann. Z.B. so ein Shelly Plug S Gen3:

Diese Steckdose schaltet dann ein Netzteil an und aus, das eine 12V-Tauchpumpe mit Strom versorgt.
Diese einfachste Lösung ist aber nicht die billigste. Man kann auch ein Relais direkt an den M5 Atom Lite anschließen und die Tauchpumpe darüber ansteuern. Das habe ich hier in einer Plastikschachtel aufgebaut:



Weitere Infos zu diesem Projekt gibt es direkt bei mir. Zum Beispiel …
- wie man die RGB-LED vom M5 Atom Lite ansteuert
- wie man den Webserver im M5 Atom Lite programmiert
- wie man einen einfachen Dispatcher in die loop-Funktion einbaut
- wie man die Deep Sleep Funktion des M5 Atom Lite verwendet
- wie man eine InfluxDB3 auf einer DiskStation zum Laufen bekommt
Schreibe einen Kommentar