INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
esp8266webradio
14.01.2021, 21:23
Beitrag #1
esp8266webradio
#include <Arduino.h>
#ifdef ESP32
#include <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif
#include "AudioFileSourceICYStream.h"
#include "AudioFileSourceBuffer.h"
#include "AudioGeneratorMP3.h"
#include "AudioOutputI2SNoDAC.h"
// To run, set your ESP8266 build to 160MHz, update the SSID info, and upload.
// Enter your WiFi setup here:
const char *SSID = "Wi-Fi";
const char *PASSWORD = "Password";
// Uncomment one link (I have added 6 radio streaming link, you can check each)
//flawlessly working radio streaming link
const char *URL="http://ndr-edge-206c.fra-lg.cdn.addradio.net/ndr/njoy/live/mp3/128/stream.mp3"; //'N-JOY vom NDR - http://www.n-joy.de'
//const char *URL="http://ndr-edge-10ad-fra-dtag-cdn.cast.addradio.de/ndr/ndr1niedersachsen/hannover/mp3/128/stream.mp3";
//const char *URL="http://jazz.streamr.ru/jazz-64.mp3";
// It will work but buffer alot
//const char *URL="http://stream.ca.morow.com:8003/morow_med.mp3";
//const char *URL= "http://ndr-ndr1radiomv-schwerin.sslcast.addradio.de/ndr/ndr1radiomv/schwerin/mp3/128/stream.mp3";
//const char *URL="http://mms.hoerradar.de:8000/rst128k";//Radio RST(German)
AudioGeneratorMP3 *mp3;
AudioFileSourceICYStream *file;
AudioFileSourceBuffer *buff;
AudioOutputI2SNoDAC *out;
// Called when a metadata event occurs (i.e. an ID3 tag, an ICY block, etc.
void MDCallback(void *cbData, const char *type, bool isUnicode, const char *string)
{
const char *ptr = reinterpret_cast<const char *>(cbData);
(void) isUnicode; // Punt this ball for now
// Note that the type and string may be in PROGMEM, so copy them to RAM for printf
char s1[32], s2[64];
strncpy_P(s1, type, sizeof(s1));
s1[sizeof(s1)-1]=0;
strncpy_P(s2, string, sizeof(s2));
s2[sizeof(s2)-1]=0;
Serial.printf("METADATA(%s) '%s' = '%s'\n", ptr, s1, s2);
Serial.flush();
}
// Called when there's a warning or error (like a buffer underflow or decode hiccup)
void StatusCallback(void *cbData, int code, const char *string)
{
const char *ptr = reinterpret_cast<const char *>(cbData);
// Note that the string may be in PROGMEM, so copy it to RAM for printf
char s1[64];
strncpy_P(s1, string, sizeof(s1));
s1[sizeof(s1)-1]=0;
Serial.printf("STATUS(%s) '%d' = '%s'\n", ptr, code, s1);
Serial.flush();
}
void setup()
{
Serial.begin(115200);
delay(1000);
Serial.println("Connecting to WiFi");
WiFi.disconnect();
WiFi.softAPdisconnect(true);
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, PASSWORD);
// Try forever
while (WiFi.status() != WL_CONNECTED) {
Serial.println("...Connecting to WiFi");
delay(1000);
}
Serial.println("Connected");
audioLogger = &Serial;
file = new AudioFileSourceICYStream(URL);
file->RegisterMetadataCB(MDCallback, (void*)"ICY");
buff = new AudioFileSourceBuffer(file, 8192);
buff->RegisterStatusCB(StatusCallback, (void*)"buffer");
out = new AudioOutputI2SNoDAC();
mp3 = new AudioGeneratorMP3();
mp3->RegisterStatusCB(StatusCallback, (void*)"mp3");
mp3->begin(buff, out);
}
void loop()
{
static int lastms = 0;
if (mp3->isRunning()) {
if (millis()-lastms > 1000) {
lastms = millis();
Serial.printf("Running for %d ms...\n", lastms);
Serial.flush();
}
if (!mp3->loop()) mp3->stop();
} else {
Serial.printf("MP3 done\n");
delay(1000);
}
}

