WiFi лампа-будильник. Задания на доработку

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
А вы собираетесь 1.01 под ESP32 портировать? Если да - может когда спортируете со всеми дефайнами для ESP8266 и ESP32 - просто pull request оформите - я его в репозиторий смержу?

Ну или хотя бы уже сделанное для 1.00 смержить, чтоб и под ESP32 и под ESP8266 работало.
"Изменений не много, но есть" - какие-то функциональные доработки?
А что с изменениями библиотеки TM1637?
Какие-то неполадки с функцией "clockTicker()" в файле clock.ino
Перестал нормально работать дисплей TM1637, даже на ESP8266! - вернее он работает - но как-то через пень-колоду и с тормозами :(
Если оставляю старый код в функции то все нормально...
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
А под ESP32 точно собирается?
У меня ругается на <SoftwareSerial.h> - нет такого.
И точно, в C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\ - есть такая папка с файлами, а в
C:\Users\AlVa\AppData\Local\Arduino15\packages\esp32\ - нет такой.
А твоя библа для TM1637 для ESP8266 не пойдет? Может от Гайвера выкинуть, эту одну использовать?
Ммм... Ну да - ее "SoftwareSerial"нужно либо установить, либо скопировать туда.
По поводу библы TM1637 - еще не проверял. Может и заработает. Нужно тестировать
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Ммм... Ну да - ее "SoftwareSerial"нужно либо установить, либо скопировать туда.
По поводу библы TM1637 - еще не проверял. Может и заработает. Нужно тестировать
SoftwareSerial - так она как бы под каждую плату своя, насколько я понимаю. И идет в поставке с библиотекой (ядром) железа.
Для Ардуинок - оно в arduino/hardware/avr находится, для ESP8266 - в его hardware папке...
Не уверен, что его просто так "установить" или скопировать можно.
Неполадки с TM1637 - когда они? Вот в новом объединенном коде и для ESP32 и для ESP8266?
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
SoftwareSerial - так она как бы под каждую плату своя, насколько я понимаю. И идет в поставке с библиотекой (ядром) железа.
Для Ардуинок - оно в arduino/hardware/avr находится, для ESP8266 - в его hardware папке...
Не уверен, что его просто так "установить" или скопировать можно.
Неполадки с TM1637 - когда они? Вот в новом объединенном коде и для ESP32 и для ESP8266?
Да - и там и там. Более того, беру чистую твою прошивку - без моих обновлений (я ее заранее сохранил), полностью настраиваю
пины, матрицу аккаунт wifi. Запускаю и получаю такие же тормоза на TM1637
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Да - и там и там. Более того, беру чистую твою прошивку - без моих обновлений (я ее заранее сохранил), полностью настраиваю
пины, матрицу аккаунт wifi. Запускаю и получаю такие же тормоза на TM1637
А на 1.00? Я делал на макетке без 1637, но я и код относящийся к ней вообще не трогал...
А как ты на ESP32 все это запустил, если SoftwareSerial она не поддерживает?
Я тут поставил https://github.com/plerup/espsoftwareserial
Но оно что-то совсем по другому и описания нет толкового. Из примеров пока не разобрался. Где RX где TX
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
А на 1.00? Я делал на макетке без 1637, но я и код относящийся к ней вообще не трогал...
А как ты на ESP32 все это запустил, если SoftwareSerial она не поддерживает?
Я тут поставил https://github.com/plerup/espsoftwareserial
Но оно что-то совсем по другому и описания нет толкового. Из примеров пока не разобрался. Где RX где TX
1. Да, на версии 1.00 - если вставить код функции clockTicker из версии 1.01 то TM1637 работает криво!

2. Тоже ее поставил espsoftwareserial

В файле GyverLampWiFi_v1.01.ino вместо :
SoftwareSerial mp3Serial;

1.1. поставил:
#if defined(ESP8266)
SoftwareSerial mp3Serial(SRX, STX);
#endif

#if defined(ESP32)
SoftwareSerial mp3Serial;
#endif

1.2. В файле dfplayer.ino в место:
mp3Serial.begin(9600);
поставил:
#if defined(ESP8266)
mp3Serial.begin(9600);
#endif

#if defined(ESP32)
mp3Serial.begin(9600, SRX, STX);
#endif
Вроде работает...
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
1. Да, на версии 1.00 - если вставить код функции clockTicker из версии 1.01 то TM1637 работает криво!

2. Тоже ее поставил espsoftwareserial

В файле GyverLampWiFi_v1.01.ino вместо :
SoftwareSerial mp3Serial;

1.1. поставил:
#if defined(ESP8266)
SoftwareSerial mp3Serial(SRX, STX);
#endif

#if defined(ESP32)
SoftwareSerial mp3Serial;
#endif

1.2. В файле dfplayer.ino в место:
mp3Serial.begin(9600);
поставил:
#if defined(ESP8266)
mp3Serial.begin(9600);
#endif

#if defined(ESP32)
mp3Serial.begin(9600, SRX, STX);
#endif
Вроде работает...
Да, все так же, один - в -один сделал. :)
У меня пока макетка без звука и TM1637 - это буду смотреть позже.
Но пока и Пейнтбол не работает - практически сразу после выбора эффекта перегружается МК.
Стабильно. А один раз видел, когда оверлейные часы при сдвиге пиксели "задваиваются". То есть цифра из сплошного квадрата 3x5 состоят.
Этот эффект не требует оверлея как матрица или огонь? Его туда не нужно включать?
В общем - разбираться и разбираться еще...
Да, у меня матрица 19х9 - может эффект только на 16х16 работает? Или какие-то ограничения есть?
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
Да, все так же, один - в -один сделал. :)
У меня пока макетка без звука и TM1637 - это буду смотреть позже.
Но пока и Пейнтбол не работает - практически сразу после выбора эффекта перегружается МК.
Стабильно. А один раз видел, когда оверлейные часы при сдвиге пиксели "задваиваются". То есть цифра из сплошного квадрата 3x5 состоят.
Этот эффект не требует оверлея как матрица или огонь? Его туда не нужно включать?
В общем - разбираться и разбираться еще...
Да, у меня матрица 19х9 - может эффект только на 16х16 работает? Или какие-то ограничения есть?
О блин... А вот на счет размерности матрицы я не знаю. Но у меня на 16x16 он просто отлично работает. На esp8266 и на esp32
Требует ли эффект оверлея - тоже не знаю :) Но сам эффект какой-то смешанный. Присутствует динамика отдельных групп
пикселей и движение других групп по синусоидам с затуханием. Очень красиво... :)
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
О блин... А вот на счет размерности матрицы я не знаю. Но у меня на 16x16 он просто отлично работает. На esp8266 и на esp32
Требует ли эффект оверлея - тоже не знаю :) Но сам эффект какой-то смешанный. Присутствует динамика отдельных групп
пикселей и движение других групп по синусоидам с затуханием. Очень красиво... :)
Exception 0: Illegal instruction
PC: 0x5ee1d4a8
EXCVADDR: 0x00000000

