NEWS
Wasserzähler - Selfmade
-
Servus
Nachdem ich den Fokus noch mal nachstellen wollte, hab ich mir dabei die Kamera geschrottet.
Also noch einen ESP32-CAM bestellt
Und schwups ist auch bei diesem die Linse in 20 Teile zerfallen.Um jetzt nicht noch mehr ESP32-CAM rum liegen zu haben wollte ich mal Fragen ob einer eine Bezugsquelle für die Kamera einzeln hat.
Also wo bekommt man die Kamera auch einzeln zu einem guten Preis?
Gruß C1500
-
Servus
Nachdem ich den Fokus noch mal nachstellen wollte, hab ich mir dabei die Kamera geschrottet.
Also noch einen ESP32-CAM bestellt
Und schwups ist auch bei diesem die Linse in 20 Teile zerfallen.Um jetzt nicht noch mehr ESP32-CAM rum liegen zu haben wollte ich mal Fragen ob einer eine Bezugsquelle für die Kamera einzeln hat.
Also wo bekommt man die Kamera auch einzeln zu einem guten Preis?
Gruß C1500
-
@C1500 Oder wenn Du es eilig hast dann bei Amazon:
ningxiao586 Kameramodul Entwicklungsboard OV2640 Adapter T Kamera Plus ESP32 DOWDQ6 8MB SPRAM

Leider 9 Euro da Versandspesen von 4 Euro, da bekommt man aber schon einen ESP32Cam (mit Camera)
Ich habe mit dem Fischauge Objektiv keine positiven Erfahrungen machen können. Aber vielleich habe ich was falsch gemacht. -
Entweder günstig für 2,08 Eur über China:
https://www.ebay.de/itm/OV2640-2-0MP-1-4-Inch-Camera-Mega-Pixels-CMOS-SCCB-Interface-Image-Sensor-Module/173840843447?hash=item2879b8c2b7:g:waEAAOSwXHpcjzcJoder etwas teurer für 8 Eur mit Cam aus DE
https://www.ebay.de/itm/ESP32-CAM-ESP32-5V-WIFI-bluetooth-Entwicklungsboard-mit-Kamera-OV2640-modul-DE/352939410230?hash=item522cd40336:g:6rwAAOSwRjteJCKu -
Ich hab übrigens seit einiger Zeit auf den Bildern die die CAM macht 2 Bereiche mit schwarzen Balken, welche auch nach einem Reboot nicht verschwinden.
Hat einer ne Ahnung was das sein kann, ist da evtl. die Linse defekt oder was am ESP32-Modul?
Im Moment funktioniert die Cam ohne Einschränkungen, da die Balken noch ausserhalb des relevanten Bereichs sind.
-
Hallo, ich habe es bei mir aktuell auch recht stabil am laufen.
Aber gerade zu dem letzten Post von @Atifan habe ich eine Frage.
Wie bekommt man ein so gestochen scharfes Bild mit einem ESP 32 mit OV2640 cam.
Oder hast du eine andere Cam oder externe Ausleuchtung. Denn auch wenn es bei mir läuft eine leichte Schattenbildung bei den Analogzeigern lässt sich nicht vermeiden.
Danke :) -
Hi,
habe normale ESP-CAM, ESP32 mit OV2640.
Habe die Linse verstellt.
Abstand ist wichtig, sind bei mir genau 10cm zwischen Wasseruhr und Linse.
Die Wasseruhr befindet sich hinter einer Holzvertäfelung, d.h. dort ist es dunkel.
Die Beleuchtung macht nur das Flashlight der Cam.
In der config capture ich die Bilder mit folgendem Link: http://192.168.178.238/capture_with_flashlight?quality=10&size=SVGA -
Hi,
habe normale ESP-CAM, ESP32 mit OV2640.
Habe die Linse verstellt.
Abstand ist wichtig, sind bei mir genau 10cm zwischen Wasseruhr und Linse.
Die Wasseruhr befindet sich hinter einer Holzvertäfelung, d.h. dort ist es dunkel.
Die Beleuchtung macht nur das Flashlight der Cam.
In der config capture ich die Bilder mit folgendem Link: http://192.168.178.238/capture_with_flashlight?quality=10&size=SVGA -
Ich hab übrigens seit einiger Zeit auf den Bildern die die CAM macht 2 Bereiche mit schwarzen Balken, welche auch nach einem Reboot nicht verschwinden.
Hat einer ne Ahnung was das sein kann, ist da evtl. die Linse defekt oder was am ESP32-Modul?
Im Moment funktioniert die Cam ohne Einschränkungen, da die Balken noch ausserhalb des relevanten Bereichs sind.
@Atifan sagte in Wasserzähler - Selfmade:
Ich hab übrigens seit einiger Zeit auf den Bildern die die CAM macht 2 Bereiche mit schwarzen Balken, welche auch nach einem Reboot nicht verschwinden.
Hat einer ne Ahnung was das sein kann, ist da evtl. die Linse defekt oder was am ESP32-Modul?
Im Moment funktioniert die Cam ohne Einschränkungen, da die Balken noch ausserhalb des relevanten Bereichs sind.
Das Problem habe ich auch seit einige Zeit - bei mir ist es ein Balken am oberen Rand. Ich vermute, dass nach mehr als einem Jahr die Kamera langsam einen Schaden nimmt. Ist halt doch etwas feucht über der kalten Wasseruhr.
Eventuell könnte ein anderes Deckeldesign helfen, in dem nur noch die Leuchte und die Kamera durch kleine Fenster offen gehalten werden und der Rest im "Trockenraum" ist und wärmer und mit weniger Feuchte.
Wäre eine Version 2.1, muss ich mal überdenken. -
@jomjol Guten Abend jomjol, ich habe im Beitrag 605 eine Lösung gegen die Feuchtigkeit vorgestellt. Probier doch das mal aus. Ich habe seit dem kein einziges mal mehr ein angelaufenes Schauglas oder sonstige Feuchtigkeit im Aufbau. Einfach herumwickeln und mit einem Spagat festzurren.


