📗 Unterschiede zwischen ESPuino und Tonuino

Allgemein

Tonuino (also NICHT mein Projekt) verwendet als Mikrocontroller (µC) den Arduino nano. Dieser stammt aus der AVR-Plattform von Microchip (ehemals Atmel) und basiert auf dem ATmega328P. Über eine serielle Verbindung wird der DFPlayer mini gesteuert. Dieser integriert sowohl Verstärker, als auch SD-Slot und mp3-Handling. Das funktioniert gut, jedoch ist man hinsichtlich der Benamung der Audiodateien an das Nummernschema gebunden, wie es der DFplayer vorgibt.

Als ich von diesem Projekt gehört habe, was im Herbst 2019 der Fall war, war ich direkt Feuer und Flamme und mir war sofort klar, dass ich die Grundidee hinter dem Projekt auf den ESP32 von Espressif bringen möchte - mit diesem hatte ich bereits Erfahrung. Und zwar deswegen, weil dieser einerseits (in verschiedenen Dimensionen) sehr leistungsfähig + günstig ist und sich insbesondere auch durch dessen WLAN-Konnektivität zahlreiche Möglichkeiten ergeben (WebGUI, FTP-Server, Web-Upload, Smarthome-Integration via MQTT). Außerdem besitzt der ESP32 die Möglichkeit, digitale Audiodaten über seine i2s-Schnittstelle auszugeben. Das ist deswegen interessant, weil es zahlreiche DACs gibt, die auf i2s aufsetzen. Für meine Tests habe ich primär den MAX98357a oder auch UDA1334 verwendet. Aber auch den PCM5102a, der in einer optionalen Kopfhörer-Platine Verwendung findet bzw. MS6324. Das Schöne an i2s ist, dass man einfach mehrere DACs an den 3-Pin-Bus dranhängen kann. Möchte man also beispielsweise zwei Lautsprecher ansteuern, so kann man einfach zwei MAX98357a parallel an den Bus hängen und es wird funktionieren (Hinweis: Will man wirklichen Stereo-Effekt, so gibt es noch weitere Dinge zu beachten).

Was unterscheidet ESPuino von TonUINO nun also im Detail?

Grundsätzlich funktioniert der ESPuino erstmal so, wie man es vom TonUINO kennt: Man legt eine Karte auf und die Musik, oder was auch immer, fängt an zu spielen. Es gibt jedoch zahlreiche Unterschiede. Auf die grundsätzlichen möchte ich hier (möglichst neutral) eingehen:

  1. ESPuino dekodiert mp3/aac/asx/wav selbst in Software, statt auf externe Hardware zurückzugreifen. Eingesetzt wird dafür diese Lib. D.h. was diese Lib kann, kann der ESPuino potentiell auch :slight_smile:.
  2. Als Musikquellen stehen Dateien von SD-Karte, Webradio-Streams oder Bluetooth zur Verfügung.
  3. Hinsichtlich der Dateinamen auf der SD-Karte hat man weitgehend freie Wahl. Allerdings darf ein Dateiname (inkl. dessen gesamtem Pfad) 255 Zeichen nicht überschreiten. Einschränkungen wie „nur Nummern“ gibt es nicht. Bei Umlauten kann es Probleme geben - weitere Infos/Meinungen dazu gibt es hier: Dateinamen Encoding.
  4. Das Audiosignal wird vom ESP32 über i2s ausgeleitet und landet dann bei einem DAC, der daraus ein analoges Signal macht. Anschließend braucht es nur noch einen Verstärker. Ich setze dafür hauptsächlich den MAX98357a ein, welcher sowohl DAC ist, als auch integriert einen 3W-Verstärker (ClassD) besitzt.
  5. Die Zuweisung, welche Aktion x bei einer RFID-Karte y durchzuführen ist, wird bei ESPuino nicht auf der Karte selbst gespeichert sondern im Mikrocontroller selbst. D.h. alles, was ESPuino benötigt, ist die ID der Karte (dezimal eine 12stellige Zahl). Gespeichert wird die Zuweisung dann im NVS des ESP32. D.h. man kann sogar eine Karte verwenden, die irgendwo beispielsweise zur Zugangskontrolle dient und muss keine Angst haben, dass sie überschrieben wird.
  6. Jede Zuweisung zwischen Karte und Aktion wird parallel auch in eine Backup-Datei auf die SD-Karte geschrieben. Für diese Backup-Datei gibt es auch eine Importfunktion: 📗 Die Backupfunktion des ESPuino. So kann man, wenn man bereits einen ESPuino besitzt und z.B. für ein weiteres Kind ebenfalls einen nutzen möchte, sämtliche Kartenzuweisungen dort importieren und muss nicht alles manuell erneut anlernen. Klar, SD-Inhalte müssen natürlich auf beiden Geräten vorliegen.
  7. Statt einem audiogesteuerten Adminmenü gibt es hier eine Web-Oberfläche, über die man verschiedenste Sachen konfigurieren kann. Hier lassen sich auch RFID-Zuweisungen sehr komfortabel über einen Dateibrowser durchführen. Weiterhin kann man dort Dateien/Verzeichnisse abspielen, löschen, umbenennen oder hochladen. Auch verschiedenste Einstellungen lassen sich dort vornehmen.
  8. ESPuino setzt (anstelle von Ansagen) elementar auf optisches User-Feedback durch Neopixel(ringe). D.h. man kann ESPuino auch ohne Neopixel betreiben, aber da über diesen sehr viele Informationen transportiert werden, würde ich das nicht empfehlen. 📗 Was zeigt der Neopixel des ESPuino alles an?.