Decoding stack results
0x40204046: lightBallsRoutine() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/effects.ino line 71
0x40100750: millis() at C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring.cpp line 186
0x40201157: CFastLED::show() (C:\Program Files at x86)\Arduino\libraries\FastLED/FastLED.h line 500
0x4020777f: doEffectWithOverlay(unsigned char) at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/custom.ino line 79
0x4020a7d2: process() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/a_main.ino line 79
0x402020ad: getEffectSpeed(unsigned char) at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/eeprom.ino line 295
0x4020aafc: loop() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/GyverLampWiFi_v1.01.ino line 478
0x4020fa94: loop_wrapper() at C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_main.cpp line 125
Ничего не понимаю... Надо разбираться...

UPD:
71 uint16_t ms = millis();
А чего это оно uint16_t ?
millis() же uint32_t возвращает...
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Exception 0: Illegal instruction
PC: 0x5ee1d4a8
EXCVADDR: 0x00000000

Decoding stack results
0x40204046: lightBallsRoutine() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/effects.ino line 71
0x40100750: millis() at C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring.cpp line 186
0x40201157: CFastLED::show() (C:\Program Files at x86)\Arduino\libraries\FastLED/FastLED.h line 500
0x4020777f: doEffectWithOverlay(unsigned char) at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/custom.ino line 79
0x4020a7d2: process() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/a_main.ino line 79
0x402020ad: getEffectSpeed(unsigned char) at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/eeprom.ino line 295
0x4020aafc: loop() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/GyverLampWiFi_v1.01.ino line 478
0x4020fa94: loop_wrapper() at C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_main.cpp line 125
Ничего не понимаю... Надо разбираться...

