|
Spielt MP3- oder Ogg -Audiostreams bis 320 kbps ab |
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.
Am Stecker zum VS1053B ist die Position von" CS " mit "XCS" vertauscht angezehnet. Bitte nach Signal Bezeichnung verdrahten.
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.
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.
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.
Ü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 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.
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.
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.
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.
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 |
|
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 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