ESP, IoT [BigClock] Большие часы на WS2812, ESP8266, Народный мониторинг

Какой вариант датчика используется у вас? Интересно, использует ли кто BME280, как у меня?)

  • BMP280

    Голосов: 23 29.1%
  • BME280

    Голосов: 56 70.9%

  • Всего проголосовало
    79
[BigClock] Большие часы на WS2812, ESP8266, Народный мониторинг
Создаю отдельную тему по разработке прошивки на базе NodeMCU.

Мой проект сделан на ДВП, на нее наклеил ленту, объем цифрам сделал из сэндвич панели, поверх белый лист бумаги.
Корпус из дерева, покрашен акриловой краской, смесь белой и коричневой.

Данная прошивка проверяет время по NTP, часы RTC теоретически не нужны.
Барометр на базе BME280.
Имеется датчик освещенности и датчик DS18B20
Clock_схема.pngсхема пайки.jpgClock_схема3.jpg
Плата: NodeMCU 1.0 (ESP 12-E Module)
Если в качестве микроконтроллера вы используете Wemos D1 - в менеджере плат для компиляции все равно выбирайте "NodeMCU v1.0 (ESP-12E)", в противном случае, если выберете плату Wemos D1 (xxxx), - будет работать нестабильно.
Выбирайте ядро ESP версии 2.7.4.

ESP8266 (SDK v2.7+)

Необходимые библиотеки находим в репозитории программы IDE.
Настраиваем прошивку под себя, если нужно, меняем пароли для точки и OTA, WiFi можно не задавать.

Если не задавали настройки WiFi, то стартует точка, адрес стандартный 192.168.4.1 пароль по умолчанию administrator, задавать не менее 8 символов, иначе название точки не отобразится, а будет ее внутреннее имя, типа ESP12345.
Адрес портала http://clock.local/ или по IP адресу, выданному роутером.
Данные для OTA: имя: admin пароль: pass

Для подключения к сервису "Народный мониторинг" MAC адрес отображается на соответствующей странице, вводите этот адрес при регистрации устройства.

Новая версия на гитхаб, последние изменения и публикация свежих версий будет там)

Версия от 16.04.2023 CLOCK_ESP_2.0:
  • оптимизация под новый портал
  • переделано давление с инт на флоат для мониторинга
  • переделан интерфейс на UI
  • добавлена ручная синхронизация времени
  • заменена библиотека rtc на microDS3231
  • багфиксы)
  • добавлена в код точка, для десятичного знака уличной температуры
  • добавлена строка с версией прошивки
  • исправление даты
  • добавление DFPlayer, спасибо: @Maxx1200 и @Romshteks
  • добавлен режим с датой (номер 5)
  • обновлена библиотека EEManager (сбросятся настройки!!!)
  • добавлен режим с показом первого нуля в часах
  • добавлена возможность устанавливать цветовое оформление в настройках прошивки, визуальные правки
  • fix GMT
  • заменены библиотеки датчиков
  • визуальные правки
  • может что-то еще))
Проект на гитхаб со всеми библиотеками и mp3
  • Дофига изменений))
  • Появилась web страничка с настройками на базе GyverPortal.
  • Изменены библиотеки.
  • Переписан код, распределил по вкладкам.
исправлено:
  • баг со сменой цвета на последней цифре
добавлен
  • символ давления, включать в настройках
исправлено:
  • переделан вывод сегментов
  • переделана функция показа точек
добавлено:
  • выбор режима мигания секунд 1 и 2 раза в сек
  • можно вручную задать порядок отображения датчиков и время показа каждого датчика
  • откл. WiFi без мониторинга
  • корректировка показания датчиков
внедрение датчика BME280, добавлен режим влажности с возможностью включить символ проценты
[*]багфиксы
багфиксы
незначительные изменения кода (настройки под себя и комментарии)
  • все настройки вынесены в Constants, вроде:)
  • добавлен web сервер, для обновления через браузер, изначально прошить через кабель, потом можете вносить изменения под себя и обновляться через бинарный файл
  • добавлены библиотеки
  • изменение в коде, из-за выноса настроек:)
  • добавлен НГ режим :)
  • возможно исправлена анимация, про которую писали, с точками и цифрами :)
  • теперь при запуске часов идет проверка с датчика времени, и если все ОК, то запускаются часы без синхронизации
  • исправлена функция освещенности заменой switch на if/else
  • подправлен код с switch в других местах
Увидел в коде небольшую ошибку с НГ режимом, не важно, включен он или нет, все равно будет) только разными методами)
leds[cursor] = (digit & mask) ? CHSV(random(0, 255), random(0, 255), random(0, 255)) : CRGB (0, 0, 0);
leds[cursor] = (digit & mask) ? ledColor : CRGB (0, 0, 0);
  • исправлен НГ режим
  • отключена точка доступа за ненадобностью
  • оптимизирован код
  • выбор в настройках кол-во разделительных точек
  • можно запускать с RTC модулем и без него
  • изменена библиотека NTP
  • поправлен код :)