UPD:
71 uint16_t ms = millis();
А чего это оно uint16_t ?
millis() же uint32_t возвращает...
UPD2: Поправил на uint32_t - но все равно падает. В случайных местах. Через 1-2 секунды эффекта пейнтбол.
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Так. С функцией clockTicker я разобрался :) Там точно твой косяк. :)
закоммитил и оформил pull request
я там, вроде, только обновление часов/минут добавлял. больше не помню чтоб что-то трогал
без этого часы 0:00 показывают даже если время получено, пока какое-то событие не произойдет
А эффект пейнтбол, похоже, только на квадратных матрицах работает.
На неравносторонних - падает...
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
я там, вроде, только обновление часов/минут добавлял. больше не помню чтоб что-то трогал
без этого часы 0:00 показывают даже если время получено, пока какое-то событие не произойдет
А эффект пейнтбол, похоже, только на квадратных матрицах работает.
На неравносторонних - падает...
Очень жаль... :( Но блин классный он. На 16х16 работает здорово и часы поверх него без проблем показываются.
Вообщем с последним коммитом у меня все заработало на двух платах esp8266 и esp32.
Осталось проверить только работу будильника.
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
Exception 0: Illegal instruction
PC: 0x5ee1d4a8
EXCVADDR: 0x00000000

Decoding stack results
0x40204046: lightBallsRoutine() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/effects.ino line 71
0x40100750: millis() at C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring.cpp line 186
0x40201157: CFastLED::show() (C:\Program Files at x86)\Arduino\libraries\FastLED/FastLED.h line 500
0x4020777f: doEffectWithOverlay(unsigned char) at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/custom.ino line 79
0x4020a7d2: process() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/a_main.ino line 79
0x402020ad: getEffectSpeed(unsigned char) at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/eeprom.ino line 295
0x4020aafc: loop() at D:\DIY\Arduino\Projects\GyverLampWiFi\firmware\GyverLampWiFi_v1.01/GyverLampWiFi_v1.01.ino line 478
0x4020fa94: loop_wrapper() at C:\Users\AlVa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_main.cpp line 125
Ничего не понимаю... Надо разбираться...

UPD:
71 uint16_t ms = millis();
А чего это оно uint16_t ?
millis() же uint32_t возвращает...
Проглядел... Копи-паста так сказать :) Исправляю...
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Проглядел... Копи-паста так сказать :) Исправляю...
Это не поможет. Там эффект на квадратную матрицу рассчитан. Там вылет за границы массива leds[] в случайное место кода, портит его и все падает.
Попробую ограничения поставить и посмотреть как это будет выглядеть у меня.

UPD: Я пейнтбол поправил, закоммитил. Мержить с твоими правками завтра уже буду.
UPD2: Смержил. Поправил код, чтобы использовать одну библиотеку и для ESP32 и ESP8266.
Почему-то для 8266 в библиотеке давало ошибку на #define _1 0xXX и подобным. пришлось переопределить как _1_
 
Изменено:

Alex PAP

