Smart Speaker
Ansagen ohne Stress.
30. September 2024
Das Projekt
Die Idee: einen „Smart Speaker“ selber zu bauen, der akustisch auf Ereignisse oder Notwendigkeiten im Haus hinweist. Geboren aus Tatsache, dass die Familie gerne lüftet, aber ebenso gerne bei kalten Außentemperaturen die Fenster auch rechtzeitig wieder zu schließen. Es sollten daher Durchsagen und Erinnerungen im Wohnzimmer hörbar gemacht werden. Aus dem Fensterwarner wurde im Laufe der Zeit schnell mehr: Erinnerung zum Loslaufen Richtung Schule, ein Gute-Nacht-Gruß zur Zu-Bett-Geh-Zeit, die Durchsage das die Waschmaschine mit dem Programm fertig ist, ein Hinweis auf eine offen gelassene Garage… den Ideen sind keine Grenzen gesetzt.
Und wenn man schon mal ein Stereo-Lautsprecher-Setup beisammen hat, darf es auch gerne bei Bedarf Internetradio abspielen. Es muss keine HiFi Qualität sein, Niveau Küchenradio zur Hintergrundberieslung reicht völlig aus.
Die Smart Home Zentrale meiner Wahl ist iobroker. Zur Ansteuerung ist daher das MQTT Protokoll meine erste Wahl.
Die ersten Versuche starteten mit einem D1 Mini Node MCU auf Basis einen ESP8266. Als Verstärker kam ein PAM8403 zum Einsatz. Aufgabe war MP3 File von einer SD Karte die in einem DFP Player Maste Module steckte hörbar zu machen. Das Ergebnis: eher ernüchternd. Es rauschte nur so vor sich hin, die Qualität auch beim Abspielen eher bescheiden und an Internetradio war mit dem Setup auch nicht zu denken.
Daher war schnell klar, den Aufbau auf ein anderes Niveau zu heben. Ein ESP32-WROOM-Modul in Kombination mit I2S 3W Klasse D Amplifier MAX98357A und einem SPI Reader Modul für die SD Karte sollten es richten. Und überzeugte am Ende. Ein erster Aufbau auf dem Breadboard funktionierte auf Anhieb. Ergänzt wurde es um die Möglichkeit lokal die Lautstärke mit Hilfe eines Rotary Encoders zu verändern.
Die Teileliste
1 | ESP32-C3 | Link | Hinweis: es handelt sich hier um einen Multicore ESP32. Nicht das Standardmodell! |
2 | Widerstand | 470kOhm | |
3 | Elko | 1000µF/10V | |
4 | MAX98537A | Link | 2x Digitaler I2S Signalverstärker |
5 | Lautsprecher Set | Link | |
6 | Drehencoder | Link | |
7 | SD Kartenleser | Link | SPI Reader für SD Karten |
8 | Netzteil | Link | |
9 | Diverse Kleinteile | Jumperkabel, DC-Einbaubuchse, Federleisten, Lochrasterplatine |

Die Schaltung
Die Schaltung mit KiCAD gezeichnet:
Ein Netzteil versorgt die Schaltung mit Spannung. Am Eingang nochmal durch den Elko geglättet, wird der 5V Eingang des Moduls genutzt, um dieses zu betreiben. Über Stiftleisten besteht die Möglichkeit die beiden digitalen Verstärker per Kabelbrücke beliebig im Zielgehäuse einzubauen und von dort auf die Lautsprecher weiter zu gehen. Das gleiche gilt für den Drehencoder und den SD Kartenleser. In meinem Gehäuse werden der USB Port des Moduls als auch der Zugang zur SD Karte so liegen, dass man ohne Öffnung des Gehäuses an beides von außen gut herankommt.
Der USB Zugang wäre im direkten Zugriff nicht ganz so wichtig, wenn man per SW ein Over-the-Air Update einbaut. Dies ist eventuell für einen späteren Zeitpunkt in der Software vorgesehen. Für den Moment, und da die Software für mich stabil genug läuft, behelfe ich mir mit der Möglichkeit ein USB Kabel zu flashen anstecken zu können.
Der Widerstand an dem Verstärker sorgt für die Kanaltrennung. 470kOhm am Eingang gibt den rechten Kanal, ein legen des Eingangs auf Versorgungsspannung den linken Kanal aus dem Stereosignal aus.
Das Platinenlayout
Mit Hilfe von KiCAD entstand im nächsten Arbeitsschritt das notwendige Platinenlayout mit dem Ziel es über einen Leiterplattenhersteller fertigen zu lassen. Alternativ kann auch eine Lochrasterplatine und Silberdraht verwendet werden. Da ich aber plane, den Lautsprecher mehrfach im Haus einzusetzen, habe ich mir die Handarbeit gespart. Außerdem war ich neugierig darauf, wie die Entwicklung und der Bestellprozess sowie die Verarbeitung der professionell gefertigten Platine von statten gehen.
Aktueller Stand: im Moment warte ich noch auf den ESP32-C3. Dann kann es im Layout und der Platinenbestellung und damit auch mit diesem Eintrag weitergehen.