Kostenpunkt circa 17,-- Euro -
Also bei mir rennt der Wasserzähler-Sensor jetzt sehr gut und zuverlässig mit meiner aktuellen Config
[Imagesource] TimeoutLoadImage=30 #IP durch die IP des ESP32 ersetzen! URLImageSource=http://192.168.178.238/capture_with_flashlight?quality=10&size=SV GA #LogImageLocation=./log/source_image # Falls nur schlechte / fehlerhafte Bilder gelockt werden sollen, naechste Zeile Kommentar entfernen #LogOnlyFalsePictures=True [ConsistencyCheck] Enabled=True ReadPreValueFromFileAtStartup=True #Maximum Time spanning since last startup for use of preValue from Filestorage i n minutes ReadPreValueFromFileMaxAge=525600 AllowNegativeRates=True #Stores the last Value in a file for the case of a restart (e.g. Docker containe r after update) #Maximum Change of new to old value (+ or -) MaxRateValue=0.5 #Return in Case of Error: Value = OldValue or NewValue # ErrorMessage = Return Text with problem (seperated by Tabstopp) if nothing, then no error message # Readout = Real Readout without corrections (NewValue) ErrorReturn=OldValue, ErrorMessage, Readout #ErrorReturn=OldValue, ErrorMessage #ErrorReturn=NewValue, ErrorMessage [AnalogReadOut] #If enabled analog counters will be read, if disabled only digital counters will be read. Enabled=True [alignment] initial_rotation_angle=0 [alignment.ref0] image=./config/Ref_M100_x547_y193.jpg pos_x=547 pos_y=193 [alignment.ref1] image=./config/Ref_m3_x456_y158.jpg pos_x=456 pos_y=158 [alignment.ref2] image=./config/Ref_x0_x321_y421.jpg pos_x=321 pos_y=421 [Digital_Digit] names=ziffer1, ziffer2, ziffer3, ziffer4, ziffer5 Modelfile=./config/neuralnets/Train_CNN_Digital-Readout_Version_4.1.0.h5 #LogImageLocation=./log/digital_digit #LogNames=zeiger3, zeiger4 [Analog_Counter] names=zeiger1, zeiger2, zeiger3, zeiger4 Modelfile=./config/neuralnets/CNN_Analog-Readout_Version-4.0.1.h5 #LogImageLocation=./log/analog_counter #LogNames=zeiger3, zeiger4 [Analog_Counter.zeiger1] pos_x=491 pos_y=262 dx=125 dy=125 [Analog_Counter.zeiger2] pos_x=432 pos_y=395 dx=125 dy=125 [Analog_Counter.zeiger3] pos_x=298 pos_y=446 dx=125 dy=125 [Analog_Counter.zeiger4] pos_x=157 pos_y=383 dx=125 dy=125 [Digital_Digit.ziffer1] pos_x=203 pos_y=164 dx=36 dy=55 [Digital_Digit.ziffer2] pos_x=248 pos_y=164 dx=36 dy=55 [Digital_Digit.ziffer3] pos_x=295 pos_y=166 dx=36 dy=55 [Digital_Digit.ziffer4] pos_x=343 pos_y=167 dx=36 dy=55 [Digital_Digit.ziffer5] pos_x=390 pos_y=167 dx=36 dy=55 $ -
Also bei mir rennt der Wasserzähler-Sensor jetzt sehr gut und zuverlässig mit meiner aktuellen Config
[Imagesource] TimeoutLoadImage=30 #IP durch die IP des ESP32 ersetzen! URLImageSource=http://192.168.178.238/capture_with_flashlight?quality=10&size=SV GA #LogImageLocation=./log/source_image # Falls nur schlechte / fehlerhafte Bilder gelockt werden sollen, naechste Zeile Kommentar entfernen #LogOnlyFalsePictures=True [ConsistencyCheck] Enabled=True ReadPreValueFromFileAtStartup=True #Maximum Time spanning since last startup for use of preValue from Filestorage i n minutes ReadPreValueFromFileMaxAge=525600 AllowNegativeRates=True #Stores the last Value in a file for the case of a restart (e.g. Docker containe r after update) #Maximum Change of new to old value (+ or -) MaxRateValue=0.5 #Return in Case of Error: Value = OldValue or NewValue # ErrorMessage = Return Text with problem (seperated by Tabstopp) if nothing, then no error message # Readout = Real Readout without corrections (NewValue) ErrorReturn=OldValue, ErrorMessage, Readout #ErrorReturn=OldValue, ErrorMessage #ErrorReturn=NewValue, ErrorMessage [AnalogReadOut] #If enabled analog counters will be read, if disabled only digital counters will be read. Enabled=True [alignment] initial_rotation_angle=0 [alignment.ref0] image=./config/Ref_M100_x547_y193.jpg pos_x=547 pos_y=193 [alignment.ref1] image=./config/Ref_m3_x456_y158.jpg pos_x=456 pos_y=158 [alignment.ref2] image=./config/Ref_x0_x321_y421.jpg pos_x=321 pos_y=421 [Digital_Digit] names=ziffer1, ziffer2, ziffer3, ziffer4, ziffer5 Modelfile=./config/neuralnets/Train_CNN_Digital-Readout_Version_4.1.0.h5 #LogImageLocation=./log/digital_digit #LogNames=zeiger3, zeiger4 [Analog_Counter] names=zeiger1, zeiger2, zeiger3, zeiger4 Modelfile=./config/neuralnets/CNN_Analog-Readout_Version-4.0.1.h5 #LogImageLocation=./log/analog_counter #LogNames=zeiger3, zeiger4 [Analog_Counter.zeiger1] pos_x=491 pos_y=262 dx=125 dy=125 [Analog_Counter.zeiger2] pos_x=432 pos_y=395 dx=125 dy=125 [Analog_Counter.zeiger3] pos_x=298 pos_y=446 dx=125 dy=125 [Analog_Counter.zeiger4] pos_x=157 pos_y=383 dx=125 dy=125 [Digital_Digit.ziffer1] pos_x=203 pos_y=164 dx=36 dy=55 [Digital_Digit.ziffer2] pos_x=248 pos_y=164 dx=36 dy=55 [Digital_Digit.ziffer3] pos_x=295 pos_y=166 dx=36 dy=55 [Digital_Digit.ziffer4] pos_x=343 pos_y=167 dx=36 dy=55 [Digital_Digit.ziffer5] pos_x=390 pos_y=167 dx=36 dy=55 $Hallo zusammen,
ich habe eine neue Version zunächst in die Rolling Versionen (Synology und Raspberry) eingespielt.
Es ist ein Update auf Tensorflow 2.1. Vielleicht ist damit das Speicherleck behoben. Ich habe leider keine Zeit es zu testen, freue mich aber über jedes Feedback.Beste Grüße,
jomjol -
Ich habe auch mal einen Docker in proxmox erstellt (vorher auf QNAP) und dann gerade die neueste Version installiert, frage mich wieso er bei dir @Atifan jetzt schon so viel RAM frisst?!
Edit: Es läuft bei mir im Docker nur der Wasserzähler, sonst nichts.