Nabend! Ich benutze diesen code von dieser Seite https://www.hackster.io/RoboticaDIY/esp8...dio-5bee14
Ich glaube, er ist so ähnlich wie der von den Arduino Beispielen ESP8266/ Audio/ webradio
Aber es kommt immer diese Fehlermeldung im seriellen Monitor:
...Connecting to WiFi
Connected
I2SNoDAC: esp8266 arduino core should be upgraded to avoid conflicts with SPI
Running for 10030 ms ...
STATUS(buffer) '2' = 'Refilling buffer'
STATUS(buffer) '3' = 'Buffer underflow'
MP3 done
MP3 done
MP3 done


Ich bin für jeden Hinweis dankbar. Das Programmieren erschließt sich mir nicht so leicht. Im Grunde genommen probiere ich seit über einer Woche irgendwelche Sketche aus und bekomme nicht ein vernünftiges Ergebnis. Immer stimmt irgend etwas nicht mit den Bibliotheken. Ich hätte es ja auch gerne mit diesem Mp3 Wandler VS 1053 und in Sterereo, aber der Weg ist wohl noch lang. Winter ist aber die beste Zeit sowohl zum Programmieren, als auch zum Verbrennen all des gehackten Holzes. liebe Grüße
P.S. : Ich war schon mal hier zwecks NTP-Clock. Dann habe ich fünf von diesen Wort-Uhren gebaut und die laufen alle noch. (https://github.com/Kater--S/Kater-s-Word...esMich.md) Ganz ehrlich, dieses Gitter in diesen Uhren soll ja eigentlich aus dem 3-D-Drucker kommen, aber der Ossi mit Cuttermesser und Dremel ist schneller. lg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.01.2021, 21:52
Beitrag #2
RE: esp8266webradio
(14.01.2021 21:23)DEDI schrieb:  ........
Ich bin für jeden Hinweis dankbar. Das Programmieren erschließt sich mir nicht so leicht. Im Grunde genommen probiere ich seit über einer Woche irgendwelche Sketche aus und bekomme nicht ein vernünftiges Ergebnis. Immer stimmt irgend etwas nicht mit den Bibliotheken. Ich hätte es ja auch gerne mit diesem Mp3 Wandler VS 1053 und in Sterereo, aber der Weg ist wohl noch lang. Winter ist aber die beste Zeit sowohl zum Programmieren, als auch zum Verbrennen all des gehackten Holzes. liebe Grüße
P.S. : Ich war schon mal hier zwecks NTP-Clock. Dann habe ich fünf von diesen Wort-Uhren gebaut und die laufen alle noch. (https://github.com/Kater--S/Kater-s-Word...esMich.md) Ganz ehrlich, dieses Gitter in diesen Uhren soll ja eigentlich aus dem 3-D-Drucker kommen, aber der Ossi mit Cuttermesser und Dremel ist schneller. lg

Nabend,
dann solltest du vielleicht mal mit was einfacherem anfangen wie mit so einem Umfaangreichen Code. Und wenn du schon mal hier warst dann weißt auch das man Code in Tags setzt. Und zudem ist das kein Tutorial....also falscher Abschnitt.
bk Moderator


An alle Neuankömmlinge hier, wenn ihr Code(Sketch) hier posten wollte dann liest euch bitte diese Anleitung durch.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.01.2021, 22:35
Beitrag #3
RE: esp8266webradio
Zitat:Ich bin für jeden Hinweis dankbar. Das Programmieren erschließt sich mir nicht so leicht.

Warum fragst du nicht den Autor ?
Der kennt doch sein Programm am Besten.
Mein Tipp, einfach kleiner anfangen und die Grundlagen lernen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste