NEWS
Wasserzähler - Version 2 - all-in-device
-
@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:
-
@jomjol said in Wasserzähler - Version 2 - all-in-device:
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:
Cool, vielen Dank!
Schlage mich immer noch mit "Core Dumps" rum wegen den Restarts. Hab zwar schon Daten rausbekommen, aber die "Decodierung" mit den Python-Script "espcoredump.py" hab ich noch nicht hingekriegt in meiner Umgebung. Die Dumps bei 2 Restarts sahen so aus:
Ich versuchs weiter...
-
ich habe jetzt auch durchgehen reboots .. auch nach dem update auf das letzte rolling noch ..
wird durch das OTA wirklich alles geupdatet? oder macht ein neu flaschen durchaus auch sinn?lg dominique
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:7028 load:0x40078000,len:14872 load:0x40080400,len:4452 entry 0x400806e8 ␛[0;32mI (73) boot: Chip Revision: 1␛[0m ␛[0;32mI (73) boot_comm: chip revision: 1, min. bootloader chip revision: 0␛[0m ␛[0;32mI (39) boot: ESP-IDF HEAD-HASH-NOTFOUND 2nd stage bootloader␛[0m ␛[0;32mI (39) boot: compile time 18:57:33␛[0m ␛[0;32mI (40) boot: Enabling RNG early entropy source...␛[0m ␛[0;32mI (45) boot: SPI Speed : 40MHz␛[0m ␛[0;32mI (49) boot: SPI Mode : DIO␛[0m ␛[0;32mI (53) boot: SPI Flash Size : 4MB␛[0m ␛[0;32mI (58) boot: Partition Table:␛[0m ␛[0;32mI (61) boot: ## Label Usage Type ST Offset Length␛[0m ␛[0;32mI (68) boot: 0 nvs WiFi data 01 02 00009000 00004000␛[0m ␛[0;32mI (76) boot: 1 otadata OTA data 01 00 0000d000 00002000␛[0m ␛[0;32mI (83) boot: 2 phy_init RF data 01 01 0000f000 00001000␛[0m ␛[0;32mI (91) boot: 3 ota_0 OTA app 00 10 00010000 001db000␛[0m ␛[0;32mI (98) boot: 4 ota_1 OTA app 00 11 001f0000 001db000␛[0m ␛[0;32mI (106) boot: End of partition table␛[0m ␛[0;32mI (110) boot_comm: chip revision: 1, min. application chip revision: 0␛[0m ␛[0;32mI (117) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x43418 (275480) map␛[0m ␛[0;32mI (225) esp_image: segment 1: paddr=0x00053440 vaddr=0x3ffb0000 size=0x047dc ( 18396) load␛[0m ␛[0;32mI (232) esp_image: segment 2: paddr=0x00057c24 vaddr=0x40080000 size=0x00400 ( 1024) load␛[0m ␛[0;32mI (233) esp_image: segment 3: paddr=0x0005802c vaddr=0x40080400 size=0x07fe4 ( 32740) load␛[0m ␛[0;32mI (254) esp_image: segment 4: paddr=0x00060018 vaddr=0x400d0018 size=0x12b064 (1224804) map␛[0m ␛[0;32mI (693) esp_image: segment 5: paddr=0x0018b084 vaddr=0x400883e4 size=0x15460 ( 87136) load␛[0m ␛[0;32mI (730) esp_image: segment 6: paddr=0x001a04ec vaddr=0x50000000 size=0x00004 ( 4) load␛[0m ␛[0;32mI (748) boot: Loaded app from partition at offset 0x10000␛[0m ␛[0;32mI (748) boot: Disabling RNG early entropy source...␛[0m ␛[0;32mI (749) psram: This chip is ESP32-D0WD␛[0m ␛[0;32mI (755) spiram: Found 64MBit SPI RAM device␛[0m ␛[0;32mI (758) spiram: SPI RAM mode: flash 40m sram 40m␛[0m ␛[0;32mI (763) spiram: PSRAM initialized, cache is in low/high (2-core) mode.␛[0m ␛[0;32mI (770) cpu_start: Pro cpu up.␛[0m ␛[0;32mI (774) cpu_start: Application information:␛[0m ␛[0;32mI (779) cpu_start: Project name: esp32cam-server-only␛[0m ␛[0;32mI (785) cpu_start: App version: 0.0.9.3␛[0m ␛[0;32mI (790) cpu_start: Compile time: Sep 26 2020 18:56:46␛[0m ␛[0;32mI (796) cpu_start: ELF file SHA256: 6063efc81e4db23d...␛[0m ␛[0;32mI (802) cpu_start: ESP-IDF: HEAD-HASH-NOTFOUND␛[0m ␛[0;32mI (808) cpu_start: Starting app cpu, entry point is 0x40081a94␛[0m ␛[0;32mI (795) cpu_start: App cpu up.␛[0m ␛[0;32mI (1701) spiram: SPI SRAM memory test OK␛[0m ␛[0;32mI (1701) heap_init: Initializing. RAM available for dynamic allocation:␛[0m ␛[0;32mI (1701) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM␛[0m ␛[0;32mI (1707) heap_init: At 3FFC2300 len 0001DD00 (119 KiB): DRAM␛[0m ␛[0;32mI (1714) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM␛[0m ␛[0;32mI (1720) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM␛[0m ␛[0;32mI (1727) heap_init: At 4009D844 len 000027BC (9 KiB): IRAM␛[0m ␛[0;32mI (1733) cpu_start: Pro cpu start user code␛[0m ␛[0;32mI (1738) spiram: Adding pool of 4096K of external SPI memory to heap allocator␛[0m CreateClassCamera ␛[0;32mI (1763) spi_flash: detected chip: generic␛[0m ␛[0;32mI (1764) spi_flash: flash io: dio␛[0m ␛[0;32mI (1764) cpu_start: Starting scheduler on PRO CPU.␛[0m ␛[0;32mI (0) cpu_start: Starting scheduler on APP CPU.␛[0m ␛[0;32mI (1772) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations␛[0m Do Reset Camera ␛[0;32mI (1782) gpio: GPIO[32]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 ␛[0m ␛[0;32mI (3832) connect_wlan_main: Initializing SD card␛[0m ␛[0;32mI (3832) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 ␛[0m Name: SD16G Type: SDHC/SDXC Speed: 20 MHz Size: 14772MB ␛[0;32mI (3872) server_ota: Start CheckOTAUpdateCheck ...␛[0m Start CheckOTAUpdateCheck ... ␛[0;32mI (3882) server_ota: SHA-256 for the partition table: : 9d4a2809ae90fb20709a8ca3dd3ac3462e1e73286bcd31b689060c91de06fa3a␛[0m ␛[0;32mI (3882) boot_comm: chip revision: 1, min. application chip revision: 0␛[0m ␛[0;32mI (3952) server_ota: SHA-256 for bootloader: : 61c72ac745e6bb180898cb8cfdea6729171bc6bc2e9bd58fa28946f2c4250ed6␛[0m ␛[0;32mI (3952) boot_comm: chip revision: 1, min. application chip revision: 0␛[0m ␛[0;32mI (4582) server_ota: SHA-256 for current firmware: : b6bc748b289414fd2cc4f3fd1ffc75e902cc1cc48a1a06c04c6dd7400c2ae85d␛[0m CheckOTAUpdate Partition: ESP_OK abort() was called at PC 0x40105052 on core 0 ELF file SHA256: 6063efc81e4db23d Backtrace: 0x4008a115:0x3ffc3920 0x4008a4a1:0x3ffc3940 0x40105052:0x3ffc3960 0x40170385:0x3ffc3980 0x40171413:0x3ffc39a0 0x400d2dfb:0x3ffc39c0 0x400d842f:0x3ffc39f0 0x400d2ec5:0x3ffc4070 0x40109779:0x3ffc4170 0x400936ad:0x3ffc4190 Rebooting... ets Jun 8 2016 00:22:57
EDIT .. der fehler is nur auf rolling .. ich habe jetzt master geflasht und sd auch nochmal neu gemacht .. jetzt booted er wieder