Внимание: у кого мигает первый светодиод, необходимо изменить ядро ESP на 2.7.4 (инструменты/Плата/Менеджер плат).
Новые версии нестабильные на октябрь 2021г.
 

Вложения

Изменено:

Комментарии

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@maloir, ... Лента живёт... Потому что минус(GND) внешнего блока питания нужно подключить к минусу(GND)платы Ардуино или esp и тогда будет всё работать
 
  • Лойс +1
Реакции: maloir и Сотнег

kuzmichept

✩✩✩✩✩✩✩
5 Фев 2024
13
1
Доброго времени суток всем. Просветите, пожалуйста по такой ошибке:

c:\Users\1\Documents\Arduino\libraries\arduinoWebSockets-master\src\WebSocketsServer.cpp: In member function 'void WebSocketsServer::handleNewClients()':
c:\Users\1\Documents\Arduino\libraries\arduinoWebSockets-master\src\WebSocketsServer.cpp:658:86: error: 'class WiFiServer' has no member named 'accept'
WEBSOCKETS_NETWORK_CLASS * tcpClient = new WEBSOCKETS_NETWORK_CLASS(_server->accept());
^

exit status 1

Compilation error: exit status 1
 

Вложения

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@kuzmichept, На библиотеку ругается. Обновите библиотеку "arduinoWebSockets-master", сейчас специально проверил на IDE 2.2.1 всё компилируется
 

Vitek1412

✩✩✩✩✩✩✩
13 Ноя 2023
1
2
Неделю на мог скомпилировать. У меня Win 7 64,Arduino 1.8.15. Менял библиотеки, мучился. Теперь всё компилируется без ошибок и CLOCK_ESP_2.0-main и BigClock.
Надо удалить все папки библиотек из C:\Users\ (имя пользователя) \Documents\Arduino\libraries и скопировать туда папки библиотек из прикреплённого архива https://cloud.mail.ru/public/fBB2/f29ihCuCU (сюда не загружается, слишком большой).
 
  • Лойс +1
Реакции: kuzmichept и Влад78

kuzmichept

✩✩✩✩✩✩✩
5 Фев 2024
13
1
Спасибо, скомпилировалось с 2.4.0 версией. У меня была 2.4.1, причем в двух папках. Чистить надо лучше.
 
Изменено:

maloir

★✩✩✩✩✩✩
14 Сен 2019
131
39
Ребята подскажите, а можно вместо этих часов
1102.jpg
подключить эти
RTC_DS1307_Module.jpg
без изменений в скетче они будут работать?
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@maloir, Подключал 1307, работало и время выводило(правда на стенде) ничего в коде не менял
 
  • Лойс +1
Реакции: maloir

Влад78

✩✩✩✩✩✩✩
6 Июн 2023
28
0
@Влад78,
День дорбрый.
Что-то снова постигла меня ошибка при компиляции. И библиотеки из архива выше, и вроде все подчистил....
Выдает ошибку FastLED такую:
////
C:\ROBOT\ROOM CLOCK\LAST CLOCK\BigClock\BigClock.ino:75:64: required from here
c:\ROBOT\SD\libraries\FastLED\src/fastpin.h:210:2: error: static assertion failed: Invalid pin specified
static_assert(validpin(), "Invalid pin specified");
exit status 1

В константах изменил пин ленты на 12 (Gpio12) стоял ранее 6. По такому-же принципу сменил наименование пина для Ds18b20 был D5 поставил 14 (Gpio14)... не могу понять что не так...

UPD: На другом компе поменял только кол-во светодиодов в сегменте, залилось.
Поясните пжлст - почему на фоторезистор указываем ПИН d5, а на ленту просто 6 ? (прошу не пинать)
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@Влад78, проблема извечная у разных версий и совместимости с ESP8266 и ядром 2.7.4
нужно в настройках поменять pin c #define LED_PIN 6 на #define LED_PIN D6
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
я вообще под часы отдельную поставил ARDUINO 1.8.19, нормально всё компилируется и прошивается теперь
 
  • Лойс +1
Реакции: kym13

Влад78

✩✩✩✩✩✩✩
6 Июн 2023
28
0
@ASM,
Так вот я тоже так думал и делал, НО стоит прописать D6 - так сразу ошибка библиотеки выскакивает, а если оставить как есть 6 - компилируется... Причем пин Далласа стоит как d5 и съедается нормально при компиляции, а вот пин управляющий лентой - чудит и все тут...