★✩✩✩✩✩✩
22 Окт 2019
34
20
56
radiokot.ru
А реально подключить микрофон с АРУ и добавить эффект цветомузыка??
Примерно как тут, микрофон на А0
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
@Alex PAP, Хм... Странно. На esp8266.ru обсуждали проблемы с А0. Пришли к выводу, что с ним не стоит связываться. Возможно что-то поправили в новых модулях, с тех времён?
Тем не менее, у пацана вход А0 работает вроде.
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Проглядел... Копи-паста так сказать :) Исправляю...
А у тебя на ESP32 звуковая карта используется? Попробовал использовать универсально EspSoftwareSerial библиотеку (кстати, ядро 8266 обновилось до 2.6 и там используется именно эта библиотека в новой версии). Так вот с новой этой библиотекой вообще не могу связаться с MP3 плеером. Не видит его и все.
 

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
А у тебя на ESP32 звуковая карта используется? Попробовал использовать универсально EspSoftwareSerial библиотеку (кстати, ядро 8266 обновилось до 2.6 и там используется именно эта библиотека в новой версии). Так вот с новой этой библиотекой вообще не могу связаться с MP3 плеером. Не видит его и все.
Использую ту же самую карточку звука. С твоими параметрами:
mp3Serial.begin(9600, SRX, STX, (SoftwareSerialConfig)SERIAL_8N1, false, 64);
у меня тоже НЕ работает!
Я использовал проще:
mp3Serial.begin(9600, SRX, STX);
И вроде работает. Но ядро 2.6 еще не пробовал.
А вообще завтра буду подробнее ковыряться.
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Использую ту же самую карточку звука. С твоими параметрами:
mp3Serial.begin(9600, SRX, STX, (SoftwareSerialConfig)SERIAL_8N1, false, 64);
у меня тоже НЕ работает!
Я использовал проще:
mp3Serial.begin(9600, SRX, STX);
И вроде работает. Но ядро 2.6 еще не пробовал.
А вообще завтра буду подробнее ковыряться.
Спасибо, попробую твой вариант параметров. У меня две лампы и обе не квадратные матрицы. Одна больше в ширину чем в высоту, другая наоборот. Вчера вечер просидел с ограничениями размещения часов вертикально/горизонтально. Навставлял проверок и ограничений, иначе скетч падает если пытается вывести часы в ориентации, когда они не влазят на "матрицу". Пока не опубликовал.
По поводу 1637. Пока была библиотека от гайвера - в режиме сработавшего будильника яркость индикатора плавно менялась от минимума до максимума - плавная пульсация. В новой версии (кода другая библиотека) в этом случае яркость почему-то скачками - либо максимум, либо минимум. Без промежуточной яркости. То ли в коде что-то поменялось в этом месте (хотя при беглом просмотре вроде норм), то ли библиотека эта новая косячная - не умеет промежуточные яркости. Еще не разобрался...

А у тебя вообще ESP8266 (NodeMCU) в наличии есть? Что-то вообще не понимаю как на ней звук работает. По моим соображениям - не должен. Но работает. А если делать все по правилам - должен, но не работает.
У меня подключения - пин ленты к D2 на NodeMCU, пины D3 и D4 - RX и ТХ. Это физические.
Объявлено в скетче
LED_PIN 2
RX D3
TX D4
И так работает. И звук и на матрице рисуется. Но на NodeMCU - D4 - это константа равная 2.
То есть пин ленты и TX плеера одинаковые - 2; А физически TX подключено к выводу D4; И почему-то работает.
А вот если указываю как по теории правильно (с использованием GPIO)
LED_PIN 4
RX 0
TX 2
Не работает ни матрица, ни звук... Ничего не понимаю....
 
Изменено:

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
Спасибо, попробую твой вариант параметров. У меня две лампы и обе не квадратные матрицы. Одна больше в ширину чем в высоту, другая наоборот. Вчера вечер просидел с ограничениями размещения часов вертикально/горизонтально. Навставлял проверок и ограничений, иначе скетч падает если пытается вывести часы в ориентации, когда они не влазят на "матрицу". Пока не опубликовал.
По поводу 1637. Пока была библиотека от гайвера - в режиме сработавшего будильника яркость индикатора плавно менялась от минимума до максимума - плавная пульсация. В новой версии (кода другая библиотека) в этом случае яркость почему-то скачками - либо максимум, либо минимум. Без промежуточной яркости. То ли в коде что-то поменялось в этом месте (хотя при беглом просмотре вроде норм), то ли библиотека эта новая косячная - не умеет промежуточные яркости. Еще не разобрался...

А у тебя вообще ESP8266 (NodeMCU) в наличии есть? Что-то вообще не понимаю как на ней звук работает. По моим соображениям - не должен. Но работает. А если делать все по правилам - должен, но не работает.
У меня подключения - пин ленты к D2 на NodeMCU, пины D3 и D4 - RX и ТХ. Это физические.
Объявлено в скетче
LED_PIN 2
RX D3
TX D4
И так работает. И звук и на матрице рисуется. Но на NodeMCU - D4 - это константа равная 2.
То есть пин ленты и TX плеера одинаковые - 2; А физически TX подключено к выводу D4; И почему-то работает.
А вот если указываю как по теории правильно (с использованием GPIO)
LED_PIN 4
RX 0
TX 2
Не работает ни матрица, ни звук... Ничего не понимаю....
Привет! По поводу TM1637 - да с плавной яркостью я заметил глючек. Скорее всего там надо параметром подставлять не конкретные не значения от 1 до 7 а как-то по другому. Нужно смотреть функцию TM1637Display::setBrightness.
Да ESP8266 (NodeMCU) есть в наличии. И звук работает на ядре 2.5.2 без проблем. Подключение как на картинках.
На ядре 2.6 при начальной инициализации не видит DFplayer. НО! Берем и вытаскиваем карту памяти из него. И опять вставляем.
Результат такой:
4:52:46.080 -> Card Removed!
14:52:46.080 -> MP3 плеер недоступен.
14:52:48.795 -> Card Inserted!
14:52:48.795 -> Инициализация MP3 плеера.
14:52:53.627 -> Звуков будильника найдено: 2
14:52:53.627 -> Звуков рассвета найдено: 0
видит 2 мелодии будильника (папка 01)и 0 мелодий рассвета (папка 02)
И при этом не проигрывает даже те что нашлись :)))
У меня вопрос - а зачем переходить на версию ядра 2.6? Ведь все работало как надо на обоих МК (ESP8266 и ESP32)...
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Привет! По поводу TM1637 - да с плавной яркостью я заметил глючек. Скорее всего там надо параметром подставлять не конкретные не значения от 1 до 7 а как-то по другому. Нужно смотреть функцию TM1637Display::setBrightness.
Да ESP8266 (NodeMCU) есть в наличии. И звук работает на ядре 2.5.2 без проблем. Подключение как на картинках.
На ядре 2.6 при начальной инициализации не видит DFplayer. НО! Берем и вытаскиваем карту памяти из него. И опять вставляем.
Результат такой:
4:52:46.080 -> Card Removed!
14:52:46.080 -> MP3 плеер недоступен.
14:52:48.795 -> Card Inserted!
14:52:48.795 -> Инициализация MP3 плеера.
14:52:53.627 -> Звуков будильника найдено: 2
14:52:53.627 -> Звуков рассвета найдено: 0
видит 2 мелодии будильника (папка 01)и 0 мелодий рассвета (папка 02)
И при этом не проигрывает даже те что нашлись :)))
У меня вопрос - а зачем переходить на версию ядра 2.6? Ведь все работало как надо на обоих МК (ESP8266 и ESP32)...
1. Я TM1637 вернул к библиотеке Гайвера, причем ее пришлось поменять в плане определения констант _1, _A на _1_, _A_ иначе ошибка компиляции для ESP32 - конфликтует по именам с какими-то макросами. После такого переопределения компилится на обоих платах нормально, зато глюка с яркостью нет.
У Гайвера библиотека пофункциональнее и не глючит с яркостью.
Я реализацию setBrightness посмотрел - практически одинаково, только у гайвера 0x88 добавляется к значению яркости, а в этой - 0x8; Причем я попробовал изменить на 0x88 - эффекта почему-то не дало - все так же рывками. После этого вернулся к Гайверу.

