NEWS
Wasserzähler - Version 2 - all-in-device
-
@jomjol
I2C Problem: Ich brauche einen zweiten I2C PortDie Kamera scheint über Software I2C angesteuert zu werden da die Parameter für HardwareI2C in der sdkconfig (CONFIG_SCCB_HARDWARE_I2C , CONFIG_SCCB_HARDWARE_I2C_PORT) nicht gesetzt sind.
Siehe dazu auch https://github.com/espressif/esp32-camera/blob/master/KconfigDas Problem tritt auf, wenn man den zweiten I2C Port benutzen will.
Ein direktes Eintragen in die sdkconfig funktioniert nicht, da diese bei jedem build neu geschrieben wird.Ich habe länger rumgesucht und keine Lösung zur Veränderung der sdkconfig gefunden. run -t menuconfig funktioniert bei mir nicht.
Wie hast Du die sdkconfig aus der sdkconfig.old erzeugt?
Beste Grüße
Hike -
@hike Ich verwende VSCode mit der Platformio Extension. Dort kannst du einen Terminal starten und dann dort über
platformio run -t menuconfig
den Editor starten.
Achtung: vorher das Terminalfenster groß ziehen, sonst kommt eine Fehlermeldung. -
@jomjol
Deine Achtung-Anmerkung ist die Lösung. Diesen Hinweis habe ich noch nirgendwo gesehen. Da muß man erst mal drauf kommen. Ich bin dutzendmale vorher in die Fehlermeldung gerauscht.Das Tool ist etwas gewöhnungsbedüftig, seltsamerweise reagiert Arrow up and down nicht, dafür aber + (down) und - (up).
Ich finde aber keinen Eintrag für sccb.
In der camera lib gibt es einen Hinweis auf kconfig, das scheint das definierende File für menuconfig zu sein.
https://github.com/espressif/esp32-camera
Make sure to append this Kconfig content into the Kconfig of your project. Then, choose the configurations according to your setup.Irgendeine Idee wo ich das finde?
Danke
Hike -
@hike Ich habe das für diese Zwecke bisher nicht verwendet. Wenn du dir die Konfiguration der Kameraanbindung (GPIOs) anschauen willst, prüfe mal die Datei
code/jomjol_controllcamera/camera_define.h
Dort sind die GPIOs definiert. -
Die GPIOs sind mir klar(26,27). Neben dem Freischalten (1Bit-Mode) des Kartenlesers den Du ja auch verwendest könnte man auch GPIO13 und GPIO2 für den zweiten I2C-Bus verwenden. Einige der anderen Pin erzeugen Bootprobleme, da sie durch die pullups auf high liegen.
Ich bin überhaupt erst auf die Idee gekommen, weil in Deinen Projekt unter lib/driver die tatsächlich verwendeten .h und .c aufgeführt sind. So konnte ich im Log sehen, das der Kameratreiber in sccb.c twi verwendet.
Damit komme ich an den zweiten I2C Bus nicht ran, den ich aber gerne für die Ansteuerung von einem Oled-Display nutzen würde.Bei anderer Vorgehenweise z.B als Arduino-Projekt und der Verwendung von Wire0 und Wire1 (I2C-Scanner) bekomme ich zwar die I2C-Adresse de Kamera zu sehen, jedoch fällt der Prozessor mit einer Guru-Meditation beim ersten Zugriff auf das zweite Interface auf die Nase.
An diesem Problem scheint sich schon der eine oder andere die Zähne ausgebissen zu haben.
Beste Grüße
Hike -
I have downloaded digits from the device, probably too much. I already sorted them more or less. Mostly there were problems with the number 7 and number 1. Number 8 was detected quite nicely.
wetransfer: https://we.tl/t-jQ56n1n4pr
Kind regards,
Koen -
@aandekant Hi Koen,
I got the images, thanks. This are more than 23k pictures, where 18k in directory 10 do not show any digit. Only 2-3 typical images per digit and a collection of NaN (10) is totally sufficient. I will take some of them, but if you like to sort by yourself, you are welcome.
Best regards,
jomjol -
@aandekant I have created a new version including parts of your digits:
https://github.com/jomjol/neural-network-digital-counter-readout
Please test it. -
Also bei mir scheint alles zu funktionieren. Danke nochmal jomol
Für den parser in iobroker habe ich noch einen Tip. Mein Wasserzähler hat folgendes Format 12345.1234
Mein Zähler hat momentan den Stand 123.1234. Die führenden Nullen werden ja nicht mit übertrgaen. Mit [N|0-9][N|0-9][N|0-9][N|0-9][N|0-9]\D\d\d\d\d geht das, aber was ist wenn der Stand von 999 auf 1000 geht? Dann tuts nicht mehr, oder man muss es umschreiben. Mit \d{1,5}.\d{4} müsste es immer gehen. Vielleicht ist hier ein regex Spezialist der das bestätigen kannGruß
Werner -
@WernerS Hallo Werner, ich habe dauernd das Problem, dass der Parser irgendwann "hängenbleibt" Dann muss ich manuell den Parser stoppen und wieder starten, hast Du das Problem auch?
Meine Parsereinstellungen:
-
@jomjol Hast du dich schon mal mit "Core Dump" befasst um den spontanen Restarts auf die Spur zu kommen?
-
@michaeljoos Nein - kenne ich nicht. Ich weiss aber, dass bei den Restarts etwas mit der JPEG-Bibliothek schief geht. Den ersten Fehler konnte ich abfangen und dann die Bilderverabeitung einfach neu starten. Genau letzteres müsste ich bei späteren Bildbearbeitungen auch integrieren.
Kennst du dich mit Core-Dumps aus und könntest einen Blick rein werfen?
-
@jomjol said in Wasserzähler - Version 2 - all-in-device:
@michaeljoos Nein - kenne ich nicht. Ich weiss aber, dass bei den Restarts etwas mit der JPEG-Bibliothek schief geht. Den ersten Fehler konnte ich abfangen und dann die Bilderverabeitung einfach neu starten. Genau letzteres müsste ich bei späteren Bildbearbeitungen auch integrieren.
Kennst du dich mit Core-Dumps aus und könntest einen Blick rein werfen?
Kenne das eben auch noch nicht, bin einfach gestern beim "googeln" darauf aufmerksam geworden. Ich versuche mich in den nächsten Tagen mal einzulesen.
-
@pfried sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol ESP Water-meter migration.docx
Mache sowas das erste Mal, kannst mir gerne ein E-Mail mit Änderungswünschen schreiben....
Liebe Grüße
PaulHallo Paul,
ich habe eine erste Version deiner Migrationsbeschreibung hoch geladen und verlinkt:
https://github.com/jomjol/AI-on-the-edge-device/wiki/MigrateOldConfigToNewDanke nochmal, damit konnte ich es echt schnell erstellen.
Beste Grüße,
jomjol -
-
mir ist da noch was eingefallen. Der Standardintervall liegt bei 5 sec das ist übertrieben für den Wasserzähler. Ich habe den Intervall vom Wasserzähler auf 2 Minuten gestellt, der liefert eh nur alle 5 Minuten einen Wert. probier das mal.
Gruß
Werner -
@WernerS
Hi Werner, mein Parser steht auf 120 000ms, also eh 2 Minuten, darin liegt es wohl dann nicht. Übrigens ist der ESP viel schneller als 5 Minuten, bei mir liefert er (neue) Werte konstant unter zwei Minuten.
Kannst Du mir mal einen Screenshot schicken was du eingestellt hast... -
@jomjol
Hi jomjol, vielleicht sollte man in dem Text noch meine IP Adresse vom ESP rausnehmen und stattdessen den Text "Your_ESP_IP_Address" einfügen... man weis ja nie, ob es nicht dann jemand mit meiner ESP Adresse probiert... -
@pfried Schon erledigt - danke für den Hinweis.
-
Ich habe eine neue Rolling hochgeladen. Dort ist jetzt endlich auch eine automatisch bei jedem Build upgedatete Version Info drin, d.h. jetzt kann man nachschauen, welche Firmware gerade läuft: