Vielleicht liegt es ja an meinem ESP32, das ist ein schon etwas älterer AZDelivery ESP32 NodeMCU.
Davon habe ich noch einige, die machen alle das gleiche Problem. Mit dem Arduino Nano habe ich keine Probleme. Aber das WLAN des ESP mit dem Webzugriff reizt mich.
Welches Board (in der IDE) hast du eigentlich genommen und welche Einstellungen hast du noch so gemacht?
Jetzt habe ich auch noch den altbekannten Fehler missing OnPlayFinished und es springt von Track zu Track.
Aber nur bei dem ESP 32 bei meinem Arduino Nano läuft der gleiche Player einwandfrei. MP3-TF-16P V3.0 (AZDelivery Mini MP3 Player Master Module kompatibel mit Arduino)
[000 05.011] _____ _____ _____ _____ _____
[000 05.012] |_ _|___ ___| | | | | | |
[000 05.012] | | | . | | | |- -| | | | | |
[000 05.012] |_| |___|_|_|_____|_____|_|___|_____|
[000 05.022] TonUINO Version 3.x - refactored by Boerge1
[000 05.023]
[000 05.023] created by Thorsten Voß and licensed under GNU/GPL.
[000 05.033] Information and contribution at https://tonuino.de.
[000 05.033]
[000 05.033] V3.3.3 21.02.26
[000 05.033] ESP32 Wroom 32 3
[000 05.329] EEPROM begin: 1
[000 05.335] EEPROM commit: 1
[000 05.335] Ver:2
[000 05.335] Vol:25 5 15 25 5 15
[000 05.336] EQ:1
[000 05.336] ST:0
[000 05.336] IB:1
[000 05.336] AL:0
[000 05.337] AP:1111
[000 05.337] PCR:0
[000 05.338] no wifi settings
[000 05.338] wifi settings - ssid: , hostname: tonuino, st_ip: 0, st_ip_address: 0.0.0.0, st_ip_gw: 0.0.0.0, st_ip_subnet: 0.0.0.0, st_ip_dns1: 0.0.0.0, st_ip_dns2: 0.0.0.0
[000 05.349] Not connected to WiFi , starting AP TonUINO
[000 05.942] AP IP address: 192.168.4.1
[000 05.995] MFRC522:0
[000 05.996] com to mfrc broken
[000 10.027] Volume: 15
[000 10.090] track_count: 1041
[000 11.090] enter Idle
[000 11.090] btn/cmd: start/start
[000 11.091] enqueue mp3 262 0
[000 11.091] play mp3 262
[000 12.276] Track end: 606
[000 12.277] Track end: 606
[000 43.439] websocket [1] Connected!
[001 09.672] websocket [2] Connected!
[001 14.924] websocket [1] Disconnected!
[001 16.955] Webservice::card
[001 16.957] parameter name[mode]: Album
[001 16.957] parameter name[folder]: 9
[001 16.958] parameter name[special1]: 0
[001 16.958] parameter name[special2]: 0
[001 16.958] parameter name[card_action]: start
[001 17.683] track count: 26
[001 17.683] start card mode: 2 folder: 9 special: 0 special2: 0
[001 17.687] btn/cmd: card_from_web/card_from_web
[001 17.688] enter StartPlay
[001 17.688] enqueue mp3 262 0
[001 17.736] play mp3 262
[001 18.549] Track end: 606
[001 18.551] Track end: 606
[001 19.167] 26 tr in folder 9
[001 19.168] enqueue 9-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[001 19.206] play 9-1
[001 21.695] enter Play
[001 24.292] missing OnPlayFinished
[001 24.293] play 9-2
[001 29.401] missing OnPlayFinished
[001 29.402] play 9-3
[001 34.463] missing OnPlayFinished
[001 34.464] play 9-4
[001 39.529] missing OnPlayFinished
[001 39.530] play 9-5
[001 44.641] missing OnPlayFinished
[001 44.642] play 9-6
[001 46.769] Webservice::service
[001 46.771] parameter name[button]: pause
[001 46.811] btn/cmd: pause/pause
[001 46.812] enter Pause
Auf jeden Fall solltest du nicht dieses Board nehmen. „DA“ soll wohl „dual antenna“ bedeuten. Nimm „ESP32 Dev Modul“.
Und wenn du „min spifs“ anstelle von „huge app“ nimmst, kannst du auch OTA flashen.
Aber evtl. beseitigt die Boadänderung nicht den Fehler, aber versuch es mal.
Hast du auch den DFPlayer in der Datei constants.hpp eingestellt?
Das mit dem Board versuche ich mal, ja den Player habe ich in der constants.hpp eingestellt. Hat ja auch schon mal mit Version 3.3.2 funktioniert ohne die Anpassung.
Danke, die Boardänderung hat den Fehler mit D25 beseitigt. Das Timingproblem mit dem mp3-player leider nicht. . Nochmals ganz herzlichen Dank für die Unterstützung.
Dabei habe ich die SD Karte in Verdacht. Hast du alle Hinweise im Forum beachtet? (vor allem Fatsort)
Und es hat sich bewährt, als Dateinamen nur die Nummern zu nehmen (ohne zusätzlichen Text)
Ich habe mal einen ganz einfachen Aufbau nur ESP32 und mp3 Player mit folgendem Sketch getestet. NULL Probleme. Habe mir dann für meine Werkstatt einen kleinen mp3 Player mit WEF-Steuerung programmiert und der funktioniert super. Man soll nicht immer mit Kanonen auf Spatzen schießen Das tonuino Projekt ist großartig und ich danke allen die das weitertreiben. Aber für diesen Anwendungsfall doch zu groß. Für meine Enkelkinder baue ich noch einen 2. tonUINO aber mit dem Arduino Nano. Der funktioniert mit meinen mp3 playern wunderbar. Noch einmal herzlichen Dank für die Unterstützung.
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
//dfplayer RX auf esp32 tx2 gpio 17
//dfplayer TX auf esp32 rx2 gpio 16 mit widerstand
// RX/TX Port am ESP32 definieren
SoftwareSerial DFPlayerSoftwareSerial(16,17);
// Name des Players
DFRobotDFPlayerMini mp3Player;
int Lautstaerke = 8;
/*
Schalter für die Pausenfunktion
Pause == true -> Wiedergabe gestoppt
Pause == false -> Wiedergabe neu starten
*/
bool Pause = false;
void setup()
{
DFPlayerSoftwareSerial.begin(9600);
Serial.begin(9600);
delay(1000);
// Player starten
// falls die Parameter true, true nicht funktionieren
// mp3Player.begin(DFPlayerSoftwareSerial, false, true);
mp3Player.begin(DFPlayerSoftwareSerial, true, true);
Serial.println("Player gestartet-");
/*
Equalizer:
mp3Player.EQ(DFPLAYER_EQ_NORMAL);
mp3Player.EQ(DFPLAYER_EQ_POP);
mp3Player.EQ(DFPLAYER_EQ_ROCK);
mp3Player.EQ(DFPLAYER_EQ_JAZZ);
mp3Player.EQ(DFPLAYER_EQ_CLASSIC);
mp3Player.EQ(DFPLAYER_EQ_BASS);
*/
mp3Player.EQ(DFPLAYER_EQ_ROCK);
// Lautstärke 1 .. 30
mp3Player.volume(Lautstaerke);
Serial.println("Lautstärke: ");
zufällige Wiedergabe starten
mp3Player.randomAll();
// Menü
Serial.println("-----------------------------");
Serial.println("n = nächster Titel");
Serial.println("v = voheriger Titel");
Serial.println("+ = Laustärke +");
Serial.println("- = Lautstärke -");
Serial.println("s = Stopp/Weiter");
Serial.println("z = zufällige Wiedergabe");
Serial.println("m = Menü anzeigen");
Serial.println("1-9 = Verzeichnis 1-9 spielen");
Serial.println("-----------------------------");
}
void loop()
{
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
char Zeichen = Serial.read();
Serial.println("-----------------------------");
Serial.println(Zeichen);
Serial.println("-----------------------------");
// wenn die Eingabe eine Zahl ist
if (isdigit(Zeichen))
{
// char in String umwandeln, anschließend zu int konvertieren
String Zahl = String(Zeichen);
int Nummer = Zahl.toInt();
Serial.println("Spiele Verzeichnis " + String(Nummer));
mp3Player.loopFolder(Nummer);
Pause = false;
}
// - -> Lautstärke -
if (Zeichen == '-')
{
if (Lautstaerke > 2) Lautstaerke = Lautstaerke - 2;
mp3Player.volume(Lautstaerke);
Serial.println("Lautst\u00e4rke: " + String(Lautstaerke));
}
// + -> Lautstärke +
if (Zeichen == '+')
{
if (Lautstaerke <= 28) Lautstaerke = Lautstaerke + 2;
mp3Player.volume(Lautstaerke);
Serial.println("Lautst\u00e4rke: " + String(Lautstaerke));
}
// n -> nächster Titel
if (Zeichen == 'n')
{
mp3Player.next();
Serial.println("Nächster Titel");
}
// v -> vorheriger Titel
if (Zeichen == 'v')
{
mp3Player.previous();
Serial.println("Vorheriger Titel");
}
// s -> Pause/Weiter
if (Zeichen == 's')
{
if (!Pause)
{
mp3Player.stop();
}
if (Pause)
{
mp3Player.start();
}
Pause = !Pause;
if (Pause) Serial.println("Wiedergabe angehalten");
if (!Pause) Serial.println("Wiedergabe fortgesetzt");
}
// z -> zufällige Wiedergabe Titel
if (Zeichen == 'z')
{
mp3Player.randomAll();
Serial.println("Zufällige Wiedergabe gestartet");
Pause = false;
}
// m -> Menü anzeigen
if (Zeichen == 'm')
{
Serial.println("-----------------------------");
Serial.println("n = nächster Titel");
Serial.println("v = voheriger Titel");
Serial.println("+ = Laustärke +");
Serial.println("- = Lautstärke -");
Serial.println("s = Stopp/Weiter");
Serial.println("z = zufällige Wiedergabe");
Serial.println("m = Menü anzeigen");
Serial.println("1-9 = Verzeichnis 1-9 spielen");
Serial.println("-----------------------------");
}
}
}
Die „DFRobotDFPlayerMini.h“ Bibliothek ist nicht so mächtig wie die * DFPlayer Mini Mp3 by Makuna aber für diesen Zweck ausreichend.
DANKE