ESP8266/ESP32 онлайн радио.
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Я указал так
out = new AudioOutputI2S();
out -> SetPinout(4, 2, 3); //BCL,LCK,DIN
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Подскажите кто нибудь пробовал запускать эти блоки на ESP32s2. Ни один блок не работает. Даже с интернетом плохо конектится. Отлично работает пример StreamMP3FromHTTP. Но там все в сетапе находится. Стоит перенести в LOOP и все перестает работать.
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
Re: ESP8266/ESP32 онлайн радио.
Пример скиньте, посмотрю, расположение кода не должен влиять, в лооп должен код запускаться один раз, как в сетап.superolegb писал(а): 24 окт 2024, 15:51 Подскажите кто нибудь пробовал запускать эти блоки на ESP32s2. Ни один блок не работает. Даже с интернетом плохо конектится. Отлично работает пример StreamMP3FromHTTP. Но там все в сетапе находится. Стоит перенести в LOOP и все перестает работать.
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Последний блок-это то что я пытался сделать(на базе примера StreamMP3FromHTTP) . Модуль не подключается к сети совсем. Если компилировать Ваш блок, то модуль подключается к сети, но сильно с перебоями - звука так же нет. Звук удалось получить только с примером StreamMP3FromHTT(там все стабильно и связь и звук).aidar_i писал(а): 24 окт 2024, 17:28Пример скиньте, посмотрю, расположение кода не должен влиять, в лооп должен код запускаться один раз, как в сетап.superolegb писал(а): 24 окт 2024, 15:51 Подскажите кто нибудь пробовал запускать эти блоки на ESP32s2. Ни один блок не работает. Даже с интернетом плохо конектится. Отлично работает пример StreamMP3FromHTTP. Но там все в сетапе находится. Стоит перенести в LOOP и все перестает работать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Использую 7.3.8.
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Да все библиотеки самые последние(и WifiManager и аудио библиотека). Вот из всего интернета нашел рабочий пример(остальные почему то отказываются работать) но он с WiFi менеджером отказывается работать:
Код: Выделить всё
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <user_interface.h>
//#include "AudioFileSourceHTTPStream.h" //https://github.com/earlephilhower/ESP8266Audio
#include "AudioFileSourceICYStream.h"
#include "AudioFileSourceBuffer.h" //https://github.com/earlephilhower/ESP8266Audio
#include "AudioGeneratorMP3.h" //https://github.com/earlephilhower/ESP8266Audio
#include "AudioOutputI2SNoDAC.h" //https://github.com/earlephilhower/ESP8266Audio
// Enter your WiFi setup here:
const char *SSID = "test"; //Ваше имя сети
const char *PASSWORD = "password"; // Ключ к сети
// Stations URLs...
const char* URL[]={"http://philae.shoutca.st:8446/stream/1/", "http://shoutcast.byfly.by:88/rmf", "http://shoutcast.byfly.by:88/euroradio_by", "http://shoutcast.byfly.by:88/svoboda_rus
"};
int buttonPin = 0; //назначим кнопку CH+
String url_tmp;
int ch;
AudioGeneratorMP3 *mp3;
//AudioFileSourceHTTPStream *file;
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()
{
system_update_cpu_freq(SYS_CPU_160MHZ);
pinMode(buttonPin, INPUT_PULLUP);
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(2000);
//Serial.println(ESP.getFlashChipSize());
}
Serial.println("Connected");
Serial.printf("Start Heap: %d b\n", ESP.getFreeHeap());
out = new AudioOutputI2SNoDAC();
Serial.printf("Init audio out Heap: %d b\n", ESP.getFreeHeap());
url_tmp=URL[1];
play();
Serial.printf("Play audio Heap: %d b\n", ESP.getFreeHeap());
}
void loop()
{
static int lastms = 0;
if (!digitalRead(buttonPin)){
Serial.print("Ch: ");
delay(200);
ch++;
sel_ch();
Serial.println(ch);
StopPlaying();
play();
}
if (mp3->isRunning()) {
if (millis()-lastms > 1000) {
lastms = millis();
Serial.printf("Running for %d ms. Heap: %d b\n", lastms, ESP.getFreeHeap());
Serial.flush();
}
if (!mp3->loop()) mp3->stop();
} else {
Serial.printf("MP3 done\n");
delay(1000);
play();
}
}
void play()
{
/*
file = new AudioFileSourceHTTPStream(url_tmp.c_str());
buff = new AudioFileSourceBuffer(file, 2048);
mp3 = new AudioGeneratorMP3();
mp3->begin(buff, out);
*/
// file = new AudioFileSourceHTTPStream(url_tmp.c_str());
file = new AudioFileSourceICYStream(url_tmp.c_str());
file->RegisterMetadataCB(MDCallback, (void*)"ICY");
//buff = new AudioFileSourceBuffer(file, 2560);
//buff->RegisterStatusCB(StatusCallback, (void*)"buffer");
mp3 = new AudioGeneratorMP3();
mp3->RegisterStatusCB(StatusCallback, (void*)"mp3");
mp3->begin(file, out);
// mp3->begin(buff, out);
}
void StopPlaying()
{
if (mp3) {
mp3->stop();
delete mp3;
mp3 = NULL;
}
if (buff) {
buff->close();
delete buff;
buff = NULL;
}
if (file) {
file->close();
delete file;
file = NULL;
}
}
void sel_ch()
{
if (ch==0) url_tmp=URL[0];
if (ch==1) url_tmp=URL[1];
if (ch==2) url_tmp=URL[2];
if (ch==3) url_tmp=URL[3];
if (ch>3) ch=0, url_tmp=URL[0];
}
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
Re: ESP8266/ESP32 онлайн радио.
Буфер очень большой, поставьте 4096.
Выход звука через какую плату? Напрямую выводы должны быть 17 и 18 у ESP32 S2.
У вас в скетче стоит вывод звука через них и переназначение выводов для I2S модуля. Если используете I2S модуль , тогда нужно строку out = new AudioOutputI2S(0, 1); исправить так: out = new AudioOutputI2S(); или поставьте 0 вместо 1.
Выводы DAC (17 и 18 в ESP32 S2) нельзя переназначить.
Пример Ваш для ESP8266.
Выход звука через какую плату? Напрямую выводы должны быть 17 и 18 у ESP32 S2.
У вас в скетче стоит вывод звука через них и переназначение выводов для I2S модуля. Если используете I2S модуль , тогда нужно строку out = new AudioOutputI2S(0, 1); исправить так: out = new AudioOutputI2S(); или поставьте 0 вместо 1.
Выводы DAC (17 и 18 в ESP32 S2) нельзя переназначить.
Пример Ваш для ESP8266.
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
Re: ESP8266/ESP32 онлайн радио.
Тогда нужно использовать I2S плату, например PCM 5102, можно назначить свободные пины для него.DedBanzai писал(а): 23 окт 2024, 13:48 Доброго времени суток, уважаемые. Подскажите, как поменять пины для вывода звука? Имеется ESP32-CAM, там нет 25 и 26 пина. В самом коде не нашел, где они выставляются.
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Это все я делала с АЦП PCM5201, без АЦП вообще никак не работает. Есть подозрения что библиотека не особо адаптирована под этот модуль.
Рабочий блок примерно такой как приложен. Не могу только задачу массива радиостанций через вход сделать(только через параметры)
Рабочий блок примерно такой как приложен. Не могу только задачу массива радиостанций через вход сделать(только через параметры)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
Re: ESP8266/ESP32 онлайн радио.
Ваш блок со входа не будет работать, потому что код аудио находится в сетапsuperolegb писал(а): 26 окт 2024, 00:36 Не могу только задачу массива радиостанций через вход сделать(только через параметры)
-
- Рядовой
- Сообщения: 16
- Зарегистрирован: 29 сен 2017, 13:05
- Поблагодарили: 3 раза
Re: ESP8266/ESP32 онлайн радио.
Переделал. Проверил работает на ESP32-s2.Параметры сети и память задаются в параметре блока
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость