• ESP8266 Webradio für Bad eigenschaften:
  • Ein/Ausschalten lichtgesteuert sobald Licht im Bad durch Lichtschalter geschaltet wird.
  • Startet Musikwiedergabe sofort. Dank ständiger Bereitschaft.
  • Bedienelemente: 2 Taster 1 Lautstärkeregler
  • Geringe Stromverbrauch im Vergleich zum Raspberry Pi
  • 3 Module ESP8266, VS1053B, PAM8403
  • Bauteilkosten 11,58€ (Aliexpress).
  • Arduino Quellcode

Spielt MP3- oder Ogg -Audiostreams bis 320 kbps ab
Kann MP3-Dateien vom beliebigen Server abspielen
100 Lieblingsradiosendern kann in der Konfigurationsdatei abgespeichert werden.
Die Konfigurationsdatei kann über die Webinterface bearbeitet werden.
Die Konfigurationsdatei kann über das Webinterface hochgeladen werden.
Kann über den serielle Schnittstelle RS232 (TTL) gesteuert werden.
Das stärkste verfügbare WLAN-Netzwerk wird automatisch ausgewählt.
20kB Ringpuffer für reibungslose Wiedergabe.
Bass- und Höhenlevel in Konfigurationsdatei einstellbar
Holt die aktuelle Urzeit vom NTP-Server
Automatische Zeitumstellung Sommer/Winterzeit
Lichtsteuerung durch LDR
An/Aus Funktion durch Lichtschalter für bestimmte Tageszeit einstellbar (Nachtabschaltung).
Verstärker MUTE Steuerung für rauschfreie Bereitschaftsbetrieb
Kann iHeartRadio-Sender abspielen.
Kann 101.ru -Sender abspielen (240 Radiosender).

Internetradio / WEBRadio Badezimmer Bad bedrum basteln

Arduino WebRadio auf dem Steckbrett

Ich möchte mein Projekt Webradio für Badezimmer vorstellen

Die Arduino Software wurde vom Edzelf entwickelt und stammt von diesem Projekt.
Ich habe lediglich den Bedienungskonzept geändert und für Badezimmer angepasst (mit Dämmerungsschalter ausgestattet).

Wenn ich das Zimmer betrete, sollte leichte lounge Musik spielen. Bei Verlassen des Bades / Toilette sollte Musik aufhören.
Als Bedienelemente bräuchte ich ein Lautstärkeregler und zwei Tastern um zwischen den Internet Radiosendern zu schalten.
Ein LDR (Lichtsensor) erkennt wenn ich das Badezimmer betrete. Ach ja, die Nachtabschaltung muss noch rein, wenn ich nachts auf Klo gehe sollte keine Musik spielen.
Im Gegensatz zum Internetradio Projekten mit Raspberry Pi ist dieses Projekt sehr preisgünstig. Die Bauteil Kosten belaufen sich insgesamt auf 11,58€ (bei Aliexpress).
Und natürlich ist es von einem Vorteil, dass man kein Linux braucht und nur mit Arduino Kenntnissen eigene Änderungen einfügen kann.
Außerdem so ein ESP-Radio verbraucht weniger Strom als Raspberry Pi WEBRadio, und startet auch wesentlich schneller. Bei diesem Internetradio ist ESP8266 immer mit WLAN verbunden und fängt an, das Internetradio abzuspielen, praktisch sofort nach dem Lichteinschalten im Badezimmer.
Die Stromaufnahme im Bereitschaftszustand beträgt 130mA. Bei Webradio mit Raspberry Pi wäre das ein Problem, denn entweder ist Raspberry Pi im Vollbetrieb und verbraucht viel Strom oder ist ausgeschaltet, dafür brauch aber ziemlich lange Zeit um hochzufahren.

Schaltplan digitales Teil

Internetradio WebRadio ESP8266 VS1053B

Lautstärkeregler

Als Lautstärkeregler kann beliebige Potentiometer im Bereich von 1k...100k verwendet werden. Der ist zwischen 3,3V und der Masse geschaltet.
Die Spannung wird von AD Wandler (Pin A0) eingelesen. Damit der Wert nicht hin und her springt, wurde in dem Programm eine Hysterese von 5 eingeführt.
Praxis hat aber gezeigt das ist doch noch ein elektronischer Filter notwendig ist. Einfachste Weg war für mich ein SMD Kondensator von 200nF direkt auf die D1 mini WEMOS Platine zu löten. Und zwar huckepack auf dem Widerstand gegenüber von D0. Wer das nicht machen möchte, kann auch so ein RC Filter auf A0 Eingang anhängen 1uF Kondensator zu Maße und 10K Widerstand zum Potentiometer.

LDR - Dämmerungssensor

Das LDR ist angeschlossen so komisch aus dem Grund, dass D8 Pin muss LOW Pegel während des Starten des ESP Moduls haben. Die LDR Schaltung arbeitet so: D8 wird als Ausgang geschaltet und führt 3,3 Volt, der Kondensator wird geladen, dann wird D8 als Eingang geschaltet und überprüft ob der Kondensator noch Spannung hat. Desto mehr Licht auf LDR gelangt desto schneller entlädt sich der Kondensator.

Stummschaltung

Es war mir sehr wichtig dass kein Rauschen, während WLAN Badradio sich im Bereitschaftszustand befindet, zu hören ist. Alle Verstärker produzieren etwas rauschen beim fehlenden Signal. Einzige Möglichkeit dieses Rauschen weg zu bekommen, ist das Verstärker auszuschalten. Dafür brauchen wir ein Signal. Es sind aber alle GPIO's des ESP8266 belegt. Auf dem D1 mini WeMos NodeMcu ist ein ESP8266-12F verbaut und er hat noch zusätzliche GPIO's. Es ist mir gelungen das GPIO10 für diese Funktion zu verwenden.
Ich habe im Internet gelesen dass manche ESP8266-12F (abhängig vom Hersteller) abstürzen wenn GPIO10 geschaltet wird. Wenn bei Ihnen das der Fall ist, bitte kommentieren Sie diese Funktion in der Zeile 21 aus.

Schaltplan analoges Teil

Internetradio VS1053 PAM8403 Rauschen brummen

Übrigens die Internetradio Bastler verschweigen das riesiges Problem vom Anschluss eines Verstärkers an den VS1053B Modul.
Alle schließen die Kopfhörer oder Verstärker mit separater Stromversorgung an und sind damit glücklich.

Das Problem liegt daran sobald man ein Verstärker mit gemeinsamer Masse an das VS1053 Modul verbindet, hört man sehr starkes digitales Rauschen, der das Nutzsignal sogar übertönt. Die Maße von dem Kopfhöreranschluss (GBUF), laut den Datenblatt, darf nicht mit Masse der Schaltung verbunden werden. Ich habe zwei Stunden mit verschiedenen Filtern am analogen Signal und an den Versorgungsleitungen versucht. Es hilft gar nichts gegen dieses Problem. Letztendlich habe ich das richtige Stichwort im Internet gefunden- "Differentielle Eingänge". Wenn man ein Verstärker mit differenziellen Eingängen (z.B. TDA8932) an das VS1053 Modul anschließt, dann sollte Rauschen weg sein.
Das Geheimnis der Masse der Kopfhöreranschluss GBUF ist, dass er das Rauschen mit gleicher Polarität auch überträgt. Also sollte Masse der Kopfhöreranschluss GBUF an das negative Verstärker Eingang gelegt werden, das Audio-signal sollte dann an positiven Eingang des Verstärkers gelegt werden. Die endgültige Lösung habe ich hier gefunden.

GBUF kann mit dem VREF Pin8 des PAM8403 des Verstärkers über ein Kondensator verbunden werden. Dann war das digitale Rauschen weg. Als das geklappt hat, könnte ich fast Eureka rufen.

Löten Sie bitte an den VREF -Pin8 des PAM8403 IC einen dünnen Draht, ohne den Pin von der Platine zu lösen.
Der MUTE –Pin5 soll dagegen von der Platine abgelötet und hoch gehoben werden.
R1, R3 und R2, R4 bildet ein Spannungsteiler der das Audiosignal um 2 teilt. Wenn die maximale Lautstärke nicht ausreicht, dann entfernen Sie bitte R3 und R4(das Rauschen während der Pausen wird dabei aber auch verstärkt).

Der Kondensator C4 470uF soll möglichst nahe an den PAM8403 – Modul sitzender liefert die Stromspitzen für den Bass.

Anforderungen an Stromversorgung
Meine Messungen haben gezeigt dass bei maximaler Lautsterke bei Verwendung eines 120W Lautsprechers werden 500mA gezogen. Der 5V USB-Netzteil soll also mit 1A ausgelegt sein. Bitte speisen Sie die Schaltung nicht über micro usb buchse des WeMos – Moduls. Die kann nicht so viel Strom leiten und der Audio Verstärker bekommt weniger Spannung wegen Verluste an micro usb und dem LadeKabel.


Die Bedienung