2. С твоим способом инициализации у меня звук появился.
Хотел было уже выкладывать, но...
Но IDE заявило, что есть обновления библиотек. И это библиотека EspSoftwareSerial. Поставил. Опять все сломалось.
Они в обновлении опять переопределили сигнатуры конструктора (он стал совместимым с 2.5.2 и begin() - зачем-то перерасовали местами параметры. Теперь снова несовместимо.
Было begin(9600,RX,TX) - о пропущенный SWSERIAL_8N1 (при указании которого не работало хотя может не из за него, а из заследующих false, 64)
Стало begin(9600,SWSERIAL_8N1,RX,TX) плюс опущенные параметры.
 
Изменено:

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
AndyIP, ты не знаешь как в случае ESP8266 указать, что SoftwareSerial объект нужно брать именно из EspSoftwareSerial библиотеки, а не из библиотек ядра ESP8266 в коих этот класс тоже есть, но более старой версии и не совместимый по сигнатурам вызовов?
Второй вопрос. в ядре ESP8266 есть определения констант версий в core_version.h типа
#define ARDUINO_ESP8266_GIT_VER 0x643ec203
#define ARDUINO_ESP8266_GIT_DESC 2.6.0
#define ARDUINO_ESP8266_RELEASE_2_6_0
#define ARDUINO_ESP8266_RELEASE "2_6_0"
Для 2.5.2 там соответственно разные формы 2.5.2 Как в условной компиляции в чем-то типа #if указать, что если версия
2.5.2 ИЛИ МЕНЬШЕ - использовать вот такой синтаксис обхявления переменной класса
SoftwareSerial mp3Serial(SRX, STX);
А если версия 2.6.0 ИЛИ БОЛЬШЕ - то такой
SoftwareSerial mp3Serial;
Я понимаю как на равенство проверить, но если версия будет 2.5.1 или 2.6.1 - ни одно из равенств не сработает
и переменная вообще не будет известна -> куча ошибок.
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
У меня вопрос - а зачем переходить на версию ядра 2.6? Ведь все работало как надо на обоих МК (ESP8266 и ESP32)...
Ну, это надо принять как данность. Раз версия вышла - значит кто-то ее непременно установит (уже!) и получит кучу ошибок при попытке компиляции. И соответствующий шквал вопросов и заявлений - "проект говно, них..я не работает!".
А значит нужно обеспечить совместимость с разными версиями ядра. И теперь - разными версиями EspSoftwareSerial тоже.
В идеале - на уровне #define чтобы автоматически брались нужные куски кода и пользователю не надо было править руками.
 
  • Лойс +1
Реакции: malec

AndyIP

★★✩✩✩✩✩
3 Июл 2019
91
50
Ну, это надо принять как данность. Раз версия вышла - значит кто-то ее непременно установит (уже!) и получит кучу ошибок при попытке компиляции. И соответствующий шквал вопросов и заявлений - "проект говно, них..я не работает!".
А значит нужно обеспечить совместимость с разными версиями ядра. И теперь - разными версиями EspSoftwareSerial тоже.
В идеале - на уровне #define чтобы автоматически брались нужные куски кода и пользователю не надо было править руками.
Ну круто. Пришли к тому, с чего начали :)
С твоей последней прошивкой TM1637 под ESP32 перестала работать :( Ядро установлено последнее, EspSoftwareSerial тоже.
При загрузке МК в лог пару раз пишет такое:
21:57:47.121 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
21:57:47.121 -> configsip: 0, SPIWP:0xee
21:57:47.121 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
21:57:47.121 -> mode:DIO, clock div:1
21:57:47.121 -> load:0x3fff0018,len:4
21:57:47.121 -> load:0x3fff001c,len:1216
21:57:47.121 -> ho 0 tail 12 room 4
21:57:47.121 -> load:0x40078000,len:9720
21:57:47.156 -> ho 0 tail 12 room 4
21:57:47.156 -> load:0x40080400,len:6352
21:57:47.156 -> entry 0x400806b8
21:57:47.432 ->
21:57:47.432 ->
21:57:47.432 -> GyverLamp-WiFi v.1.01.2019.1111
21:57:48.183 -> Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed)
21:57:48.183 -> Core 1 register dump:
21:57:48.183 -> PC : 0x4014b93c PS : 0x00060034 A0 : 0x800815d4 A1 : 0x3ffbe780
21:57:48.183 -> A2 : 0x3ffc1be0 A3 : 0x00000001 A4 : 0x0b60aa0d A5 : 0x00000000
21:57:48.183 -> A6 : 0x3ffc2708 A7 : 0xffffffff A8 : 0x80081192 A9 : 0x00000001
21:57:48.217 -> A10 : 0x3ffb8690 A11 : 0x3ffbe78c A12 : 0x3ffba264 A13 : 0x0000abab
21:57:48.217 -> A14 : 0x3ffc4354 A15 : 0x3ffba264 SAR : 0x00000010 EXCCAUSE: 0x00000007
21:57:48.217 -> EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
21:57:48.217 -> Core 1 was running in ISR context:
21:57:48.217 -> EPC1 : 0x40087079 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x4014b93c
21:57:48.251 ->
21:57:48.251 -> Backtrace: 0x4014b93c:0x3ffbe780 0x400815d1:0x3ffbe7b0 0x40084dc9:0x3ffbe7d0 0x40087076:0x3ffba190 0x400831e7:0x3ffba1b0 0x400891d5:0x3ffba1d0
21:57:48.251 ->
21:57:48.251 -> Rebooting...
21:57:48.251 -> ets Jun 8 2016 00:22:57
21:57:48.251 ->
21:57:48.251 -> rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
21:57:48.251 -> configsip: 0, SPIWP:0xee
21:57:48.251 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
21:57:48.285 -> mode:DIO, clock div:1
21:57:48.285 -> load:0x3fff0018,len:4
21:57:48.285 -> load:0x3fff001c,len:1216
21:57:48.285 -> ho 0 tail 12 room 4
21:57:48.285 -> load:0x40078000,len:9720
21:57:48.285 -> ho 0 tail 12 room 4
21:57:48.285 -> load:0x40080400,len:6352
21:57:48.285 -> entry 0x400806b8
21:57:48.558 ->
21:57:48.558 ->
21:57:48.558 -> GyverLamp-WiFi v.1.01.2019.1111
21:57:49.310 -> Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed)
21:57:49.310 -> Core 1 register dump:
21:57:49.310 -> PC : 0x4014b93c PS : 0x00060034 A0 : 0x800815d4 A1 : 0x3ffbe780
21:57:49.344 -> A2 : 0x3ffc1be0 A3 : 0x00000001 A4 : 0x0b5d05c9 A5 : 0x00000000
21:57:49.344 -> A6 : 0x3ffc2708 A7 : 0xffffffff A8 : 0x80081192 A9 : 0x00000001
21:57:49.344 -> A10 : 0x3ffb8690 A11 : 0x3ffbe78c A12 : 0x3ffba264 A13 : 0x0000abab
21:57:49.344 -> A14 : 0x3ffc4354 A15 : 0x3ffba264 SAR : 0x00000010 EXCCAUSE: 0x00000007
21:57:49.344 -> EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
21:57:49.378 -> Core 1 was running in ISR context:
21:57:49.378 -> EPC1 : 0x40087087 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x4014b93c
21:57:49.378 ->
21:57:49.378 -> Backtrace: 0x4014b93c:0x3ffbe780 0x400815d1:0x3ffbe7b0 0x40084dc9:0x3ffbe7d0 0x40087084:0x3ffba190 0x400831e7:0x3ffba1b0 0x400891d5:0x3ffba1d0
21:57:49.378 ->
21:57:49.378 -> Rebooting...
21:57:49.378 -> ets Jun 8 2016 00:22:57
21:57:49.378 ->
21:57:49.378 -> rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
21:57:49.413 -> configsip: 0, SPIWP:0xee
21:57:49.413 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
21:57:49.413 -> mode:DIO, clock div:1
21:57:49.413 -> load:0x3fff0018,len:4
21:57:49.413 -> load:0x3fff001c,len:1216
21:57:49.413 -> ho 0 tail 12 room 4
21:57:49.413 -> load:0x40078000,len:9720
21:57:49.413 -> ho 0 tail 12 room 4
21:57:49.413 -> load:0x40080400,len:6352
21:57:49.413 -> entry 0x400806b8
21:57:49.686 ->
21:57:49.686 ->
21:57:49.686 -> GyverLamp-WiFi v.1.01.2019.1111
21:57:50.544 ->
21:57:50.544 -> Подключение к System2.
21:57:51.022 -> WiFi подключен. IP адрес: 10.10.100.50
Дальше грузится и работает.
Все остальное норм. Звук есть.
Ну разьве что эффект "ПЕЙНТБОЛ" теперь работает совсем по другому. Ну хотябы работает...