NEWS
Wasserzähler - Version 2 - all-in-device
-
@Eggs sagte in Wasserzähler - Version 2 - all-in-device:
Moin und danke für die Arbeit,
aber irgendwie stelle ich mich wohl zu blöd an...
Kann ich aus dem github-Ordner Code die firmware.bin mit ESP-Flasher auf das Modul schieben und danach das WLAN konfigurieren (ähnlich Tasmota bei Sonoffs) oder muss ich die Zugangsdaten vorher irgendwo hinterlegen? Habe auch versucht, die Software in Arduino zu öffnen, der will will aber eine *.ino...
Im Voraus dankende Grüße für die Erleuchtung
DirkHallo Dirk,
ganz so einfach wie bei Sonoffs ist es (noch) nicht, aber fast .Die Firmware besteht aus drei Teilen (Bootloader, Partitioninfo und Firmware) und die müssen alle drei geflasht werden - das geht aber mit dem Tool von Espressif eigentlich reicht einfach - ist hier detailliert beschrieben: https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation
Dort findest du auch den Link zum Flashtool und eine Anleitung zur Bedienung. Das Wlan wird über eine Dateil auf der SD-Karte konfiguriert. Dort gibt es die wlan.ini (im Root Verzeichniss) - dort einfach SSDI und Passwort eintragen. Ist auch im o.g. Link nochmal beschrieben.
Arduino geht nicht, da der Code in PlattformIO mit ESP-IDF erstellt ist und nicht die Arduino Bibliotheken verwendet.
Dann sollte es funtkionieren und du kannst die Konfiguration an deinen Wasserzähler vornehmen. Details findest du hier: https://github.com/jomjol/AI-on-the-edge-device/wiki/Configuration und hier https://github.com/jomjol/AI-on-the-edge-device/wiki/Graphical-configuration.
Viel Erfolg und gerne bei Fragen melden.
Beste Grüße,
jomjol -
@hike sagte in Wasserzähler - Version 2 - all-in-device:
@jomol
Toll geschriebener Code. Es macht Spaß so was zu lesen und daran zu lernen.Frage: Das Entwicklungssystem ist PlatformIO ?
Ich habe leider kaum Erfahrungen damit.
Gibts eine Kurzanleitung zum Import dieses Projekts?
HikeHallo Hike,
erstmal danke für dein positive Feedback. Ja - der Code ist in PlattformIO geschrieben und kompiliert. Eine detailierte Anleitung habe ich nicht - ist mein ersten Projekt in PlattformIO.
Ich habe alles in Windows10 aufgesetzt (ja Asche auf mein Haupt :-)). Ich programmiere alles im Editor VSCode und habe über das Plugin "PlattformIO IDE" PlattformIO installiert. Dort musst du dann das "Espressif 32" Framework installierte. Letzteres ist etwas tricky in Windows gewesen.Das ganze geht auch unter Linux - temporär hatte ich die Entwicklung auch auf einem virtualisierten Linux (ich verwende Ubuntu) am Laufen, dort geht die Installation etwas leichter. Wenn ich es nochmal installiere, dann mache ich da mal ein Tutorial draus.
Gruß,
jomjol -
Hey @jomjol vielen Dank für deine V2 Version.
Habe heute mal probiert es aufzusetzen, leider scheitere ich am Referenzbild
Irgendwie bin ich gerade zu blöd dazu. Der ESP ist im WLAN und die HTML Seiten werden angezeigt.
Jetzt möchte ich eigentlich ein neues Referenzbild erstellen, geht aber nicht. Beim ersten Test Start wurde mal ein Bild gemacht von meinen Fingern, dass wird jetzt als Referenzbild angezeigt, möchte ich ein neues erstellen, wird immer wieder dieses Bild angezeigt.
Löschen unter File Server kann ich es auch nicht, weiß jetzt gerade die Fehlermeldung nicht aus dem Kopf, war aber was mit "Header too Long". Gibt ja auch schon ein Issue dafür und ja nutze Chrome.
Habe noch ein anderes Problem mit meinem zweiten ESP32 der die ganze Zeit mit der v1 lief, aber dazu später. Erst möchte ich die v2 jetzt mal am laufen haben -
Hi jomjol
Habe unterdessen noch weitergetestet....irgendwie hat es mich jetzt so richtig gepackt
--> Habe die 2 Issues auf Github eröffnetWegen der Error-Meldungen im Chrome-Browser: Mir hat schlussendlich geholfen, den Browser zurückszusetzen (Cache löschen, alle Cookies, löschen...). Wieso auch immer.
Nun...bevor ich das aber bemerkt habe, hatte ich bereits einige Stunden versucht (bin eben auch nicht wirklich ein Experte....) dem Problem in den HTML-Dateien auf die Spur zu kommen und dabei das Script "includeHTML();" verwendet um externe HTML-Daten einzubinden. Das hat im Chrome ebenfalls geholfen. Hab dann aber auch noch ein wenig am Layout rungewerkelt:Ich stelle meine HTML-Dateien einfach mal hier rein, dann kann jeder selbst entscheiden Du kannst diese natürlich auch für das Projekt weiterverwenden wenn du willst.
Noch eine letzte Frage: Das "DeleteAll"-Feature funktioniert tiptop, danke! Bei vielen Dateien dauert es aber ziemlich lange und man weiss nicht ob was geht oder der ESP32 abgeschmiert ist. Eine Progressbar wäre da super. Weiss aber nicht ob das machbar ist? Zudem wäre nach erfolgreichem löschen noch ein "Page Refresh" gut so wie beim löschen einer einzelnen Datei.
Gruss
Michael -
@michaeljoos sieht schick aus die Oberfläche
Hast du gerade ne Idee, da du ja schon am rumprobieren bist, warum ich kein Ref Bild erstellen kann? -
@coyote Mmhh, bin mir auch nicht wirklich sicher. Aber versuch doch trotzdem mal mit Firefox die Datei reference.jpg im Fileserver zu löschen und dann das Referenz-Bild neu zu generieren. Im Firefox sollte das alles ohne Error-Meldungen funktionieren.
-
@jomjol bin einen kleinen Schritt weiter. Habe jetzt mit Firefox die raw.jpg gelöscht, dass war das Bild, dass immer angezeigt wurde. Wann wird dieses erstellt bzw. kann ich es neu erstellen?
Edit: Ok, jetzt hab ich den kompletten Inhalt von img_tmp gelöscht, dummerweise auch die "leer.txt", nach reboot geht dann nix mehr Ich mach mal die SD Karte neu, dann geht's weiter
-
@jomjol
danke für die Information. Ich habe mich mal dumm gestellt und versucht das Projekt in PlatformIO zu importieren.
Hat gegen alle Erwartungen auf Anhieb geklappt.Kurze Beschreibung:
- Download als zip AI-on-the-edge-device-master
1.1 extrahieren mit 7-zip
1.2 umbenennen AI-on-the-edge-device
1.2 in PlatformIO Projekt öffnen, geht leider nicht, es fehlt platformio.ini
1.2.1 in Code exitiert platformio.ini, man öffnet Code
1.2.2 voila, Projekt ist importiert2.1 Ich hab mich mal dumm gestellt und "build" ausgelöst
2.2 Ein längerer Übersetzungslauf wird ausgeführt
Es gibt ein paar Warnungen
Ergebnis: Archiving .pio\build\esp32cam\lib89c\libjomjol_image_proc.a
Archiving .pio\build\esp32cam\libe37\libjomjol_fileserver_ota.a
Linking .pio\build\esp32cam\firmware.elf
Retrieving maximum program size .pio\build\esp32cam\firmware.elf
Building .pio\build\esp32cam\firmware.bin
Checking size .pio\build\esp32cam\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 22.7% (used 74412 bytes from 327680 bytes)
Flash: [========= ] 85.9% (used 1671313 bytes from 1945600 bytes)
esptool.py v2.6
================================== [SUCCESS] Took 212.56 seconds ==================================
2.3 serial Monitor über Symbol Stecker in Symbolleiste geöffnet
2.3.1 kontrolliere ob 115200 baud : Miniterm on COM6 115200,8,N,1 ---
2.3.2 Alte Software reboots , ok
3.0 upload:
3.1 Verbinde Masse mit GPIO0 (3.Pin von rechts auf 3,3V Seite
3.2 5V anlegen, ..waiting for download
3.3 upload über Symbol ->
3.3.1 erfolgreich geflashed
3.4 SD-Karte mit dem Inhalt aus sd-card gefüllt und
4.0 hurra, es läuft
4.1 IP aus dem Protokoll entnommen
4.2 kann auf die Web-OberFläche zugreifen.Selten so viel Glück gehabt
- Download als zip AI-on-the-edge-device-master
-
@coyote sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol bin einen kleinen Schritt weiter. Habe jetzt mit Firefox die raw.jpg gelöscht, dass war das Bild, dass immer angezeigt wurde. Wann wird dieses erstellt bzw. kann ich es neu erstellen?
Edit: Ok, jetzt hab ich den kompletten Inhalt von img_tmp gelöscht, dummerweise auch die "leer.txt", nach reboot geht dann nix mehr Ich mach mal die SD Karte neu, dann geht's weiter
Das raw.jpg wird gemacht, sobald ein automatischer Durchlauf stattfindet --> Sollte noch einen Button zum manuellen Aufzeichnen von raw.jpg einfügen --> habe einen issue erstellt.
-
@hike Genial --> Kannst du das in eine Doku schreiben (Markup Language), dann werde ich es in das Wiki mit aufnehmen!
Wäre super - danke im Voraus!
-
@coyote, @hike, @michaeljoos, @watcherkb
Es kommt gerade etwas Dynamik in die Entwicklung - gefällt mir! Vielen Dank an euch für das schnelle und ausgiebige Feedback. Damit es im Rollout nicht zuviele neue Versionen hagelt, habe ich soeben einen neuen Channel auf Github erstellt ("Rolling") das ist eine Kopie von v1.1.3 und jetzt mein Arbeitsverzeichnis für neue Versionen. Dort werde ich Korrekturen / Updates und Test erstellen und hochladen.
https://github.com/jomjol/AI-on-the-edge-device/tree/rolling
-
@aandekant sagte in Wasserzähler - Version 2 - all-in-device:
Entschuldigen Sie mein schlechtes Deutsch. Ich komme aus Belgien.
We can discuss in Englisch - no problem
Ich habe einen alten Stromzähler mit einem zusätzlichen Glasfenster davor. (7-8cm vor dem Zähler) Ich habe die Standardmethode versucht, diesen Zähler mit einem optischen Sensor auf der rotierenden Scheibe abzulesen, aber mit der Doppelreflexion ist das sehr schwierig.
Dann habe ich Ihre wunderbare Lösung gefunden. Ich konnte die Software (Docker-Version) vor einigen Wochen ausführen. Aber ich habe abgebrochen, als die Ausgabebilder sehr verzerrt waren. Wahrscheinlich stimmt etwas mit meine Ausrichtungsreferenzen nicht.
(älteres Bild, es funktioniert besser, wenn die Kamera auf das erste Glas aufgesetzt wird)
Bevor ich mehr Zeit darauf verwende: Halten Sie es für möglich, dass Ihre Lösung etwas von diesem Bild lesen könnte? Ein Problem, das ich sehe, ist, dass der Text weiß auf schwarz und nicht schwarz auf weiß ist?
This picture should be totally fine for the image recognition. The newest version of the neural network files have been also trained for white numbers on black background. Even if it does not work perfect on the first test - it is rather uncomplicated to incorporate your digits in the training as well, as soon, as you can send me 2-3 pictures of each digit (0..9)
Wenn ich die Kamera höher stelle, fällt die Reflexion der LED in die Ziffern. Bei dem rgb-Streifen hatte ich das Problem, dass die erste LED grün blieb. ähnlich wie bei https://arduino.stackexchange.com/questions/32017/esp8266-nodemcu-first-ws2812-led-lights-up-green. Das Bild war aber besser.
So I would recommend to go on!
-
@jomjol ich glaube ich habe noch etwas Probleme mit der WLAN Verbindung, dass muss ich noch beheben und genau da sind wir beim Punkt, vllt kannst du mir helfen.
Ich hatte deine "alte" Version auf einem ESP32 mit eingelöteter Brücke um die externe Antenne zu nutzen, genau den wollte ich heute flashen mit der V2, aber da tut sich nix.
Laut flashtool läd er alles hoch (vorher auch schon etliche Male gelöscht), stecke ich dann die SD Karte ein und gebe ihm Spannungsversorgung, tut sich nichts. Kein LED blinken und im WLAN sehe ich ihn auch nicht. Auf dem zweiten ESP32 keine Probleme, aber der nutzt nur die interne Antenne.
Hast du vllt ne Idee?EDIT: Habe jetzt auch die SD Karte neu beschrieben auf dem zweiten ESP32, jetzt sehe ich wieder dein default RAW Bild, aber ich bekomme mein Wasserzähler Bild nicht hin
-
Hi @coyote,
ich habe gerade eine neue Version in den Rolling Branch hochgeladen (/html updaten!). Dort hast du jetzt einen Button, mit dem das "raw.jpg" neu aufgenommen wird:Gruß,
jomjol -
@coyote sagte in Wasserzähler - Version 2 - all-in-device:
@michaeljoos sieht schick aus die Oberfläche
Hast du gerade ne Idee, da du ja schon am rumprobieren bist, warum ich kein Ref Bild erstellen kann?Finde das Layout auch richtig schick und mit den ausklappenden Menues auch platzsparender. Habe es gleich in die neue Rolling übernommen.
@michaeljoos: vielen Dank!
-
@jomjol Your reply gave me courage to try it again. More succes this time with your new tool:
I did it quick and dirty, I will tweak the digits some more tomorrow. If needed I will provide you additional pictures for the digits.
Thank you very much, this new "all in device" is really great!
-
Hi @aandekant,
great result - two hints:- You can remove the section [Analog] in the config, then you will not have fake values like this two in your image above - just be carefull, not to try to configue the analog ROIs in the web page
- I assume, that a dedicated training will help, the "8" with the notch on the upper left is not directly trained and obviously there is a problem with the "7".
Once you have your system running, collect the images in the log file and send them to me.
Best regards,
jomjol -
@jomjol Hi jomjol, ich möchte nun auch "umsteigen" und die neue Entwicklung von Dir installieren. Dazu habe ich eine Frage: Ich möchte "nahtlos" vom alten System in das Neue umsteigen, also die config.ini gleich lassen und damit auch die Referenzbilder beibehalten, da es derzeit absolut stabil läuft...... Kann man das einfach bewerkstelligen und die Config.ini mit den Referenzbildern auf die SD-Card übertragen, Ausnahme ist das WiFi Setup, das ist ja jetzt ein extra ini File. Kann man mittels OTA die neue SW auf den ESP32 übertragen? Wenn ja. wie?
Vielen Dank für all Deine Mühe und das Du uns "mitnimmst". Ich habe schon extrem viel dazu gelernt.....
Liebe Grüße Paul -
@pfried Hallo Paul,
ein Copy-and-Paste funktioniert nicht, da die Config.ini einen leicht anderen Syntax hat (musste den Parser aus Speicherplatzgründen selbst schreiben). Aber du kannst die Referenzbilder und ROIs 1:1 übernehmen. Du musst nur die Koordinaten in das neue Format einfügen.
Am besten vergleichst du mal die beiden Config.ini, dann sieht du gleich, was du machen musst. Beim ersten Flashen funktioniert die OTA nicht, da ich hier eine andere Partitionierung benötige. Dazu musst du einmalig den Speicher löschen und dann mit folgender Anleitung flashen: https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation
Danach geht dann aber OTA auch für die Firmware und die html-Seiten.Du kannst dich gerne melden, wenn du noch fragen hast oder wir können auch mal wieder eine Skype Session machen.
Gruß,
jomjol -
@jomjol Na dann werde ich es angehen.... Ich werde jeden Schritt dokumentieren, sodass Du dann eine Umstiegsanleitung für das Wiki hast. In welchem Format möchtest Du das haben? MS Word?