Die Bedienung erfolgt über zwei Tasten und Lautstärkeregler. Taste 1 - nächste Radiosender, Taste 2 - vorherige Radiosender.
Taste „nächste Radiosender“ 2 Sekunden lang halten - ausschalten. Wenn das Webradio ausgeschaltet ist, dann lässt sich das Webradio durch Betätigen der beliebigen Taste wieder einschalten .
Ich habe dieses Internetradio für Verwendung im Badezimmer angepasst. Dafür wird das ESP Radio über ein Lichtsensor LDR Ein- und Aus-geschaltet. Wenn Sie das Bad betreten und Licht einschalten wird das ESP8266 Internetradio angehen, und wenn Sie das Licht wieder ausschalten, geht das ESP8266 Internetradio wieder aus.
Sie haben auch Möglichkeit die Steuerung durch Licht für die Nacht automatisch zeitgesteuert abschalten. Die Einstellung, wann die Lichtsteuerung aktiv sein sollte, erfolgt in „radio.ini“-Datei. In den Variablen "ldr_on_at = 8:00","ldr_off_at = 21:30" . Das „radio.ini“ können Sie per Web-Interface des ESP8266 Internetradios ändern, oder auf Ihrem Rechner ändern und dann per Webinterface hochladen.


Webinterface

Webinterface fon Arduino WebRadio basteln

Um das Web Interface des WLAN Radios zu erreichen, müssen Sie zunächst seine IP Adresse herausfinden. Das können Sie tun indem sie, die Webseite Ihres Routers öffnen und nach WiFi Clients schauen. Sie finden dort ein WiFi Gerät namens "Esp-radio".
Am besten konfigurieren Sie Ihren Router so, dass er immer dem "Esp-radio" die gleiche IP Adresse vergibt. Jetzt können Sie am PC oder Tablet oder Handy die Webseite des Internet Radios über die IP-Adresse aufrufen.

Über Webinterface auf der Webseite „Control“ können sie das Webradio steuern. Neuen Internet Radio Sender können Sie in der Zeile degenüber des Buttons „Play“ ausprobieren. Da können Sie ein Streaming Link, MP3 Link, Playlist Link, iHeartRadio-Sender Name oder 101.ru Nummer der Sendung angeben.

Auf der Webseite „Config“ lässt sich Konfigurationsdatei "radio.ini" editieren oder vom PC hochladen. Hier können Sie eine beliebige Datei in die in SPIFFs (ESP8266 Dateisystem) hochladen. Nicht nur „radio.ini“ auch kleine MP3-Dateien können hochgeladen werden. Die verfügbaren WLAN-Netzwerke sind hier ebenfalls aufgeführt.

Wenn das ESP8266 es nicht schafft mit dem WLAN sich zu verbinden, dann startet ESP8266 als Access Point mit dem Namen "Esp-Radio. Sie müssen sich mit diesem AP verbinden Passwort lautet "Esp-Radio". Dann kann das ESP-Radio unter http: // 192.168.4.1 erreicht werden.
Wenn Sie die "radio.ini" noch nicht geladen haben, können Sie das per Datei Upload machen.

Arduino WebRadio Webinterface esp-radio basteln diy

Konfigurationsdatei

Die Konfigurationsdatei "radio.ini" befindet sich im Projektordner im Verzeichnis „data“.
Diese Datei soll in SPIFFs (ESP8266 Dateisystem) geladen werden, entweder über Arduino IDE und Sketch Data Upload tool, oder wenn Sie bereits Kompilierte Firmware mit Hilfe von Batch–Datei hochladen, wird die „radio.ini“ automatisch in SPIFF umgewandelt und ebenfalls hochgeladen.
In dieser Datei werden alle wichtigen Einstellungen gemacht. Dort können Sie mehrere WLAN-Netzwerke und Passwörter eingeben an denen das Webradio sich anmelden kann. wifi_00 , wifi_01 , wifi_02.
In der Zeile 4 „debug = 1“ lässt sich auf Debug-Modus ein und ausschalten „debug = 1“. In dem Debug Modus werden über serielle Schnittstelle mehrere Ausgaben über Zustand und Vorkommnisse gemacht.
In den Zeilen mit "ldr_on_at" und "ldr_off_at" lässt sich die Start und Stopp Zeit des Lichtsteuerung (LDR) einstellen. Dort können Sie das automatische Einschalten des Internet Radios in der Nacht abstellen.
Es gibt einfachen Equalizer. Der lassen sich hier konfigurieren:
Einstellung der Höhenverstärkung
Einstellung der Höhenfrequenz
Einstellung der Bassverstärkung
Einstellung der Bassfrequenz
Am besten probieren Sie verschiedene Einstellungen erst über Webinterface , wenn Sie die optimalen Werte gefunden haben, tragen Sie die in die Konfigurationsdatei.
In dem Teil der Konfigurationsdatei "Presets" können Sie die Radiostationen und Dateien, die abgespielt werden sollen, abspeichern. Es können bis zu 100 Stationen gespeichert werden.

