ESP32 Cam Gesichtserkennung mit MQTT für IoBroker

  • ESP32 Cam mit Gesichtserkennung und MQTT Anbindung für iOBroker MQTT Adapter





    Klick mich-->Arduino Portable Download<--Klick mich

    Klick mich-->Arduino Portable direkt Download<--Klick mich



    Anschluss von Cam u. TTL Adapter



    Auch Möglich ein Relay bei Gesichtserkennung öffnen zu lassen.

    Man muss nichts im Script ändern.

    Anschluss:



    Arduino Voreinstellung Link =

    Code
    1. https://www.elzershark.com/iobroker/package_esp32_index.json


    TTL Adapter + USB- Kabel = https://amzn.to/2ZZAzow

    Treiber = https://www.ftdichip.com/Drivers/VCP.htm

    2x Kameras https://amzn.to/39sTxXA


    2 Kameras kosten dann ca. = 30 Euro (ca. 15Euro pro Cam)


    ------------------------------------------


    Mini USB-Kabel = https://amzn.to/3f24e4A

    1x esp32 Cam + TTL Adapter https://amzn.to/3eV8naA

    2x cam https://amzn.to/39sTxXA


    3 Kameras kosten dann ca. = 42 Euro (ca. 14 Euro pro Cam)


    5V Stromversorgung = https://www.pollin.de/p/stecke…050chw2-5-v-0-75-a-352643 (1Euro)


    Gesammt ESP32 Cam Material = https://amzn.to/3f0UrMr


    3D Druck Gehäuse = https://www.thingiverse.com/thing:4555119


    -------------------------------------------


    Bevorzugt von mir=


    TTL Adapter = https://amzn.to/2ZXg9wu

    Treiber = https://www.silabs.com/product…o-uart-bridge-vcp-drivers



    Zugriff auf die Kamera:


    Die Seite der Kamera öffnen. Im MQTT Datenpunkt "xxx.xxx.Browser die 1 eintippen und warten das "zugriff" drin steht. Dann die Seite der Cam aktualisieren.


    ------------------------------------------


    Es folgen noch Blockly Codes, damit sich die Kamera automatisch wieder mit MQTT verbinden, falls getrennt wird und vieles mehr.

  • MQTT Reconnect


    Falls die Cam die MQTT Verbindung verliert b.z.w. aus dem Modus geht für Gesichtserkennung.


    Unter Instanzen auf javascript klicken. Bei "Haupteinstellung" Häkchen rein bei "Erlaube das Kommando "exec""


    "ESP32Cam" umbenennen in den Namen vom ESP32

    const char* espName = "ESP32Cam"; // your espCam Name


    Rest Verknüpfen mit mqtt.0.info.connection


    bei curl die ip eingeben der Cam mit Port:82


    Mehrere Cams sollte nicht so anfangen.. ESPCam, ESPCam1, ESPCam2.. u.s.w... sondern der Anfang sollte anders sein.. 1ESPCam, 2ESPCam, u.s.w.

    Sonst wird immer was gefunden.. ("Auftreten des Begriffs")



  • 1x am Tag Begrüßung von Alexa bei Gesichtserkennung der Cam


    Begrüßung = ZUFALL Hallo, Hi, Na, u.s.w. + "NAME" + ZUFALL Wie geht es dir?, Was geht ab? Alles klar? u.s.w.

    04:00Uhr Morgens werden die Namen gelöscht und fängt von vorne an.



  • Hallo,

    ich habe das Problem, dass die Cam im Webinterface kein Bild zeigt:



    Auch, wie beschrieben, auf "Disconnect" klicken bringt nichts.

    Die Cam ist in MQTT eingebunden und unter Objekte verfügbar.

    Mit der Eingabe von "1" wird "zugriff" zwar angezeigt, aber leider kein Bild. "Camera Stream" geht auch nicht.


    Die Cam selber funktioniert allerdings. Zum Testen, habe ich mit Arduino als Beispiel den CameraWebServer geflasht, der geht einwandfrei.


    Jetzt kommt's:

    Wenn ich allerdings die Cam mit "Partition Scheme: Huge APP (3MB No OTA / 1MB SPIFFS)" flashe, geht alles wie es soll, bis auf die Gesichtserkennung, die funktioniert dann nicht - grmph
    "Disconnect" und Zugriff mit "1" geht so auch einwandfrei.


    Partitions-Problem?


    Jemand ne Idee was ich hier machen kann?



    Gruß, Dr. Bakterius

  • Hallo Elzershark

    So, extra mal Chrome installiert, leider immer noch kein Bild. Allerdings funktioniert jetzt das Eintragen der 1 für den Zugriff.

    Aber ich glaube, das Cam-Problem liegt nicht am Browser. Denn wenn ich das Ganze mit einer anderen Partition Scheme bzw. anderem Webserver flashe funktioniert die Cam?!?

    Der zweite ESP32 (ist das Set von Amazon) verhält sich leider genauso.

  • Ich hab das gleiche auch gehabt gestern. Weiß aber nicht woran das lag. Ich habe die Cam komplett gelöscht .

    esptool.py erase_flash

    Dafür muss man Python und esptool installiert haben...

    Und danach wieder ganz normal geflasht...

    Was ich vorher gemacht hatte mit der Cam, viel getestet.. Etliche mal Gesichter gescannt, immer wieder gelöscht u.s.w.

    Im serial Monitor wurde was angezeigt mit ..mist.. vergessen.. fo 64 oder sowas? Also irgend was ganz kurzes.


    Seit dem ich aber komplett gelöscht habe und wieder normal geflasht, geht alles wieder. Und bekomme diesen "Fehler" auch nicht wieder hin.

    Das komische bei dir ist aber, das selbst bei neuen Cams das passiert. Das hatte ich nicht einmal...

    hm...

  • Super, dass du es durch Zufall reproduzieren konntest, ich habe schon an mir selbst gezweifelt. Ich bin kein Experte, denke aber, dass das evtl. an defekten Speicherblöcken liegen kann. Super Tipp von dir mit dem flash erase, habe ich zwar noch nie gemacht, werde ich gleich mal testen...

  • Falls immer noch nicht geht.. teste mal.. im Script steht


    Code
    1. while (WiFi.status() != WL_CONNECTED) {
    2. WiFi.begin(ssid, password);
    3. delay(2000);
    4. websockets_active = false;
    5. }

    bei

    void interface_active(WebsocketsClient &client) {

    und bei

    void interface_inactive(WebsocketsClient &client) {


    lösch mal das


    Code
    1. while (WiFi.status() != WL_CONNECTED) {
    2. WiFi.begin(ssid, password);
    3. delay(2000);
    4. websockets_active = false;
    5. }

    raus

  • Hab das eingefügt vor ner Zeit.

    Aber bin kein Scripter.. Nur nach meiner Logik guckt er nach ob er mit dem Wlan verbunden ist.. Falls nicht, verbindet er sich...

    Ich hab das Gefühl, bei diesem Fehler, das, nachdem man die 1 eingegeben hat, er sich trennt vom Wlan und neu anmeldet.. Dadurch wird

    websockets_active = false;

    aktiviert. Das heisst, das er in den offline Modus gehen soll... Dadurch wird dann kein Bild angezeigt...


    Aber wie gesagt, ich krieg den Fehler nicht mehr hin. Bei mir funzt alles normal mit diesem Code

  • Elzershark

    ...musste erstmal Python und esptool auf dem Mac instalieren, aber "erase_flash" hat bei beiden Modulen nichts gebracht.
    Aber dein 2. Tipp war Gold wert, damit laufen beide ESP's einwandfrei!

    K. A. warum das so ist, aber Hauptsache es läuft.


    Besten Dank für deine Unterstützung, deinen Einsatz und die tollen Ideen!


    Gruß, Dr. Bakterius