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
@ASM, У меня последняя версия вообще не компилировалась пока плагин не установил(см.фото) и название библиотеки "LittleFS.h" в скетче не написал маленькими буквами.
 

Вложения

  • 81.9 KB Просмотры: 19

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@kym13, так это само собой) для старых версий иде нужны плагины.

C++:
........................................................
WiFi up ACCESS POINT: Clock_ESP
Start Settings IP: 192.168.4.1
��е удалось подклю��иться к датчику
��е найден модуль ��асов RTC
подключил к голой плате, спустя минуту стартует точка.
но т.к. датчиков нет, уходит в ребут) можно тогда убрать проверку...
C++:
bool rtc_check = 0;
тогда стартует точка, только остается минута, на настройки, т.к. идет вновь проверка на подключение и вновь ребут)
без сборки проблемы небольшие)

У меня что-то часы перестали учитывать rtc, показывают время UTC.
Кучу времени потратил на переписывание кода, ничем не помогло.
Просто теперь уходит в ребут)
Откатился до предыдущей сборки и выключил модуль rtc, время восстановилось)
Видно батарейка накрылась?)
Походу пора уходить от этого модуля, теперь часы уже в интернете постоянно, можно и убирать его)
 
Изменено:
  • Лойс +1
Реакции: kym13

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
если ntp.UpdateNow, то нуль почему-то)
Честно говроя сейчас нет времени разбираться с библиотекой(почему не записывает), могу только предположить, что там должна быть задействована еще одна функция, кроме получения времени должна быть еще по идее и функция записи в память.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
149
55
Таганрог
forum.wisecomp.ru
Вот что в библиотеке пишут об этой функции:
код:
uint8_t updateNow();            // вручную запросить и обновить время с сервера. Вернёт статус (см. ниже)
Это все,что я нашел по этой функции в описании.Может я и не прав :). Там в комментариях эта функция вроде для ручного обновления.
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@Leon111_09, так вот тут и непонятно) вроде бы и запрос времени, но возвращает статус, получается ноль, все ок)
C++:
Serial.println((String)ntp.hour() + ":" + ntp.minute() + ":" + ntp.second());
возвращает время с учетом пояса.
и вот надо записать это в https://github.com/adafruit/RTClib/blob/master/examples/ds3231/ds3231.ino
@AlexGyver подскажи по первым строчкам в сообщении)
п.с. опять косяки) откатился на последнюю версии из темы) непонятно, что вызывает сбои)

@Leon111_09, поставил в цикл на 1 сек запросы, статусы возвращать стал и такие)
Код:
// 5 - таймаут ответа сервера
// 6 - получен некорректный ответ сервера
так, стоп. походу Unix показывает верно. но почему в часах он показывал не так)
 
Изменено:

Maxx1200

★✩✩✩✩✩✩
11 Фев 2022
94
18

@ASM,
@ASM,
возможно)
Непонятно откуда этот цвет в коде, я ничего не трогал в коде
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@Leon111_09, может тогда так лучше использовать?)
C++:
  if(ntp.updateNow()==0){
  Serial.println((String)ntp.hour() + ":" + ntp.minute() + ":" + ntp.second());
  }
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@Leon111_09, так на голом железе это всё работает) вот только правильно ли) узнать только если переделывать в готовом проекте) но уже не сегодня, т.к. причину сбоя не выяснил)
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
не надо убирать модуль часов, интернет и свет штука не стабильная, одно с другим связано
 
  • Лойс +1
Реакции: Maxx1200

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@Leon111_09, да тут не в нем дело, а в нас) для них это элементарные вещи) ладно, буду пробовать, может заработает)

удалил много текста, проблема локализована)

@kym13 решена проблема, теперь запускается и на голом железе)

Запустил бэтку, кто хочет тестируйте)
  • оптимизация под новый портал
  • переделано давление с инт на флоат для мониторинга
  • переделан интерфейс на UI
  • добавлена ручная синхронизация времени
  • заменена библиотека rtc на microDS3231
  • подправил FastLED, убрал надоедавшее оповещение от него)
 
Изменено:
  • Лойс +1
Реакции: maksland и Leon111_09

44chsv

✩✩✩✩✩✩✩
21 Дек 2020
1
0
Здравствуйте.
Давно хотел сделать себе такие часы. И вдобавок, познакомиться с возможностями GyverPortal.
Большое спасибо автору за проделанный труд.
Возможно здесь было уже сказано, но при компиляции обнаружились досадные опечатки.
Вместо D6 просто 6. Или вместо GP.BUILD_BEGIN(); было BUILD_BEGIN(); и т.д.
Прошивать и собирать ещё не пробовал.
Может ещё на что стоит сразу обратить внимание, на типовые ошибки?
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@44chsv, бета версия портала в комплекте) должно работать из коробки) выложил на тест, может кто посмотрит, предложит идеи по оформлению и т.п. Релиз будет после публикации новой версии портала)
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
я жду уже больше месяца платы ... им 100км осталось проехать ! :)
вопрос - без DS3231 будет работать ?
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@maksland, будет, отключается в настройках) можешь заценить без датчиков)
Вместо D6 просто 6.
это не опечатки, это зависит от платы, но в шапке написано, прошивать как NodeMCU.
вместо GP.BUILD_BEGIN(); было BUILD_BEGIN(); и т.д.
а это уже новая библиотека портала, в которой это уже убрано) и старая прошивка не будет работать на новой версии портала, переделано уже во второй версии прошивки, которая 2-бетка)
библиотека от старой версии портала должна быть тут)
 
Изменено:
  • Лойс +1
Реакции: 44chsv и maksland

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Я проверял на пустой, зашёл в портал, выключил rtc, без проблем)
 
  • Лойс +1
Реакции: kym13

kym13

★★✩✩✩✩✩
14 Ноя 2020
472
70
@Leon111_09,...Должно по идее... Проверил работает без датчиков и RTC, в монитор порта выводит время с NTP и сообщения о не подключенных датчиках.
 

Divin

★★★✩✩✩✩
30 Янв 2021
436
192
@maksland, У вас платы духсторонние? С металлизацией отверстий? Если вас не затруднит выложить в виде пдф, или любом векторном формате - хочу ради фана распечатать плату на УФ-принтере с последующим травлением и второй печатью паяльной маски.
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
Я в спринте рисовал, только сегодня забрал ! да, две стороны и металлизация. Высота около 1 см может будет.
ноги чешутся распаять :)
надо проверить в железе на косяки, потом опубликую плату. Но в пдф и вектор сами (я этим не занимался еще, спринт только в гербер позволяет )
 

Вложения