Folgende Formate sind möglich:
http://87.98.217.63:23490/stream --- Einen Link auf ein stream
87.98.217.63:23490/stream --- Einen Link auf ein stream ohne "http"
www.rockantenne.de/webradio/rockantenne.m3u --- Ein Link auf Playlist
www.terrasound.de/wp-content/uploads/2016/04/funk_warte_terrasound.mp3 --- Ein Link auf MP3 Datei
ihr/IHR_IEDM --- iHeartRadio-Sender
101/7 --- 101.ru -Sender wobei die Zahl hinter dem Schrägstrich ist Nummer der Sendung.


Download von mir Kompiliertes Programm als fertige Firmware

Kann direkt ohne Arduino IDE und Programmierkenntnissen in Mikrocontroller übertragen werden.
Sie benötigen nur Handy-Datenkabel. Passendes Tool befindet sich in der ZIP-Datei.
Download Firmware BIN-Datei ESP-Internetradio für Bad für D1 mini WeMos NodeMcu  -Tool zum laden der Firmware und Anleitung sind im Archiv. (Kompiliert mit Arduino ver. 1.8.5, ESP8266 Bibliothek ver. 2.3.0).
Sie können die Voreinstellungen für das WLAN Badezimmer Radio im data/radio.ini vornehmen. Z. B. Zugangsdaten für Ihr WiFi –Netzwerk eintragen.



Download Firmware und Quellcode Arduino Sketch

In der ZIP-Datei befindet sich komplettes Arduino Projekt und benötigten Bibliotheken. Die Bibliotheken müssen in „ Arduino sketch Ordner/ libraries „ kopiert werden.
Download Projekt WLAN Badezimmer Internet Radio -Sketch für Arduino, es wird Bibliothek Core for ESP8266 WiFi chip benötigt


Besonderheiten beim kompilieren

CPU Geschwindigkeit auf 160 MHz einstellen
WICHTIG bitte nur Arduino ESP8266 Bibliothek der Version 2.3.0 verwenden. Das kompilieren mit 2.4.0 bringt Abstürze.

Arduino Internetradio mit ESP8266 sketch

101.ru Online Radiosender

101.ru ist ein riesiger Russischer Online Radio Internetportal mit hunderten Online Radio Sendern. Z.B. Rolling Stones Radio Stream , Enigma Radio Stream, NRJ Techno Radio Stream, ABBA Radio Radio Stream, Modern Talking Radio Stream, Funk & Soul, Swing, Deep House, New Ag.
Damit Sie sich da passende RadioStream finden, habe ich für Sie ein Link mit Google Übersetzer vorbereitet 101.ru
Wenn Sie interessante Webradio gefunden haben, schauen Sie nach dem Nummer der Radio Station (http://101.ru/radio/channel/120 New Age). 120 ist der Nummer der Station.
Mit dem Eintrag 101/120 in „Presets“-Teil der INI-Datei lässt sich dieser Radiosender abspeichern, oder über Webinterface auf der Webseite „Control“ lässt sich dieser Radiosender abspielen.

Die Steuerungsbefehle

Die Steuerungsbefehle können über Serielle Schnittstelle RS232 (TTL) gesendet werden.
Die Steuerungsbefehle können per Webbrowser gesendet werden. http://192.168.2.13/?[parameter]=[value]
(http://192.168.2.13/?upvolume=2)

preset = 12                        Select start preset to con
uppreset  = 1                      Select next preset or play
downpreset = 1                     Select previous preset or 
preset_00 = [mp3 stream]           Specify station for a pres
volume = 95                        Percentage between 0 and 1
upvolume = 2                       Add percentage to current 
downvolume = 2                     Subtract percentage from c
toneha = [0..15]                   Setting treble gain
tonehf = [0..15]                   Setting treble frequency
tonela = [0..15]                   Setting bass gain
tonelf = [0..15]                   Setting treble frequency
station = [mp3 stream]             Select new station (will n
station   = [URL].mp3              Play standalone .mp3 file 
station   = [URL].m3u              Select playlist (will not 
xml     = [Mountpoint]             Select iHeartRadio station
mute                               Mute the music
unmute                             Unmute the music
stop                               Stop player
resume                             Resume player
wifi_00  = mySSID/mypassword       Set WiFi SSID and password
status                             Show current URL to play
test                               For test purposes
debug = 0 or 1                     Switch debugging on or off
reset                              Restart the ESP8266
analog                             Show current analog input


webmaster_x_esp8266-server.de