- Offizieller Beitrag
Hallo Zusammen,
nachdem ich erfolgreich meinen Stromverbrauch erfasse war es an der Zeit dem Wasserverbrauch zu Leibe zu Rücken. Eigentlich wollte ich das alles selber machen, und hatte mich schon seelisch und moralisch darauf eingestellt, als ich ich zufällig auf Thingiverse auf dieses Projekt stiess. Da war schon einer fertig - sehr schön, weniger Arbeit für mich .
Ich möchte hier nur noch mal meine Installation + Konfigurationen beschreiben. Der Support vom Ersteller jomjol findet hier statt. Dank Web3.0 Blödsinn wie continuous scrolling ist die Seite komplett unbrauchbar, da man nicht mal alles durchsuchen kann.
Was brauchen wir:
- ESP32-Cam (China oder 16€ auf Ebay)
- Raspberry Pi 3b+ oder höher
- Ein 10cm Rohr im passenden Durchmesser oder dieses Ding, was auf die Wasseruhr gestellt wird.
- eine Datenbank eurer Wahl + Visualisierung eurer Wahl (Ich nutze influxdb + grafana)
Leider passt das o.a. Ding nicht auf meine Wasseruhr, da ich noch so einen Deckel drauf habe, der nur mit Gewalt abzubrechen geht. Ich habe mir daraufhin dieses Teil (eine 8,6 x 10cm Röhre mit breiterer Auflage unten)
gezeichnet, gedruckt (anschliessend mit Zange die Aussparung für den Wasseruhrdeckel weggeschnitten - und ja, das hätte ich beim Zeichnen gleich bedenken sollen )und fachmännisch mit Panzertape an der Wasseruhr befestigt. Als Deckel + Halterung kamen die Originalteile aus dem Link zum Einsatz. Das ganze sieht dann so aus:
Der ESP wurde mit diesem Code bespielt. Damit die Kamera auch ein Bild lieferte musste ich diesen Teil im Code anpassen
// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER
Anschliessend noch in der ESP32-CAM_Server-GitHub.ino Wlan SSID + Pw eintragen und mit folgenden Einstellungen flashen.
Durch Aufrufen von http://IP_DES_ESP32/capture_with_flashlight kann man ein Bild anfordern und siehe da, es ist unscharf .
Wenn man mit einem Skalpell den kleinen Tropfen kleber an der Kamera löst, kann man diese drehen und so den Fokus verändern. Ich musste eine 300° Drehung gegen den Uhrzeigsinn drehen damit es scharf wird. (Einfach durch Try and Error ausprobieren).
Damit wäre Hardwareteil schon geschafft. Ich hab bei mir im Keller recht schlechten WLAN Empfang (ich erreiche den ESP öfter nicht)
woraufhin ich mir noch eine externe Antenne [Anzeige] bestellt habe.(noch unterwegs).
Zum Softwareteil:
Der Entwickler weiss selber nicht mehr richtig wie er "damals" opencv und tensorflow manuell installierte hatte und bietet deshalb ein Docker image an, womit sich der Aufwand für einen selbst in Grenzen hält. Ich habe gut 2 Tage damit verbracht rauszufinden warum das "latest" image auf meinen Pi eine Fehlermeldung nach der anderen schmiss.
Das X86/64 latest image funktionierte an meinen Notebook auf Anhieb (für die die es auf ner Synology installieren wollen). Die aktuelle "beta" (raspi-rolling) wiederum funktionierte wundersamer weise.
Auf dem pi installiert und startet man das ganze per
(Noch nicht ausführen!)
docker run -d -p 3000:3000 --mount type=bind,source=/home/pi/wasser/config,target=/config --mount type=bind,source=/home/pi/wasser/log,target=/log jomjol/wasserzaehler:raspi-rolling
(Docker installation vorausgesetzt)
In /home/pi/wasser/config kommen alle Dateien, die im Laufe der Konfigurationserstellung anfallen. Da diese alles andere als Selbsterklärend für mich war, hier mal die groben Schritte.
Wir wechseln wir auf die Seite http://wasserzaehler.ignorelist.com/preparation/ und klicken auf . Dann macht ihr ein Bild mit eurem ESP und speichert es 3x (ref0,jpg,ref1.jpg,ref2.jpg) und ladet die Bilder anschliessend hier hoch
Klickt dann im Header auf Reference Image und ladet im Bereich
einfach noch mal ref0.jpg aus dem vorherigen Schritt hoch. Dreht euch das Bild über
so zurecht, dass die Zahlen halbwegs grade ausgerichtet sind
Klickt dann auf rechts neben dem Bild.
Jetzt müsst ihr 3 unveränderliche Punkte auf eurem Bild finden und diese angeben. Rechts ref0.jpg auswählen und einen Rahmen um z.B.
ziehen. Anschliessend auf Save klicken. Dann zu ref1.jpg wechseln und das ganze mit einem anderen Schriftzug wiederholen, für ref2.jpg das gleiche.
Dann oben im Header auf Digits wechseln und alle bestehenden Rahmen, durch klick auf delete löschen. Die 5 Felder werden nach folgendem Schema erfasst:
- Bild benennen (z.B. Bild1)
- rename
- Rahmen um die erste Zahl ziehen (rechts beginnen) und ausrichten
- save
- new
Wenn ihr 5 Rahmen habt, klickt oben auf Analog und wiederholt die oberen Schritte für die 3-4 Anzeigen.
Wechselt Parameters tab. Dort hab ich nur eine Einstellung gemacht. Bei URLImageSource den Link zu eurem ESP eingeben und Haken setzen. Abschliessend mit save speichern.
Zu guter Letzt findet ihr im Config.ini tab einen Knopf. Drücken und den Inhalt des Zip Files anschliessend nach /home/pi/wasser/config kopieren.
Jetzt könnt ihr den o.a. docker Befehl absetzen und euch nen Kaffee holen. Mein Pi3 hatte während des downloads und der Installation gut zu rödeln und war zeitweise nicht ansprechbar.
Wenn ihr nun http://IP_DES_DOCKER_PI:3000/wasserzaehler.html?full im Browser eingebt, sollten die richtigen Werte neben den Bildern stehen.
Ein Aufruf von http://IP_DES_DOCKER_PI:3000/wasserzaehler.html?single Liefert nur die Ausgelesene Zahl, welche dann durch dein Script weiterverarbeitet werden kann.
....Aber davon erzähle ich euch ein anderes mal.
TLTR;
Bastel, Bastel, Tipp Tipp, Klick Klick.