Vorstellung: Finabox (ESP32, VS1053, Neopixel)

Kommend von einer Rapberry Pi-Lösung habe ich jetzt meinen ersten Prototypen mit ESP32 und VS1053 größtenteils fertig. Der Code ist weitgehend von @Henrik geklaut und auch etwas von mir erweitert worden.

Die Box hat folgende Features:

  • 5 Button-Bedienung (Lautstärke ±, Spulen vor/zurück, Titel vor/zurück, Play/Pause/Stopp)
  • WLAN (Hotspot, Streams, FTP-Server, Web-GUI für Konfiguration und Steuerung)
  • Erkennung ob RFID-TAG entfernt wurde (AutoResume), konfigurierbar über GUI/FTP
  • Neopixel-Ring zur Anzeige von Track-Fortschritt, Lautstärke und Statusinfos
  • TAGs sind in einem kleinen 3D-Druck-Gehäuse mit jeweils einem Magneten untergebracht und werden von einem Magneten im Gehäuse gehalten

Komponenten:

  • SOC: ESP32 Devkit v1
  • MP3-Decoder: VS1053
  • RFID-Reader: RC-522
  • Neopixel-Ring (32er, da hier der RFID-TAG gut hinein passt. Andere gehen natürlich auch)
  • 5x Pushbutton mit LED
  • Kleinteile (Widerstände, Board, Kabel, USB-Buche, Power-Button)

Die Verkabelung der ganzen Komponenten ging mir beim Prototyp ganz schön auf die Nerven. Ich habe daher eine PCB entworfen, welches den ESP32 und den VS1053 trägt und gleichzeitig die Anschlüsse für 5 LEDs, 5 Buttons den Neopixel-Ring, den RFID Reader und diverse Widerstände bereitstellt. Ich erwarte die fertigen Boards in ein paar Wochen und werde dann weitere Boxen aufbauen.




8 Like

Sehr schön geworden. :+1:
Hast Du Lust mal Screenshots von deinem Webfrontend zu posten? Da bin ich doch neugierig.

@Tolipwen
Das schaut doch echt super aus. Das ganze würde ich ja ganz gerne mit der TonUino Box von @Beno82 verheiraten o.O — Das habe ich allerdings in letzter Zeit stark verändert :slight_smile:
Leider war mein 3D Drucker die letzten Wochen etwas Zickig, bin erst nun wieder dran Gehäuse zu drucken.
Wenn du dein Projekt teilen würdest und vllt. noch eine Platine verkaufen könntest, dann würde ich gerne das Gehäuse dazu entwerfen :control_knobs:

@Henrik
Mach ich bis Ende der Woche. Aber ich habe bisher nur deine Vorlage erweitert mit ein paar Symbolen und neuen Funktionen (Spulen, AutoResume aus-/anwählbar für jeden TAG). Grundlegend hat mir dein Ansatz gut gefallen und meine Erfahrung ist, dass man die Web-GUI nur für die Konfiguration und am Anfang etwas zum rumspielen nutzt. Wenn das Kind dann die Hände drauf hat, sind die Eltern eh überflüssig.

@Curon
Der Code ist in meinem GitHub veröffentlicht (in der zwar funktionierenden aber unaufgeräumten Dev-Version). Wenn ich eine fertige(re) Version habe veröffentliche ich diese hier.

Wegen der Platine…wenn diese funktioniert, gebe ich überzählige Exemplare gerne an Tester/Interessierte ab. Allerdings ist mein derzeitiges Layout recht groß…ich glaube 10x5cm. Bei mir passt das wunderbar in den Holzrohling. Man könnte das PCB aber auch deutlich kleiner dimensionieren, wenn man den ESP vorne und den VS1053 auf die Rückseite packt. Was sind deine Größenlimits? Vielleicht kann ich noch was am Design schrauben…bin eh gerade an Änderungen dran.

PS: ich weiß nicht ob das in der Beschreibung rauskommt…die Codebasis ist nicht die vom TonUINO und hat damit auch nicht diesen gigantischen Funktionsumfang des Originals!

@Tolipwen
So ganz klar wie deine Elektronik funktioniert ist es mir noch nicht - aber ich sehe da durchaus einige Vorteile.

  • WLAN (Hotspot, Streams, FTP-Server, Web-GUI für Konfiguration und Steuerung)
  • Neopixel-Ring zur Anzeige von Track-Fortschritt, Lautstärke und Statusinfos
  • TAGs sind in einem kleinen 3D-Druck-Gehäuse mit jeweils einem Magneten untergebracht und werden von einem Magneten im Gehäuse gehalten

Wenn mit Streams - RadioStreams gemeint sind, dann ist es genau das was ich wirklich vermisse und LED’s mag ich ja sowieso :slight_smile:

