ich versuche ebenfalls, die Einrichtung mit der ESP32 Wroom-Version für meinen Sohn durchzuführen. Können Sie mir helfen und mir sagen, welche ESP32-Pins ich für das RC522-Board verwenden soll? In den Codeänderungen habe ich nur Informationen zu SS (SDA) und RST gesehen. Wo sollen MOSI, MISO und SCK angeschlossen werden? Vielen Dank im Voraus!
ich habe das bereits erwähnte Pin-Diagramm verwendet. Leider bin ich in eine ähnliche Situation wie m4tt_90 geraten. Ich musste VSCode verwenden, da der ESP32 keine Verbindung zum DFPlayer herstellen konnte, wenn der Code mit Arduino IDE kompiliert und bereitgestellt wurde. Mit VSCode Build kann ich jedoch erfolgreich Karten/Chips mit dem RC522 trainieren. Ich weiß nicht, ob dies eine Einschränkung des DFPlayers ist, aber ich kann die Lautstärke nicht einstellen, wenn keine Musik abgespielt wird. Ein weiteres Problem tritt 3–4 Sekunden nach dem Start eines Songs auf: Der ESP32 glaubt, dass der Player angehalten wurde (der BUSY-Pin bleibt während dieser Zeit niedrig). In diesem Fall bleibt der Player bei der Wiedergabe der MP3-Datei hängen und nimmt keine Befehle mehr entgegen. Hier ist das Log:
Welche Version vom Boardpackage hast du denn installiert und welches Board hast du denn eingestellt?
Ja, das ist normal.
Dann stimmt irgendwas mit der Verbindung zwischen dem Busy Pin mit GPIO4 nicht. Miss doch mal nach. Ich werde das nachher auch noch mal bei mir überprüfen.
Edit: Gerade noch mal getestet. Auch mit der neuesten Software (ich hatte Pull-Up an dieser Leitung hinzugefügt) funktioniert hier alles problemlos.
Ich habe es mit zwei verschiedenen esp32 wroom 32-Boards von verschiedenen Anbietern (nicht von Espressif) versucht – ohne Unterschied.
Ich habe es mit dem neuesten Board-Paket versucht, aber auch mit 2.0.17:
Das Ergebnis ist völlig identisch. Der Player wechselt für einige Sekunden in den „play“ Modus und dann in den „idle“. Die Musik wird weiterhin abgespielt, aber ich kann die Lautstärke aufgrund des „idle“ nicht mehr steuern.
enter Play
missing OnPlayFinished
enter Idle
Der Pin ist richtig angeschlossen. Muss ich außer der richtigen Verkabelung noch etwas Besonderes tun?
Dies sind die Konstanten:
#define TonUINO_Esp32 200 #define THREEBUTTONS #define DFPlayerUsesHardwareSerial (mit und ohne ausprobiert) #define DFMiniMp3_T_CHIP_MH2024K24SS_MP3_TF_16P_V3_0 (Mein DFMini-Player hat einen solchen Chip auf der Platine, deshalb habe ich diesen verwendet)
Ich habe ein kleines Update. Ich habe die gleiche Verkabelung ausprobiert, nur den esp32 Wroom 32 gegen Arduino Nano ausgetauscht. Natürlich habe ich auch die Konstanten geändert, und es funktioniert einwandfrei. Es gibt keine Probleme mit dem Busy-Pin des DFPlayed. Ich vermute, dass mir eine zusätzliche Einstellung des GPIO4-Pins des esp32 fehlt, damit es richtig funktioniert. Oder der Grund ist, dass ich eine chinesische Nachahmung verwende und es sich nicht um ein Espressif-Board handelt.
Ich habe mir das noch mal angeschaut und Asche auf mein Haupt, da scheint noch ein kleiner Fehler drin zu sein. In der Datei constants.hpp muss in der Zeile 848 activeLow stehen. Versuche es mal damit.
Ich muss dann morgen noch mal ergründen, warum das bei mir funktioniert hat.
Super, vielen Dank! Ich habe es gerade getestet und es funktioniert. Ich bin dumm, weil ich explizit versucht habe, es am Anfang von „setup()” auf „activeLow” zu setzen, aber ich habe völlig vergessen, dass es wahrscheinlich irgendwo im Code überschrieben wird.
Oh, ich hatte beim Testen Tomaten auf den Augen. Das mit dem Busy Pin lief auch bei mir nicht rund. Ist jetzt gefixt und sollte bei @m4tt_90 laufen.
Das Ganze ist beim Mergen vom Feature „Issue_309: Improve GPIO handling“ passiert. Hier hatte ich den Busy Pin von ActiveHigh auf ActiveLow geändert. Und beim neuen Code für den Wsp32 Wroom hätte ich das händisch machen müssen.
Gebt mal Bescheid, wenn der originale Code von GuitHub jetzt bei euch läuft, dann merge ich.
Habe am ESP32 Wroom noch ein bisschen weitergearbeitet.
Ich habe das Partition Schema auf „Minimal SPIFFS“ (min_spiffs.csv) geändert, damit OTA funktioniert. Wer die Arduino IDE verwendet, muss das in den Einstellungen selber ändern, bei PlattformIO ist das automatisch eingestellt.
Falls jemand ein anderes Schema mit nur einer App Partition verwendet, wird jetzt OTA automatisch disabled.
Ich habe versucht die Software für eine ESP32 Wroom zu compilieren. Bekomme aber folgende Fehlermeldung.
C:\\Users\\kasse\\Documents\\Arduino\\ESP32\\TonUINO-TNG\\src\\tonuino.cpp: In member function ‚void Tonuino::setup()‘:
C:\\Users\\kasse\\Documents\\Arduino\\ESP32\\TonUINO-TNG\\src\\tonuino.cpp:108:21: error: invalid conversion from ‚int‘ to ‚const esp_task_wdt_config_t\*‘ \[-fpermissive\]
108 | esp_task_wdt_init(120, true); // increase the default wd timeout
| ^\~\~
| |
| int
C:\\Users\\kasse\\Documents\\Arduino\\ESP32\\TonUINO-TNG\\src\\tonuino.cpp:108:20: error: too many arguments to function ‚esp_err_t esp_task_wdt_init(const esp_task_wdt_config_t\*)‘
108 | esp_task_wdt_init(120, true); // increase the default wd timeout
| \~~~^~~
In file included from C:\\Users\\kasse\\Documents\\Arduino\\ESP32\\TonUINO-TNG\\src\\tonuino.cpp:11:
C:\\Users\\kasse\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.5-b66b5448-v1\\esp32/include/esp_system/include/esp_task_wdt.h:47:11: note: declared here
47 | esp_err_t esp_task_wdt_init(const esp_task_wdt_config_t \*config);
| ^\~\~\~\~\~\~\~\~\~\~
exit status 1
Compilation error: invalid conversion from ‚int‘ to ‚const esp_task_wdt_config_t\*‘ \[-fpermissive\]
Daraufhin habe ich in der tonuino.cpp die Zeile 108 auskommentiert. Das Compilieren funktionierte daraufhin ud ich konnte den ESP beschreiben. Funktioniert auch echt gut, nur nimmt er jetzt keine Tastenbefehle an.Scheint ja mit der auskommentierten Zeile zu tun haben.
Webinterface funktioniert, im LOG erscheint folgendes
Das compilieren funktioniert jetzt. tonUINO läuft, aber das Problem mit den Tasten besteht immer noch. Er stellt auch immer noch de Lautstärke auf Max. Muss ich mich die Tage mal näher befassen.
Verkabelt sind die wie folgt:
buttons (pause) auf esp32 gpio 33 und auf GND
buttons (up) auf esp32 gpio 25 und auf GND
buttons (down) auf esp32 gpio 26 und auf GND
Das bedeutet, dass die Taste kontinuierlich gedrückt wird. Miss doch mal am GPIO25, ob da high oder low anliegt? Wenn keine Taste gedrückt wird, sollte high anliegen.
Eigentlich ist dieser Pin mit Pull-up konfiguriert. Nimm mal einen anderen für die Taste „up“. Du musst dann in der Datei constants.hpp die Zeile 813 anpassen.
Genau das habe ich heute Morgen gemacht. Am GPIO 32 funktioniert es wunderbar.
Reicht mir erst einmal ist nur keine Dauerlösung wenn man mal updaten wil
Danke erstmal für die tolle Hilfe.
Ich habe es erneut mit der neuesten Version des Codes getestet. Alles funktioniert wie vorgesehen. Vielen Lieben Dank. Ich füge auch ein Bild der Schaltpläne bei, falls diese für jemanden nützlich sein könnten. Sagen Sie mir bitte Bescheid, wenn ich etwas in den Schaltplänen übersehen habe.