здравствуйте, прошу помощи по edzelf - собрал с новой красной vs (поставил 3х470мкф около AMS1117, убрал микрофон), есть такие баги:
1. не регулируется громкость - в веб изменяю, уровень звука постоянный. если уменьшать, доходит до нуля, потом снова 100 и дальше. перезагрузка, стоп, резюм не помогает.
2. звук имеет очень странный синтетический окрас, трудно описать...или наушники захлебываются, или хрипы очень сильные. наушники пробовал разные, везде одинаково.
char lstr[25]; //объявляем буфер в 30 символов под эту самую дату и время
tmElements_t dt;
vStr.toCharArray(lstr, 25) ; //копируем дату и время в буфер
breakTime(now(), dt); //Записываем в структуру dt (содержащую элементы час минута секунда год) текущее время в контроллере (в дурине)
int year, month, day, hour, minute, second; //объявляем переменные под год месяц день недели и.т.д
sscanf(lstr, "%04d-%02d-%02dT%02d%02d%02d", &(year), &(month), &(day), &(hour), &(minute), &(second)); //переносим (разбираем) строчку с датой на отдельные кусочки (день месяц год и.т.д)
dt.Year = year - 1970; dt.Month = month; dt.Day = day; //заменяем кусочки структуры dt значениями из нашей принятой и разобранной строки с датой и временем
dt.Hour = hour; dt.Minute = minute; dt.Second = second;
setTime(makeTime(dt)); //записываем в timestamp(штамп/оттиск времени в формате UNIX time (количество секунд с 1970 года) значение времени сформированное в структуре dt
К вопросу об RTC
Это кусок скеча от моего "пульта" - тут используется либа timelib.h Вам у себя нужно дописать строчку сохранения таймстамп в DS (аналогично setTime(makeTime(dt))), а потом еще и сюда же сделать чтение этого таймстампа из DS при необходимости (что то типа dt = getTime())
Вобщем кому интересно решил свою проблему с русскими буквами так
char* RUS(char* str){ // Определяем функцию которая преобразует код русских символов
uint8_t i=0, j=0; // Определяем переменные: i - счетчик входящих символов, j - счетчик исходящих символов
while(str[i]){ // Проходим по всем символам строки str, пока не встретим символ конца строки (код 0)
if((uint8_t)(str[i]) == 0xD0 && (uint8_t)(str[i+1]) >= 0x90 && (uint8_t)(str[i+1]) <= 0xBF ){str[j] = (uint8_t) str[i+1]+ 0x30; i++;}else // Символы «А-Я а-п» (код UTF-8: D090-D0AF D0B0-D0BF) сохраняем в кодировке : код 80-9F A0-AF (символ занимал 2 байта, а стал занимать 1 байт)
if((uint8_t)(str[i]) == 0xD1 && (uint8_t)(str[i+1]) >= 0x80 && (uint8_t)(str[i+1]) <= 0x8F ){str[j] = (uint8_t) str[i+1]+ 0x70; i++;}else // Символы «р-я» (код UTF-8: D180-D18F) сохраняем в кодировке : код E0-EF (символ занимал 2 байта, а стал занимать 1 байт)
if((uint8_t)(str[i]) == 0xD0 && (uint8_t)(str[i+1]) == 0x81 ){str[j] = 0xA8; i++;}else // Символ «Ё» (код UTF-8: D081) сохраняем в кодировке : код F0 (символ занимал 2 байта, а стал занимать 1 байт)
if((uint8_t)(str[i]) == 0xD1 && (uint8_t)(str[i+1]) == 0x91 ){str[j] = 0xB8; i++;}else // Символ «ё» (код UTF-8: D191) сохраняем в кодировке : код F1 (символ занимал 2 байта, а стал занимать 1 байт)
{str[j] = (uint8_t) str[i];} j++; i++; // Остальные символы оставляем как есть, без преобразования, но их место в строке могло сдвинуться, если до них были встречены русские символы
} while(j<i){str[j]=0; j++;} return str; // Так как место занимаемое символами в строке могло уменьшиться, заполняем оставщиеся байты символами конца строки (код 0)
}
Вызов RUS(массив с текстом);Есть проблема с другой кодировкой но попробую разобрасться и сней попозже.
Вставлять можно и впередатчик и вприёмник. Я встроил в STM32. Это аналог вот этого но у меня string неработает это похоже только для arduino idi( может и не прав но спросить некого).
String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source[i]; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
break;
}
case 0xD1: {
n = source[i]; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}
Согласен, но плей/стоп отрабатывает нормально. Значит управление работает...
ps - mute, unmute, громкость не работают. и еще одна особенность - если переходить между станциями, то в логе - Request http://xxxxx/ failed!, а если вставить в строку для станции - то играет.
В-общем, если у вас мысли по поводу управления vs-кой?
Пришла мне вторая красная vs , при подключении она играла но ползунки регулировки в карадио не работали. Пропаял и промыл плату , всё заработало нормально. Так что и красные платы иногда с грешком.
Владимир 2018, shurik12330 вы русифицировали свои девайсы только заменой шрифта? а карадио в порт по русски говорит?
phoenix75 вы какой экран русифицировали?
Я тут бьюсь со своим "пультом" - с 1602 все путем, а с "маркой" ssd1306 засада - u8g не компилируется под 8266, тока u8g2. С обычным шрифтом кракозябры, со шрифтом с приставкой "cyrillic" - вообще пустота, и с конвертером и без. Киньте файло со шрифтом "правильным" отдельно плиз.
Еще вопрос - на марке скроллинг работает? Корректно?
в edzelf 8266 в варианте без дисплея можно использоватьеще 2 кнопки (GPIO2 GPIO15) для перехода между станциями. как их назначить на управление громкостью?
Вот полный комплект используемых библиотек и обновленный скетч https://yadi.sk/d/Xo6HaX3E3QKeRt. В скетче поменял скорость softwareserial на 28800 бод и так, мелкие изменения. Я заливал скетч в arduino mini.
Все работает хорошо, каждое утро срабатывает будильник, правда по началу часы торопились на 10 минут в сутки. Пришлось заменить саму DS1307 (у меня не готовый модуль, а в исполнеии DIP-8), и на всякий случай заземлил корпус кварца. Сейчас вроде все нормально стало.
В скетче скорость по прежнему стоит 9600, а на экране концовка строк накладывается на начало...Кто-то уже спрашивал причину, пост #2454, так и не нашел ответа.
Владимир 2018, shurik12330 вы русифицировали свои девайсы только заменой шрифта? а карадио в порт по русски говорит?
phoenix75 вы какой экран русифицировали?
Я тут бьюсь со своим "пультом" - с 1602 все путем, а с "маркой" ssd1306 засада - u8g не компилируется под 8266, тока u8g2. С обычным шрифтом кракозябры, со шрифтом с приставкой "cyrillic" - вообще пустота, и с конвертером и без. Киньте файло со шрифтом "правильным" отдельно плиз.
Еще вопрос - на марке скроллинг работает? Корректно?
Я использовал кастомную прошивку, которую вы мне давали, с ней у меня в вебморде и в порт все было корректно по-русски. Экран у меня 0,96 OLED I2C.Скроллинг работает корректно. Либа заработала у меня только та, что тоже вы мне давали u8glib. С гитхаба не компилировалось.
Подменял u8g_font_data.c и заменял шрифт.
Пока я в командировке, только завтра вечером смогу посмотреть свои файлы и скинуть.
в edzelf 8266 в варианте без дисплея можно использоватьеще 2 кнопки (GPIO2 GPIO15) для перехода между станциями. как их назначить на управление громкостью?
В этом коде строчки замените на те, которые подписаны по русски.
#if ( not ( defined ( USETFT ) ) )
newval = digitalRead ( BUTTON1 ) ; // Test if below certain level
if ( newval != oldval1 ) // Change?
{
oldval1 = newval ; // Yes, remember value
if ( newval == LOW ) // Button pushed?
{
ini_block.reqvol += 2 ; // увеличение громкости
if ( ini_block.reqvol > 100 ) ini_block.reqvol = 100; // ограничение
}
return ;
}
// Note that BUTTON3 has inverted input
newval = digitalRead ( BUTTON3 ) ; // Test if below certain level
newval = HIGH + LOW - newval ; // Reverse polarity
if ( newval != oldval3 ) // Change?
{
oldval3 = newval ; // Yes, remember value
if ( newval == LOW ) // Button pushed?
{
ini_block.reqvol -= 2 ; // Уменьшение громкости
if ( ini_block.reqvol < 0) ini_block.reqvol = 0; // ограничение
}
return ;
}
Приветствую всех, коллеги.
Ветку прочёл всю, но тем не менее, прошу совета.
Собрал ESP8266 Edzelf + синяя плата
Что имею: Всё, как у всех. Прошился, собрал, не заработало. Пропаял феном с припоем синюю плату. Заработало.
Но! Проблема. Не могу переключать станции. получаю вот такое:
D: list request from browser
D: Command: uppreset with parameter 1
D: Preset set to 1
D: STOP requested
D: Stopping client
D: Stopping client
D: Stopping client
D: Stopping client
D: Command: reset (without parameter)
D: Stopping client
------------------
D: Stopping client
И всё, зависон. Не стопается клиент, хоть ты умри. Помогает только кнопка Reset на плате. При переключении хардверными кнопками тот же результат.
Command: reset (without parameter) - зто я нажал кнопку Reset в браузере (Mozilla). Ясно, не работает. Висит.
Иногда, если ввожу адрес потока в нижнее поле в веб-интерфесе, то переключает, но очень редко.
Пытался связать эту проблему с видом потока, но не сработало. Ошибка, видимо, имеет иную природу.
Питание: Разное. Сейчас параметрический трансформаторный БП 5V 3А, правильный, результат тот же. Даже на корпуса 0.1 блокировочную керамику припаял.
Если что, то я не программист. Я электронщик-микросхемотехник, правда старый. Ещё со 133-й серией работал.А 214-ю даже немного разрабатывал. О длинных проводах, "гонке сигналов", миллиомах в разъёмах и импульсных помехах знаю из практики.
Но ардуиновский код читаю и пишу. Я и выбрал именно Edzelf вариант потому, что хочу немного изменить его под свою задачу. Но об этом потом, когда решим проблему с переключением станций.
Вопрос: А что делать? Куда копать? Заранее благодарю за участие!
я с проблемой управления разобрался - vs была подключена неправильно. у нее, в отличии от синей, один лишний вывод есть. теперь все в норме. могу выложить
я с проблемой управления разобрался - vs была подключена неправильно. у нее, в отличии от синей, один лишний вывод есть. теперь все в норме. могу выложить
А как VS можно подключить не правильно? Все подписано.
На красных платах стоят кардридеры для SD, поэтому у них присутствует ножка С(hip)S(elect) для SD, которой нету в синей плате. Её (ножку) легко перепутать с XCS.
Приветствую всех, коллеги.
Ветку прочёл всю, но тем не менее, прошу совета.
Собрал ESP8266 Edzelf + синяя плата
Что имею: Всё, как у всех. Прошился, собрал, не заработало. Пропаял феном с припоем синюю плату. Заработало.
Но! Проблема. Не могу переключать станции. получаю вот такое:
D: list request from browser
D: Command: uppreset with parameter 1
D: Preset set to 1
D: STOP requested
D: Stopping client
D: Stopping client
D: Stopping client
D: Stopping client
D: Command: reset (without parameter)
D: Stopping client
------------------
D: Stopping client
И всё, зависон.
Вопрос: А что делать? Куда копать? Заранее благодарю за участие!
Писал ранее, повторюсь: у ESP8266 мало памяти для всего. Можно поиграться с размером кольцевого буфера у Edzelf, я его уменьшил до "#define RINGBFSIZ 15000" - стало стабильнее откликаться.
Не уверен, на сколько там используются прерывания, но я дополнительно везде, все переменные что связаны с буфером (глобальные переменные), делал неизменяемыми с помощью слова "volatile" - хуже точно не будет.
volatile uint8_t* ringbuf ; // Ringbuffer for VS1053
volatile uint16_t rbwindex = 0 ; // Fill pointer in ringbuffer
volatile uint16_t rbrindex = RINGBFSIZ - 1 ; // Emptypointer in ringbuffer
volatile uint16_t rcount = 0 ; // Number of bytes in ringbuffer
версия ESP8266 также имеет значение, хотя бы по размеру памяти. ESP-12F вроде самая жирная.
Писал ранее, повторюсь: у ESP8266 мало памяти для всего. Можно поиграться с размером кольцевого буфера у Edzelf, я его уменьшил до "#define RINGBFSIZ 15000" - стало стабильнее откликаться.
Не уверен, на сколько там используются прерывания, но я дополнительно везде, все переменные что связаны с буфером (глобальные переменные), делал неизменяемыми с помощью слова "volatile" - хуже точно не будет.
volatile uint8_t* ringbuf ; // Ringbuffer for VS1053
volatile uint16_t rbwindex = 0 ; // Fill pointer in ringbuffer
volatile uint16_t rbrindex = RINGBFSIZ - 1 ; // Emptypointer in ringbuffer
volatile uint16_t rcount = 0 ; // Number of bytes in ringbuffer
версия ESP8266 также имеет значение, хотя бы по размеру памяти. ESP-12F вроде самая жирная.
Уважаемый pilnikov, выпилить MQTT я конечно попытаюсь, для начала я его в radio.ini выключил. Главная проблема - мне бы с переключением станций разобраться. Всё работает, не заикается, а станции не переключаются.
Вы разве не в курсе? Это аддон для Карадио(не 32), который позволяет отображать теги и название станций на lcd1602 и SSD1306 на русском. Соединяется с "Базой" по Wifi используя телнет. В перспективе (недалекой) подключу кнопки, джойстик, ИК пульт, энкодер (хотя он мне не нравится). И ртс можно за(до)пилить (очень просто) и будильники и погодную станцию ......
Вы разве не в курсе? Это аддон для Карадио(не 32), который позволяет отображать теги и название станций на lcd1602 и SSD1306 на русском. Соединяется с "Базой" по Wifi используя телнет. В перспективе (недалекой) подключу кнопки, джойстик, ИК пульт, энкодер (хотя он мне не нравится). И ртс можно за(до)пилить (очень просто) и будильники и погодную станцию ......
В курсе, только через дуину по Rx-Tx. Подключен 1.3' экран I2C SH1106 и кнопки, теги и названия по русски.
да, все стандартно I2C GPIO4 (SDA) GPIO5 (SCL) Кнопки посажу наверно по аналогии на аналоговый вход, ИК - GPIO14 Кнопка энкодера GPIO0 сам энкодер GPIO12 GPIO13
Запустил проверку скетча, такие ошибки:
ПРЕДУПРЕЖДЕНИЕ: библиотека LiquidCrystal_I2C должна запускаться на архитектурах (avr) и может быть несовместима с вашей платой на архитектуре (esp8266).
In file included from C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/Encoder.h:46:0,
from sketch\conf.h:32,
from C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\Control.ino:1:
C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:150:2: error: #error "Interrupts are unknown for this board, please add to this code"
#error "Interrupts are unknown for this board, please add to this code"
^
C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:153:2: error: #error "Encoder requires interrupt pins, but this board does not have any :("
#error "Encoder requires interrupt pins, but this board does not have any :("
^
C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:154:2: error: #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
#error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
ПРЕДУПРЕЖДЕНИЕ: библиотека LiquidCrystal_I2C должна запускаться на архитектурах (avr) и может быть несовместима с вашей платой на архитектуре (esp8266).
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\boot.ino: In function 'void firq8()':
boot:84: error: 'ram_data' was not declared in this scope
if (ram_data.type_disp == 1 && disp_on)
^
boot:84: error: 'disp_on' was not declared in this scope
if (ram_data.type_disp == 1 && disp_on)
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void irq_set()':
irq:2: error: redefinition of 'void irq_set()'
void irq_set()
^
boot:2: error: 'void irq_set()' previously defined here
void irq_set()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq1()':
irq:58: error: redefinition of 'void firq1()'
void firq1()
^
boot:58: error: 'void firq1()' previously defined here
void firq1()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq4()':
irq:63: error: redefinition of 'void firq4()'
void firq4()
^
boot:63: error: 'void firq4()' previously defined here
void firq4()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq6()':
irq:67: error: redefinition of 'void firq6()'
void firq6()
^
boot:67: error: 'void firq6()' previously defined here
void firq6()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq7()':
irq:72: error: redefinition of 'void firq7()'
void firq7()
^
boot:71: error: 'void firq7()' previously defined here
void firq7()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq8()':
irq:77: error: redefinition of 'void firq8()'
void firq8()
^
boot:82: error: 'void firq8()' previously defined here
void firq8()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq9()':
irq:88: error: redefinition of 'void firq9()'
void firq9()
^
boot:92: error: 'void firq9()' previously defined here
Но! Проблема. Не могу переключать станции. получаю вот такое:
Да программно там вряд ли косяк какой, собирал edzelf на двух 8266 и на одной esp32, всё прекрасно работает, ну только платы синие подводят. И код правил под себя и MQTT использую, никаких проблем с переключением. Похоже, что после начала проигрывания vs ка перестаёт слушать команды, Вы reset через диоды подключали как в схеме? Мне какжется, что косяк в железе, но понять где не получается, и БП у Вас мощный, и с электроникой дружите - вряд ли ошиблись где. По этой схеме подключали?
А Вы частоту на esp12 не меняли на 160? 80 стоит в ардуине? И попробуйте перед прошивкой очистить чип.
А Вы частоту на esp12 не меняли на 160? 80 стоит в ардуине? И попробуйте перед прошивкой очистить чип.
Уважаемый udavst, всё верно, собирал по этой схеме, с диодами, только мне дисплей не нужен, он в скетче выключен. И с частотами я игрался, и чип чистил. Самое интересное, что все команды проходят, всё работает, но на команды смены станции реагирует неадекватно, клиент становиться не может. Ну Вы видели кусочек моего лога.
Но мне видится проблема в синей плате.
Вот раздобыл только что другую ESPшку. Сейчас её прошью. Не получится - буду синюю плату снова жарить.
Кстати, вот, что еще накопал. Если отключить MISO, то проблема пропадает, но звук становится неприемлемым - булькает, рвётся.
MISO - ответ от VSки, похоже в скетче определяется готовность к новой команде по miso, вот он первую команду посылает, VS-ка заводится но ничего не отвечает, поэтому последующие команды на неё не поступают, это конечно IMHO, я и код уже не помню, давно на 8266 собирал, так кусочки всплывают, а по управлению совсем смутно.
Можно попробовать MISO оторвать, и со стороны ESP подавать на него 0 или 1, и смотреть, возможно при переключении и смене уровня станция переключится.
папку data залили? в config.ino wifi прописали? если да - то можно грузить скеч и пробовать смотреть вебморду
Не заливал ничего, некуда заливать. Да и не вижу пока смысла в этом пульте. Хватает пока и мобильного приложения на телефоне. По размерам на пульт это не будет похоже (плата+питалово). Коробка которую можно оттащить чуть подальше от самого радио? Зачем.
здравствуйте, прошу помощи по edzelf - собрал с новой красной vs (поставил 3х470мкф около AMS1117, убрал микрофон), есть такие баги:
1. не регулируется громкость - в веб изменяю, уровень звука постоянный. если уменьшать, доходит до нуля, потом снова 100 и дальше. перезагрузка, стоп, резюм не помогает.
2. звук имеет очень странный синтетический окрас, трудно описать...или наушники захлебываются, или хрипы очень сильные. наушники пробовал разные, везде одинаково.
Проверьте питание.
спасибо, питание улучшил, звук, кажется стал нормальным. проблема с регулировкой громкости осталась. есть ли еще варианты?
К вопросу об RTC
Это кусок скеча от моего "пульта" - тут используется либа timelib.h Вам у себя нужно дописать строчку сохранения таймстамп в DS (аналогично setTime(makeTime(dt))), а потом еще и сюда же сделать чтение этого таймстампа из DS при необходимости (что то типа dt = getTime())
вот тут https://github.com/pilnikov/ESP8266WeatherStations/blob/master/rtc.ino для наглядности (либы timelib.h & rtc by makuna https://github.com/Makuna/Rtc)
функция void man_set_time() записывает текущее время в DS
функция void rtc_check() читает время из DS
Мне всё же кажется непропай, раз VSка команды не слушает. Может и неверное включение, хотя кто его знает, наверняка бы не зпела даже.
Вобщем кому интересно решил свою проблему с русскими буквами так
Вызов RUS(массив с текстом);Есть проблема с другой кодировкой но попробую разобрасться и сней попозже.
Вставлять можно и впередатчик и вприёмник. Я встроил в STM32. Это аналог вот этого но у меня string неработает это похоже только для arduino idi( может и не прав но спросить некого).
Согласен, но плей/стоп отрабатывает нормально. Значит управление работает...
ps - mute, unmute, громкость не работают. и еще одна особенность - если переходить между станциями, то в логе - Request http://xxxxx/ failed!, а если вставить в строку для станции - то играет.
В-общем, если у вас мысли по поводу управления vs-кой?
спасибо
Пришла мне вторая красная vs , при подключении она играла но ползунки регулировки в карадио не работали. Пропаял и промыл плату , всё заработало нормально. Так что и красные платы иногда с грешком.
Владимир 2018, shurik12330 вы русифицировали свои девайсы только заменой шрифта? а карадио в порт по русски говорит?
phoenix75 вы какой экран русифицировали?
Я тут бьюсь со своим "пультом" - с 1602 все путем, а с "маркой" ssd1306 засада - u8g не компилируется под 8266, тока u8g2. С обычным шрифтом кракозябры, со шрифтом с приставкой "cyrillic" - вообще пустота, и с конвертером и без. Киньте файло со шрифтом "правильным" отдельно плиз.
Еще вопрос - на марке скроллинг работает? Корректно?
У меня экран на 10 матрицах (16x40) max7219 и подключён к STM32, в шрифте у меня русские буквы начинаются с адреса C0 до FF.
в edzelf 8266 в варианте без дисплея можно использоватьеще 2 кнопки (GPIO2 GPIO15) для перехода между станциями. как их назначить на управление громкостью?
Вот полный комплект используемых библиотек и обновленный скетч https://yadi.sk/d/Xo6HaX3E3QKeRt. В скетче поменял скорость softwareserial на 28800 бод и так, мелкие изменения. Я заливал скетч в arduino mini.
Все работает хорошо, каждое утро срабатывает будильник, правда по началу часы торопились на 10 минут в сутки. Пришлось заменить саму DS1307 (у меня не готовый модуль, а в исполнеии DIP-8), и на всякий случай заземлил корпус кварца. Сейчас вроде все нормально стало.
В скетче скорость по прежнему стоит 9600, а на экране концовка строк накладывается на начало...Кто-то уже спрашивал причину, пост #2454, так и не нашел ответа.
Владимир 2018, shurik12330 вы русифицировали свои девайсы только заменой шрифта? а карадио в порт по русски говорит?
У меня экран заработал, русифицировал только заменой шрифта.
Мой экран - OLED 0,96", SDD 1306, 128x64,IIC,I2C.
Файл руссифицированного шрифта тут:
http://arduino.ru/forum/proekty/wi-fi-internet-radio#comment-280527
Просто для информации пост:
http://arduino.ru/forum/proekty/wi-fi-internet-radio?page=47#comment-365972
Скетч - ссылка на пост:
http://arduino.ru/forum/proekty/wi-fi-internet-radio?page=48#comment-367235
Владимир 2018, shurik12330 вы русифицировали свои девайсы только заменой шрифта? а карадио в порт по русски говорит?
У меня экран заработал, русифицировал только заменой шрифта.
Мой экран - OLED 0,96", SDD 1306, 128x64,IIC,I2C.
Файл руссифицированного шрифта тут:
http://arduino.ru/forum/proekty/wi-fi-internet-radio#comment-280527
Просто для информации пост:
http://arduino.ru/forum/proekty/wi-fi-internet-radio?page=47#comment-365972
Скетч - ссылка на пост:
http://arduino.ru/forum/proekty/wi-fi-internet-radio?page=48#comment-367235
Владимир 2018, shurik12330 вы русифицировали свои девайсы только заменой шрифта? а карадио в порт по русски говорит?
phoenix75 вы какой экран русифицировали?
Я тут бьюсь со своим "пультом" - с 1602 все путем, а с "маркой" ssd1306 засада - u8g не компилируется под 8266, тока u8g2. С обычным шрифтом кракозябры, со шрифтом с приставкой "cyrillic" - вообще пустота, и с конвертером и без. Киньте файло со шрифтом "правильным" отдельно плиз.
Еще вопрос - на марке скроллинг работает? Корректно?
Я использовал кастомную прошивку, которую вы мне давали, с ней у меня в вебморде и в порт все было корректно по-русски. Экран у меня 0,96 OLED I2C.Скроллинг работает корректно. Либа заработала у меня только та, что тоже вы мне давали u8glib. С гитхаба не компилировалось.
Подменял u8g_font_data.c и заменял шрифт.
Пока я в командировке, только завтра вечером смогу посмотреть свои файлы и скинуть.
g и g2 шрифты не совместимы. Я тут тему почитал - и тут http://arduino.ru/forum/proekty/wi-fi-internet-radio?page=18#comment-337057 и тут http://arduino.ru/forum/proekty/wi-fi-internet-radio?page=4#comment-287494. В варианте с карадио32 прокатывает, в моем - нет. Нужен шрифт с расположением кириллицы по адресам с 0хC0H, а в стандартных шрифтах она с 0х410Н. Либо редактор нужен для шрифта u8g2
не понимаю - почему после вкл-выкл питание карадио на esp32 иногда включается с IP 192.168.4.2
как это исправить ?
в веб установлены IP 192.168.1.6 и IP 192.168.1.31
лог вам ответит
В этом коде строчки замените на те, которые подписаны по русски.
лог вам ответит
после вкл-выкл питания
device->current_ap: 2
после вкл-выкл питания
device->current_ap: 2
имхуется мне, что часть лога вы от нас утаили, а в ней самое интересное
Приветствую всех, коллеги.
Ветку прочёл всю, но тем не менее, прошу совета.
Собрал ESP8266 Edzelf + синяя плата
Что имею: Всё, как у всех. Прошился, собрал, не заработало. Пропаял феном с припоем синюю плату. Заработало.
Но! Проблема. Не могу переключать станции. получаю вот такое:
И всё, зависон. Не стопается клиент, хоть ты умри. Помогает только кнопка Reset на плате. При переключении хардверными кнопками тот же результат.
Command: reset (without parameter) - зто я нажал кнопку Reset в браузере (Mozilla). Ясно, не работает. Висит.
Иногда, если ввожу адрес потока в нижнее поле в веб-интерфесе, то переключает, но очень редко.
Пытался связать эту проблему с видом потока, но не сработало. Ошибка, видимо, имеет иную природу.
Питание: Разное. Сейчас параметрический трансформаторный БП 5V 3А, правильный, результат тот же. Даже на корпуса 0.1 блокировочную керамику припаял.
Если что, то я не программист. Я электронщик-микросхемотехник, правда старый. Ещё со 133-й серией работал.А 214-ю даже немного разрабатывал. О длинных проводах, "гонке сигналов", миллиомах в разъёмах и импульсных помехах знаю из практики.
Но ардуиновский код читаю и пишу. Я и выбрал именно Edzelf вариант потому, что хочу немного изменить его под свою задачу. Но об этом потом, когда решим проблему с переключением станций.
Вопрос: А что делать? Куда копать? Заранее благодарю за участие!
я с проблемой управления разобрался - vs была подключена неправильно. у нее, в отличии от синей, один лишний вывод есть. теперь все в норме. могу выложить
я с проблемой управления разобрался - vs была подключена неправильно. у нее, в отличии от синей, один лишний вывод есть. теперь все в норме. могу выложить
А как VS можно подключить не правильно? Все подписано.
На красных платах стоят кардридеры для SD, поэтому у них присутствует ножка С(hip)S(elect) для SD, которой нету в синей плате. Её (ножку) легко перепутать с XCS.
shurik12330 а запилите видос работы скролинга, да и вообще процесс работы экрана("марки") 0,96 в оригинальном аддоне
Приветствую всех, коллеги.
Ветку прочёл всю, но тем не менее, прошу совета.
Собрал ESP8266 Edzelf + синяя плата
Что имею: Всё, как у всех. Прошился, собрал, не заработало. Пропаял феном с припоем синюю плату. Заработало.
Но! Проблема. Не могу переключать станции. получаю вот такое:
И всё, зависон.
Вопрос: А что делать? Куда копать? Заранее благодарю за участие!
Писал ранее, повторюсь: у ESP8266 мало памяти для всего. Можно поиграться с размером кольцевого буфера у Edzelf, я его уменьшил до "#define RINGBFSIZ 15000" - стало стабильнее откликаться.
Не уверен, на сколько там используются прерывания, но я дополнительно везде, все переменные что связаны с буфером (глобальные переменные), делал неизменяемыми с помощью слова "volatile" - хуже точно не будет.
версия ESP8266 также имеет значение, хотя бы по размеру памяти. ESP-12F вроде самая жирная.
Писал ранее, повторюсь: у ESP8266 мало памяти для всего. Можно поиграться с размером кольцевого буфера у Edzelf, я его уменьшил до "#define RINGBFSIZ 15000" - стало стабильнее откликаться.
Не уверен, на сколько там используются прерывания, но я дополнительно везде, все переменные что связаны с буфером (глобальные переменные), делал неизменяемыми с помощью слова "volatile" - хуже точно не будет.
версия ESP8266 также имеет значение, хотя бы по размеру памяти. ESP-12F вроде самая жирная.
Благодарю, dtvims, сейчас попробую.
Нет, dtvims, это не помогло...
Если бы из скетча MQTT выпилить...
Нет, dtvims, это не помогло...
Если бы из скетча MQTT выпилить...
Кто не дает? Выпиливать проще чем запиливать ;) Начние с #include - а там по цепочке
Налетай - подешевело https://github.com/pilnikov/Karadio-addon-lcd1602-rus
Обновленная версия "пульта" для Карадио (пока в варианте "телевизор"). Добавлен SSD1306 (c русским!).
У кого есть "лишняя" ESP8266 - велкам в тестеры.
Уважаемый pilnikov, выпилить MQTT я конечно попытаюсь, для начала я его в radio.ini выключил. Главная проблема - мне бы с переключением станций разобраться. Всё работает, не заикается, а станции не переключаются.
Налетай - подешевело https://github.com/pilnikov/Karadio-addon-lcd1602-rus
Обновленная версия "пульта" для Карадио (пока в варианте "телевизор"). Добавлен SSD1306 (c русским!).
У кого есть "лишняя" ESP8266 - велкам в тестеры.
А поподробнее, что за пульт?
А поподробнее, что за пульт?
Вы разве не в курсе? Это аддон для Карадио(не 32), который позволяет отображать теги и название станций на lcd1602 и SSD1306 на русском. Соединяется с "Базой" по Wifi используя телнет. В перспективе (недалекой) подключу кнопки, джойстик, ИК пульт, энкодер (хотя он мне не нравится). И ртс можно за(до)пилить (очень просто) и будильники и погодную станцию ......
Вы разве не в курсе? Это аддон для Карадио(не 32), который позволяет отображать теги и название станций на lcd1602 и SSD1306 на русском. Соединяется с "Базой" по Wifi используя телнет. В перспективе (недалекой) подключу кнопки, джойстик, ИК пульт, энкодер (хотя он мне не нравится). И ртс можно за(до)пилить (очень просто) и будильники и погодную станцию ......
В курсе, только через дуину по Rx-Tx. Подключен 1.3' экран I2C SH1106 и кнопки, теги и названия по русски.
В курсе, только через дуину по Rx-Tx. Подключен 1.3' экран I2C SH1106 и кнопки, теги и названия по русски.
А этот по воздуху. И дисплеи на выбор
А этот по воздуху. И дисплеи на выбор
Вот и хотел подробнее, схема включения и т.д. Я так понимаю еще одна ESP-шка и все цепляется к ее пинам?
да, все стандартно I2C GPIO4 (SDA) GPIO5 (SCL) Кнопки посажу наверно по аналогии на аналоговый вход, ИК - GPIO14 Кнопка энкодера GPIO0 сам энкодер GPIO12 GPIO13
да, все стандартно I2C GPIO4 (SDA) GPIO5 (SCL) Кнопки посажу наверно по аналогии на аналоговый вход, ИК - GPIO14 Кнопка энкодера GPIO0 сам энкодер GPIO12 GPIO13
Запустил проверку скетча, такие ошибки:
ПРЕДУПРЕЖДЕНИЕ: библиотека LiquidCrystal_I2C должна запускаться на архитектурах (avr) и может быть несовместима с вашей платой на архитектуре (esp8266).
In file included from C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/Encoder.h:46:0,
from sketch\conf.h:32,
from C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\Control.ino:1:
C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:150:2: error: #error "Interrupts are unknown for this board, please add to this code"
#error "Interrupts are unknown for this board, please add to this code"
^
C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:153:2: error: #error "Encoder requires interrupt pins, but this board does not have any :("
#error "Encoder requires interrupt pins, but this board does not have any :("
^
C:\Users\sharkoav\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:154:2: error: #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
#error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
^
перезалил на гитхаб - перекачайте и пробуйте
перезалил на гитхаб - перекачайте и пробуйте
Еще больше ошибок:
ПРЕДУПРЕЖДЕНИЕ: библиотека LiquidCrystal_I2C должна запускаться на архитектурах (avr) и может быть несовместима с вашей платой на архитектуре (esp8266).
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\boot.ino: In function 'void firq8()':
boot:84: error: 'ram_data' was not declared in this scope
if (ram_data.type_disp == 1 && disp_on)
^
boot:84: error: 'disp_on' was not declared in this scope
if (ram_data.type_disp == 1 && disp_on)
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void irq_set()':
irq:2: error: redefinition of 'void irq_set()'
void irq_set()
^
boot:2: error: 'void irq_set()' previously defined here
void irq_set()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq1()':
irq:58: error: redefinition of 'void firq1()'
void firq1()
^
boot:58: error: 'void firq1()' previously defined here
void firq1()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq4()':
irq:63: error: redefinition of 'void firq4()'
void firq4()
^
boot:63: error: 'void firq4()' previously defined here
void firq4()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq6()':
irq:67: error: redefinition of 'void firq6()'
void firq6()
^
boot:67: error: 'void firq6()' previously defined here
void firq6()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq7()':
irq:72: error: redefinition of 'void firq7()'
void firq7()
^
boot:71: error: 'void firq7()' previously defined here
void firq7()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq8()':
irq:77: error: redefinition of 'void firq8()'
void firq8()
^
boot:82: error: 'void firq8()' previously defined here
void firq8()
^
C:\Users\sharkoav\Documents\Arduino\Karadio-addon-lcd1602-rus-master\Control\irq.ino: In function 'void firq9()':
irq:88: error: redefinition of 'void firq9()'
void firq9()
^
boot:92: error: 'void firq9()' previously defined here
void firq9()
^
Да программно там вряд ли косяк какой, собирал edzelf на двух 8266 и на одной esp32, всё прекрасно работает, ну только платы синие подводят. И код правил под себя и MQTT использую, никаких проблем с переключением. Похоже, что после начала проигрывания vs ка перестаёт слушать команды, Вы reset через диоды подключали как в схеме? Мне какжется, что косяк в железе, но понять где не получается, и БП у Вас мощный, и с электроникой дружите - вряд ли ошиблись где. По этой схеме подключали?
А Вы частоту на esp12 не меняли на 160? 80 стоит в ардуине? И попробуйте перед прошивкой очистить чип.
to ShAlex13 boot.ino у себя удалите
to ShAlex13 boot.ino у себя удалите
Ок. теперь без ошибок.
папку data залили? в config.ino wifi прописали? если да - то можно грузить скеч и пробовать смотреть вебморду
Поспешил с вопросом....
shurik12330 а запилите видос работы скролинга, да и вообще процесс работы экрана("марки") 0,96 в оригинальном аддоне
https://youtu.be/QX1gH85DSZs
А Вы частоту на esp12 не меняли на 160? 80 стоит в ардуине? И попробуйте перед прошивкой очистить чип.
Уважаемый udavst, всё верно, собирал по этой схеме, с диодами, только мне дисплей не нужен, он в скетче выключен. И с частотами я игрался, и чип чистил. Самое интересное, что все команды проходят, всё работает, но на команды смены станции реагирует неадекватно, клиент становиться не может. Ну Вы видели кусочек моего лога.
Но мне видится проблема в синей плате.
Вот раздобыл только что другую ESPшку. Сейчас её прошью. Не получится - буду синюю плату снова жарить.
Кстати, вот, что еще накопал. Если отключить MISO, то проблема пропадает, но звук становится неприемлемым - булькает, рвётся.
MISO - ответ от VSки, похоже в скетче определяется готовность к новой команде по miso, вот он первую команду посылает, VS-ка заводится но ничего не отвечает, поэтому последующие команды на неё не поступают, это конечно IMHO, я и код уже не помню, давно на 8266 собирал, так кусочки всплывают, а по управлению совсем смутно.
Можно попробовать MISO оторвать, и со стороны ESP подавать на него 0 или 1, и смотреть, возможно при переключении и смене уровня станция переключится.
на синей плате нету подтягивающих резюков по SPI (так владельцы писали) - звякните - если действительно нет - есть смысл добавить
папку data залили? в config.ino wifi прописали? если да - то можно грузить скеч и пробовать смотреть вебморду
Не заливал ничего, некуда заливать. Да и не вижу пока смысла в этом пульте. Хватает пока и мобильного приложения на телефоне. По размерам на пульт это не будет похоже (плата+питалово). Коробка которую можно оттащить чуть подальше от самого радио? Зачем.