Die Platine unterzubringen ist wirklich etwas schwer, kommt drauf an wie Dick die ist.
Ich habe bislang für den Arduino einen Platz oben ausgesucht, die Batterie kommt unten auf die Ablage und rechts ist die Steuerrung wo man dann mittels eines USB-Magnet Kabels die Box laden kann.

In der ersten Version von @Beno82 lädt diese noch Wireless, was aber doch recht warm wird für PLA.

Wenn man nun die Batterie nach Oben verlegen würde wo derzeit der Arduino liegt, dann könnte man unten den Bereich etwas umbauen und dann dort diese Platine einbringen.

Platz ist da 10,5 x 5 /// Die 5 könnte man mit ein paar Modifikationen aber auch auf vllt. 7cm erweitern…

Anbei mal ein Bild vom aktuellen Druck und der fertigen V1:

2 Like

Sehr nett modifiziert, bin auch gerade an V4 dran diese hat dann platz für die Tonuino Platine und einen Magnet lade Anschluss, da mir das mit dem Wireless laden doch auch zu unsicher war im Kinderzimmer,
Die ladeanzeige ist ganz nett von dir, eventuell bau ich sowas auch gleich ein, aber etwas kleiner als deine Variante, die braucht doch etwas viel platz, den ich derzeit nicht habe ohne die Karten Lade wieder kleiner zu machen.

Hi Tolipwen,

deine Box ist sehr schön geworden! Ich mag diese Holzoptik sehr gerne leiden.
Mir ist direkt die 2x18650 Platine aufgefallen. :smiley: Kannst du mir sagen wo ich die Platine herkriege? Müssen die Zellen zum aufladen entnommen werden oder ist auf der Rückseite noch eine Ladebuchse (Micro-Usb o.ä.)? Wie lange hält die Box mit den beiden Zellen?

Freue mich über ein paar Infos!

Bekommst du bei Aliexpress. Zellen müssen nicht entnommen werden.

1 Like

Super, danke dir!
Habe gerade noch ein anderes Modul gefunden, welches für den ersten Prototyp verwenden werde.
TP4056

Muss mich unbedingt mal bei Aliexpress anmelden… :wink:

@Henrik
Hier Mal ein Screenshot der Web-GUI.


Die Checkbox ist ein Artefakt. Ich hatte versucht die im Code auszulesen, bekomme aber nur eine Info wenn es true ist. Das drop-down funktioniert aber.

1 Like

@Curon
Ja mit Streams waren RadioStreams/Internetradio gemeint. Funktioniert auch (gerade getestet). Allerdings muss man dafür bisher die cards.json editieren und den stream - beginnend mit http - bei der gewünschten Karte eintragen.

Oh weia, jetzt bin ich interessiert :astonished:

Hast du irgendwo eine Anleitung wie man die Teile verbindet und was man so machen muss?
Ist ja ein wenig anders wie ich bislang gearbeitet habe und hier ist alles super dokumentiert :upside_down_face:

Werde mir mal am Wochenende deine obere Auflistung zusammen suchen und bestellen, internetradio ist nämlich das was meine Frau unbedingt integriert haben will…

Und die Steuerung über das Web Interface wird sie sicherlich freuen…

In der Pinout.h steht welche Pins verbunden werden müssen. Ich würde an deiner Stelle erstmal nur den VS1053 und danach den RC-522 anschließen. Wenn irgendwas nicht korrekt angeschlossen ist, kommt ne Fehlermeldung.

Nochmal zu den Streams. In meiner Dev geht das Streamen zwar, aber Lautstärkeregelung und LED-Ring gehen bei Streams nicht. Ich habe das gerade lokal behoben, werde das aber nicht ins GIT hochladen, weil das alles noch viel unübersichtlicher macht (ich hatte meine Dev nur auf Anfrage hochgeladen)

Weiterhin geht die Box nächste Woche an ein Geburtstagskind und damit habe ich ein paar Wochen kein System zum Testen, von daher ist dann wohl Entwicklungstechnisch erstmal Funkstille.

Hi! Wie lang ist die Laufzeit mit den zwei 18650er Zellen?

Die Akkulaufzeit habe ich noch nicht getestet.

Ich habe jetzt die Library so angepasst, dass RadioStreams als Playlist hinterlegt werden können (die ursprüngliche Version unterstützt nur lokale Inhalte in Playlisten). Dabei ist mir gerade aufgefallen, dass die VS1053 Library Google Texttospeech unterstützt, was leider mit der aktuellen Version nicht richtig funktioniert. Das sollte aber recht einfach zu fixen sein.

Meine Box zieht zwischen 120 und 170 mA, wenn ich mich recht erinnere. Mit den LEDs werden es hier einige mA mehr sein, aber je nach Kapazität deiner Zellen, kannst du die die Laufzeit in etwa ausrechenen…