UPD: Бегло прочел всю тему - вопрос с именованием пинов периодически поднимался и были проблемы с библиотеками (при соблюдении условий выбор в IDE NodeMCU v1.0 (ESP-12E))
Сейчас у меня IDE 1.8.19 библиотеки из архива с предыдущей страницы, в константах изменил кол-во светодиодов в сегменте. МК Nodemcu ESP8266 noname. После долгих чисток IDE (замены версий и чистки библиотек), залил в МК прошивку, но не стартует BigClock точка чтобы подключиться к МК, бьюсь далее.... развернул стенд все подключил - лента/экран часов не светится даже.... Разобрал стенд.
Позже глянул в порт, увидел IP, по нему через Хаб зашел на часы (точнее на МК). Было поздно уже. Сегодня продолжу тестирование и сборку на макете. С учетом того, что пин управляющий лентой указан как 6 - я так понимаю надо цепляться к Gpio6, а это пин на NodeMCU подписан как CLK.
В общем продолжаю танцевать и управлять пока бубном :)
 
Изменено:

Влад78

✩✩✩✩✩✩✩
6 Июн 2023
28
0
@ASM, возможно до меня дошло по пинам - скорее всего в библиотеках Далласа и FastLED идет такое укаазание, что даллас понимает D5, FastLED понимает только цифру без D. Если так - все становится на свои места....
Но вот что-то никак не заставлю светиться ленту.... Пока тестирую на куске ленты (22 светика), подключаю МК в порт юсб компа к нему же на Vin GND питание ленты, и упавление на D6 через резистор, в хабе видны часы, а вот лента никак не реагирует...
 

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@Влад78, так "Vin" это вход для внешнего напряжения, а не выход. А вообще этот проект уже вылизан, проверен и повторен 100500 раз и проблем не было это должно навести Вас на мысль что "косяк" не в коде, а в Вашем железе или среде IDE. И ещё не нужно ленту запитывать от платы, лучше питание брать "ДО" платы, а если источники питания разные то нужно объеденить их минусы"GND", а "плюсы" подавать каждый на свой потребитель.
 
Изменено:
  • Лойс +1
Реакции: maloir

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
FastLED понимает только цифру без D
да, так и есть) в новых ядрах и библиотеках это все поправили... жду релиза новой библиотеки у хаба, там уже буду проверять)
Но вот что-то никак не заставлю светиться ленту...
Открой любой пример из FastLED, измени кол-во светодиодов в ленте и проверь, если все будет работать, уже ищи проблему тут)
 
  • Лойс +1
Реакции: kym13

Влад78

✩✩✩✩✩✩✩
6 Июн 2023
28
0
@kym13,
Вот спасибо!!! Действительно именно на этой плате и нет там 5в. На другой такой-же плате (другой производитель правда) лента включается.... И чего я сразу не проверил....
И как итог действительно " а ларчик просто открывался...."
@ASM, Подал питание на ленту - началась цветомузыка.... Осталось разобраться с питанием!
СПАСИБО!
На будущее учту - что в китайских платах NodeMCU от разных производителей не все одинаково....
 

Влад78

✩✩✩✩✩✩✩
6 Июн 2023
28
0
@kym13,
спасибо. Я это помню. Просто в обед уделил 10 минут часам, вы направили меня на мой косяк с питанием ленты и когда подал питание - увидел оживание ленты. Тут я понял - что вечером все должно получиться. При тесте в обед лента питалась отдельно, МК отдельно. Минусы объединил, мерцать перестала, но сегменты были разноцветными. В этом думаю разберусь еще. В любом случае тут очень отзывчивые люди.
 

alex1976

✩✩✩✩✩✩✩
27 Фев 2022
5
0
По звуку разобрался,дин не к тому пину припаял, только вот с автояркостью проблема. Фоторезистор менял, резисторы тоже разные пробовал, в прложении тоже настройки крутил, ноль эмоций. Не подскажете где копать?
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
только вот с автояркостью проблема
вот ничего не понятно) в чем проблема, не так работает, или не работает что-то) еще бы понять, какая версия используется)
а то тут кто какую выберет))
 
Изменено:

alex1976

✩✩✩✩✩✩✩
27 Фев 2022
5
0
Не работает . Версия последняя. Пин фоторезистора А0,при затемнении сопротивление возрастает,а яркость светодиодов нет
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Пин фоторезистора А0,при затемнении сопротивление возрастает,а яркость светодиодов нет
если яркость наоборот падает, то поменять местами провода на фоторезисторе...
ну или если используешь последнюю версию, то просто переключить инверсию)
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
Предложения :
  • градация цвета от температур:
    от 0 до -20 голубой
    от -21 до -30 синий
    -31 и ниже фиолетовый
    от +1 до +20 зеленый
    от +21 до +30 оранжевый
    от +31 и выше красный
  • минус ближе к цифре (при показаниях до -9) |:|-|2|
  • Функция выбора цвета часов из 16-24 фиксированных fastled-hue.jpg
 
  • Лойс +1
Реакции: maloir, wulf и kym13