Für die Ansagen habe ich zuerst den I2S-Soundchip MAX98357A ausprobiert.

Über den Gain-Eingang kann per Widerstand die Verstärkung eingestellt werden.
Der Kanal (Links, Rechts, Mitte) wird per Widerstand an SD festgelegt.
Zum Testen habe ich die mitgelieferten Stifte an das Modul gelötet und eine Testschaltung auf meinem Breakoutboard aufgebaut.

Für die Audio-Datei habe ich mit dem Smartphone eine Ansage aufgenommen. Format: m4a mit 64kBit/s@44kHz
Mit Audacity in MP3 umgewandelt. Zuvor die Samplefrequenz von 44kHz auf 16kHz geändert, um eine kleinere Datei zu erhalten.
Damit das Programm auf dem ESP32 die Audiodatei ausgeben kann, habe ich sie in ein C-Headerfile umgewandelt: xxd -i TuerAnsage1.mp3 > tuer_ansage.h
Es ist möglich, die Audiodatei auf einer SD-Karte zu speichern und diese in den SD-Karteneinschub auf dem ESP32-Modul zu stecken. Ich konnte von dieser Möglichkeit keinen Gebrauch machen, weil ich die Anschlüsse für den SD-Karteneinschub anderweitig gebraucht habe.
Die Audio-Bibliothek habe ich hier heruntergeladen: https://github.com/earlephilhower/ESP8266Audio

Der I2S-Chip hat am Anfang nur Rauschen von sich gegeben. Nach dem Einstellen des Gain sowohl an der Hardware wie an der Software auf Maximum und dem Verstärken der Audio-Datei war das Sprachsignal stark verrauscht hörbar.
Nach langer Fehlersuche mit anderer Sound-Bibliothek, mit Kondensatoren an der Stromversorgung, einem Filter am Lautsprecherausgang bin ich fast verzweifelt. Ich habe dann denselben I2S-Chip nochmals bestellt. Damit hat es sofort rauschfrei funktioniert.


Allerdings habe ich den I2S-Chip dann doch nicht für die Audioausgabe benutzt sondern ein gesondertes MP3-Modul. Der I2S braucht relativ viel Rechenleistung, die Menge der MP3-Dateien ist aufgrund des Speicherplatzes begrenzt und die Audio-Bibliothek braucht auch viel RAM. Da das MP3-Modul nicht viel größer war habe ich mich hierfür entschieden.

Das MP3-Modul ist ein Mini MP3 DFPlayer mit SD-Kartenslot. Zur Ansteuerung habe ich die serielle Schnittstelle benutzt. Das ist die selbe Schnittstelle, über die der ESP32 auch programmiert wird. Da mittlerweile aber auch das Over-The-Air-Update funktioniert, war das kein Problem.

Das MP3-Modul kann man auch ohne Controller benutzen. Hierfür gibt es zur Bedienung verschiedene Eingänge für Taster.
Zur Programmierung gibt es fertige Bibliotheken. Diese habe ich benutzt: https://github.com/DFRobot/DFRobotDFPlayerMini



Schreibe einen Kommentar