-
Hm, keine Ahnung. Ich hab eine komplette VM mit Debian 10.2 und dem Docker, wahrscheinlich deswegen?
-
Ich habe in meinem Haus schon länger den Strom- und Heizungsverbrauch erfasst. Einzig der Wasserzähler fehlte noch aufgrund seiner analogen Natur.
Update 23.02.2020: Inzwischen gibt es ein graphisches Tool zum Erstellen der Konfiguration per WYSIWYG (Referenzbilder, ROIs, Parameter, ...):
http://wasserzaehler.ignorelist.com
Es ist noch im Beta-Status, daher bitte ich gerne um Feedback und etwas Geduld.Jetzt habe ich eine selfmade Lösung entwickelt, die zuverlässig funktioniert und das möchte ich gerne mit der Community teilen, auch um weitere Anregungen zu bekommen.
Das Grundprinzip basiert auf einer Kamera mit ESP8266-Steuerung, die regelmäßig ein Bild aufnimmt, durch eine Bilderkennung auswertet und den Zählerstand digitalisiert:

Die einzelnen Komponten sind entweder auf Thingiverse oder GitHub veröffentlicht. Dort findet ihr auch die 3D-Printfiles, Schaltung und Software für die Datenauswertung.
Überblick: https://github.com/jomjol/water-meter-measurement-system
- 3D-Druck Halterung für ESP32-CAM: https://www.thingiverse.com/thing:3860911 <- RECOMMENDED
- Bildaufnahme: https://github.com/jomjol/water-meter-picture-provider
- Server für Bildverarbeituung: https://github.com/jomjol/water-meter-system-complete
auch als lauffähiges Docker Image verfügbar - WYSIWYG-Tool zum Einstellen des Servers: http://wasserzaehler.ignorelist.com
Details zur Signalverarbeitung:
- Alignment und Zerlegen des Bildes: https://github.com/jomjol/water-meter-image-cut
- Bilderkennung für Zeiger: https://github.com/jomjol/neural-network-analog-needle-readout
- OCR für Digits: https://github.com/jomjol/neural-network-digital-counter-readout
Ich habe jetzt jede Komponente und auch einen vollständigen Server veröffentlicht.
Stehe gerne für Feedback und Fragen zur Verfügung.Beste Grüße,
Jomjol
@jomjol Hallo,
das Setup sieht beeindruckend aus und gibt vor allem absolute Werte aus, was mir besser gefällt als ein Zähler (der ja auch mal einen Puls übersehen könnte).
Einen Raspberry Pi habe ich (für die Auswertung) und ein ESP32-CAM Board mit fertig eingerichtetem Arduino IDE auch. Ich frage mich aber, wo ich die 3D-Druck Teile bekommen kann, mangels 3d-Drucker kann ich die nicht selber herstellen. Und einige Dienstleister fragen dann nach Material (PP, PE, etc.), da bin ich auch unsicher.
Kannst du mir einen Dienstleister empfehlen?
Bzw. wo hast du die Teile machen lassen?Außerdem: mein Gaszähler ist gleich nebenan, ich habe mir einen Reedkontakt besorgt, welcher auf den Magnet im letzten Zahlenrad des Zählers reagieren müsste. Ich würde im zweiten Schritt mal versuchen, die Software zu erweitern, so dass auch der Gaszähler-Wert erfasst wird (hier haben wir dann aber nur relative Werte). Dafür müsste doch einer der GPIO-Pins taugen, oder?
Danke & Gruß


