Ei dann halt oben in main.cpp noch hinzunehmen
#include <WiFi.h>
Jetzt klappt leider der Start aus dem Deepsleep nicht mehr…
I [7966] info : BitsPerSample: 16
I [7977] info : BitRate: 128000
I [10036] Aktuelle Batteriespannung: 4.08 V
I [10048] Aktuelle Batterieladung: 89.63 %
N [16208] Gehe jetzt in Deep Sleep!
N [16208] shutdown audioplayer..
N [16212] shutdown amplifier..
N [16212] Lautsprecher ausgeschaltet
N [16213] shutdown MQTT..
N [16213] shutdown LED..
N [16231] shutdown SD card (SD_MMC)..
N [16442] deep-sleep, good night.......
E (40) esp_core_dump_flash: No core dump partition found!
E (40) esp_core_dump_flash: No core dump partition found!
I [106] Maximale Inaktivitätszeit wurde aus NVS geladen: 10 Minuten1
Oder das:
[19912] SD-Karte konnte nicht gemountet werden.
E [20412] Bootgang wegen SD fehlgeschlagen. Gehe in Deepsleep...
E (40) esp_core_dump_flash: No core dump partition found!
E (40) esp_core_dump_flash: No core dump partition found!
I [106] Maximale Inaktivitätszeit wurde aus NVS geladen: 10 Minuten
D [156] RFID-Tags koennen jetzt gescannt werden...
N [157] Port-expander gefunden
N [159] Interrupt für Port-Expander aktiviert
I [160] Zyklus für Batteriemessung fuer Neopixel-Anzeige aus NVS geladen: 8 Minuten
I [172] Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00V
I [173] Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20V
I [185] Spannungslevel (Batterie) fuer Niedrig-Warnung via Neopixel aus NVS geladen: 3.40V
I [197] Spannungslevel (Batterie) fuer Kritisch-Warnung via Neopixel aus NVS geladen: 2.00V
I [198] Initiale Lautstärke wurde aus NVS geladen: 8
I [208] Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 21
I [209] Maximale Lautstärke für Kopfhörer wurde aus NVS geladen: 13
N [219] Lautsprecher ausgeschaltet
I [220] Maximale Lautstärke wurde gesetzt auf: 13
I [273] Initiale LED-Helligkeit wurde aus NVS geladen: 16
I [273] LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2
E (1295) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
E (1296) vfs_fat_sdmmc: sdmmc_card_init failed (0x107).
[ 1300][E][SD_MMC.cpp:148] begin(): Failed to initialize the card (0x107). Make sure SD card lines have pull-up resistors in place.
E [1323] SD-Karte konnte nicht gemountet werden.
E (2844) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
E (2845) vfs_fat_sdmmc: sdmmc_card_init failed (0x107).
[ 2849][E][SD_MMC.cpp:148] begin(): Failed to initialize the card (0x107). Make sure SD card lines have pull-up resistors in place.
E [2872] SD-Karte konnte nicht gemountet werden.
E (4393) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
E (4394) vfs_fat_sdmmc: sdmmc_card_init failed (0x107).
[ 4398][E][SD_MMC.cpp:148] begin(): Failed to initialize the card (0x107). Make sure SD card lines have pull-up resistors in place.
E [4421] SD-Karte konnte nicht gemountet werden.
E (5941) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
E (5942) vfs_fat_sdmmc: sdmmc_card_init failed (0x107).
[ 5946][E][SD_MMC.cpp:148] begin(): Failed to initialize the card (0x107). Make sure SD card lines have pull-up resistors in place.
E [5969] SD-Karte konnte nicht gemountet werden.
E (7491) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
E (7492) vfs_fat_sdmmc: sdmmc_card_init failed (0x107).
[ 7496][E][SD_MMC.cpp:148] begin(): Failed to initialize the card (0x107). Make sure SD card lines have pull-up resistors in place.
E [7519] SD-Karte konnte nicht gemountet werden.
Wenn ich die Spannung ausstecke und dann wieder einstecke, dann klappt wieder alles.
Habs jetzt nochmals probiert.
Irgendwie ist es jetzt anders, obwohl ich nix geändert hab. Nur noch mal n upload…
hatte die Zeilen so geändert:
Ergebnis:
N [1001] Lautsprecher eingeschaltet
I [1002] Maximale Lautstärke wurde gesetzt auf: 21
I [1486] Letzte RFID wurde aus NVS geladen: 229118016079
I [1490] RFID-Karte empfangen: 229118016079
N [1495] Modus: Webstream
E [1495] Aktuell kein Webstream möglich, da keine WLAN-Verbindung vorhanden!
N [1498] Verbunden mit WLAN 'TMHEINE' (Signalstärke: -80 dBm, Kanal: 11, MAC-Adresse: 2C:91:AB:8E:DB:E2)
N [1508] Aktuelle IP: 192.168.178.121
N [1509] Synchronisiere Uhrzeit via NTP...
N [1522] mDNS gestartet: http://ESPuino.local
N [1528] HTTP-Server gestartet.
N [1529] Versuche Verbindung zu MQTT-Broker aufzubauen: 192.168.178.46
N [1530] Verbinde zu MQTT-Server mit User und Passwort
E [4543] Verbindung fehlgeschlagen, versuche in Kürze erneut: rc=-2 (1 / 1)
N [6445] Datum/Uhrzeit empfangen von NTP-Server: 11.09.2024, 18:13:10
I [10006] Aktuelle Batteriespannung: 4.72 V
I [10008] Aktuelle Batterieladung: 100.00 %
I [30005] Keine Bootschleife erkannt. Wunderbar :-)
Hat aber irgendwie trotzdem seine Wirkung verfehlt…
Hab grad gesehen, dass es dafür bereits eine Lösung gab. Ist die Frage, warum die gerade nicht mehr funktioniert
Dann mach ich die Änderungen mal wieder rückgängig, oder?
Kann ich sonst was dazu testen?
Ja scheinbar funktioniert es ja, warum auch immer, nicht.
Könntest testen/debuggen, warum der alte Fix nicht mehr funktioniert .
Wenn man unterwegs ist und sich gerne auf die Web-Oberfläche verbinden möchte, geht das zwar mit dem Handy indem man ein Hotspot aufbaut. Ist dieser aber noch nicht eingelernt usw. wird es wieder etwas schwerer…
Daher wollte ich gerne probieren, ob man auf den Kioskmodus verzichten kann?
Könnt ihr mir einen Tipp geben, wo man die WLan einstellung vornimmt?
Ich habe einfach mal probiert, dass man die Haupt .html Seite verlinkt, aber im Kioskmodus sieht das nicht gut aus.
Grüße
Felix
Was ist denn der Kioskmodus?
Nennt man das nicht so. Bin da nicht so drin in den Begrifflichkeiten…
Ich meine das Fenster das sich öffnet, wenn man sich mit dem ESP Wlan verbindet.
Das ist nicht im echten Browser sonder öffnet sich automatisch.
Grüße
Capture Portal nennt man das.
Muss man auch nicht nutzen: Man kann sich, wenn man im Netz des ESPuino ist, auch per Webbrowser mit der IP 192.168.4.1 verbinden. Das läuft auf’s Gleiche raus. Weiß nicht, ob das jetzt schon die Antwort auf deine Frage ist!?
Ansonsten:
Die Trennung zwischen Access- und Mgmt-Oberfläche haben wir deswegen, weil in der Mgmt-Oberfläche aus dem Netz Sachen nachgeladen werden. Ohne diese ist die Seite nicht funktional. Darauf hast du jedoch keinen Zugriff, wenn du dich im Netz des ESPuino befindest (was du bei Erstkonfiguration tust).
Es gab schon Gedanken, das Ganze (mit externen Libraries) mit Webpack oder was Ähnlichem in eine Firmware zu packen, so dass man von extern gar nix mehr nachladen muss. Aber bisher hat das niemand final umgesetzt.
Liegt vll. auch an meine IPhone. Wenn ich mich mit dem Wlan vom ESP verbinde und dann die Capture Porta Seite verlasse, trennt sich auch gleich die Wlan verbindung.
Daher kann ich den Browser garnicht erst öffnen…
Hier Debug eingefügt in Main.ccp:
N [332] Software-revision: 20240609-1-DEV
N [332] Git-revision: unknown
N [332] Arduino version: 2.0.17
N [342] ESP-IDF version: 4.4.7
N [343] Wakeup was not caused by deepsleep: 0
N [343] Versuche SD-Karte im SD_MMC-Modus (1 Bit) zu mounten...
D [353] SD card type: SDHC
N [353] SD-Kartengröße / freier Speicherplatz: 29818 MB / 10813 MB
I [364] FTP-User wurde aus NVS geladen: TMHEINE
I [365] FTP-Passwort wurde aus NVS geladen: trueno78
I [366] MQTT-Flag (aktiviert) wurde aus NVS geladen: 1
I [377] MQTT-ClientId wurde aus NVS geladen: ESPuinoRes
I [378] MQTT-Server wurde aus NVS geladen: 192.168.178.46
I [378] MQTT-User wurde aus NVS geladen: DVES_USER
I [389] MQTT-Passwort wurde aus NVS geladen: trueno78
I [390] MQTT-Port wurde aus NVS geladen: 1883
D [460] RC522 firmware version=0x92
D [510] RFID-Tags koennen jetzt gescannt werden...
I [512] Hostname aus NVS geladen: ESPuino
D [523] SSID: TMHEINE, Password: yes, dynamic IP
N [751] Versuche mit WLAN 'TMHEINE' zu verbinden...
D [800] Freier Heap-Speicher nach Setup-Routine: 160920
D [800] PSRAM: 4191659 bytes
D [800] Flash-size: 16777216 bytes
Main.cpp Zeile 116
Main.cpp Zeile 122
I [980] Letzte RFID wurde aus NVS geladen: 229118016079
I [985] RFID-Karte empfangen: 229118016079
N [990] Modus: Webstream
E [990] Aktuell kein Webstream möglich, da keine WLAN-Verbindung vorhanden!
N [1003] Lautsprecher eingeschaltet
I [1004] Maximale Lautstärke wurde gesetzt auf: 21
N [3605] Verbunden mit WLAN 'TMHEINE' (Signalstärke: -81 dBm, Kanal: 11, MAC-Adresse: 2C:91:AB:8E:DB:E2)
N [3605] Aktuelle IP: 192.168.178.121
Also Zeile 116 und 122 werden aufgerufen
Zeile 90 und 111 nicht
Wird hochgeladen: image.png …
In der Audioplayer.cpp werden keine der 3 Zeilen aufgerufen:
In der WLan.cpp wird diese Zeile auch nicht aufgerufen:
Ich weiß nur nicht ganz, was ich daraus schließen soll…
Ich schau mal, ob ich heute Abend Motivation finde, mir das mal anzuschauen .
Also es ist ja so, dass ESPuino einen AccessPoint öffnet, wenn es sich mit keinem WLAN verbinden kann oder wenn noch kein WLAN konfiguriert wurde. Wenn du dich mit dem Handy mit ESPuino verbindest, dann hast du in diesem Moment kein eigenes WLAN aufgespannt (würde mich zumindest wundern, wenn das anders wäre). Wenn du die WLAN-Zugangsdaten eingegeben hast und ESPuino neu startet, wirst du aus dessen WLAN rausgeworfen. Ergo muss dein Handy ja erst selbst wieder ein WLAN aufspannen, mit dem sich ESPuino dann wieder verbinden kann. Ich habe das aber ehrlich gesagt noch nie getestet, mit dem Handy ein WLAN aufzuspannen, zu dem sich ESPuino dann verbindet, so dass ich per WLAN vom Handy auf den ESPuino komme. Ich meine es hatten Leute schon berichtet hier, dass das ginge.
Glaube wir reden bisschen aneinander vorbei;-)
Wenn ich ein Hotspot mit dem Handy aufbaue und der ESP sich damit verbindet ist alles gut.
Aber ich würde mich gerne mit dem Accesspoint vom ESP verbinden und so die Weboberfläche vom ESP direkt
verwenden.
So würde der ESP sich mit keinem Wlan verbinden müssen.
Ich hoffe jetzt ist es klarer?
Geht (bis auf Weiteres) nicht. Gründe hatte ich oben ja schon geschrieben: Ohne Internetverbindung kann man nix nachladen und dann funktioniert die ganze Zeit nicht. Gab Ansätze, das zu ändern, aber durchgezogen hat’s niemand.
Genau, das Problem ist, dass die Managementoberfläche code und styles von außen mit einbezieht. JQuery, bootstrap und solche Dinge, die kommen vom cdn.
Wenn das Handy am WLAN vom ESPuino dran hängt, kann es diese Dinge nicht laden - auch wenn das mobile Netz vom Handy das eigentlich könnte, es wird dann nur über das WLAN versucht. Und das hat natürlich keine Verbindung nach außen
Analyse:
Hat man PLAY_LAST_RFID_AFTER_REBOOT
aktiviert, so wird versucht, die letzte RFID aus dem NVS zu holen mit der Funktion recoverLastRfidPlayedFromNvs(). Diese Funktion wird normalerweise (*) nur einmal aufgerufen - dies stellt das Flag recoverLastRfid
sicher. Gibt es die jeweilige Karte im NVS, dann landet das Ganze in der gRfidCardQueue. RfidCommon lauscht an der Queue: Dort werden die ganzen Eigenschaften des Eintrages geholt, geparst und dann in AudioPlayer_TrackQueueDispatcher() gesteckt. Hier wird die Playlist gebaut und aber der Vorgang abgebrochen, wenn der Playlist-Typ WLAN benötigt und aber kein WLAN vorhanden ist:
und
(*) Nun gibt es noch einen zweiten Weg, dieses recover erneut zu starten: Man muss recoverLastRfidPlayedFromNvs(true) aufrufen. Passieren tut das in der Wlan.cpp:
Das passiert einmalig, wenn sich das WLAN verbunden hat, jedoch aber nur, wenn gPlayLastRfIdWhenWiFiConnected
und gTriedToConnectToHost
auf true stehen.
gPlayLastRfIdWhenWiFiConnected
wird direkt, bevor es in die Queue gesteckt wird, auf true gesetzt - das sollte passen.
Aber gTriedToConnectToHost
wird erst gesetzt, nachdem einmal versucht wurde, einen WLAN-Call zu machen. Nur dazu kommt’s ja nicht, weil das vorher im Dispatcher schon abgebrochen wird.
Ich vermute mal, ohne es getestet zu haben, dass dieser Call erst dann gemacht wird, wenn man erfolgreich eine WLAN-Karte auflegt. Nur dann will man ihn ja eigentlich nicht mehr.
Ich glaube, deine Vermutung ist richtig. Wenn ich ne WLAN-Karte auflege, wird dieser Bereich aufgerufen…
Wenn man diesen Teil entfernt, dann funktioniert es für den WLAN-Fall. Aber dann wird’s doppelt aufgerufen, wenn es keine WLAN-Karte ist.