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г.
 

Вложения

Изменено:

Комментарии

ASM

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

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
ну с проекта больших часов взять, из версии 1.9 например

1bec2941-db8b-47ab-be5d-9e6b4e8f4e32.jpg
сегодня в фойе сидел с ноутбуком на скамейке и настраивал часы
у входа... докатился :)
фотодатчик глубоко запрятал... зря перестраховался от засвета сегментов . Срабатывает только как фонариком светишь
 
Изменено:

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
Доброго дня! С далласа не отображаются отрицательные температуры, на индикаторе. Есть ли в каких- нибудь прошивках отображения минуса уличной температуры??
 

maksland

★★★✩✩✩✩
13 Янв 2019
513
117
Omsk
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Изменено:

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
@ASM, ,благодарю, почему-то в часах 2.0 меньше 0 не отображалась температура. В этой ( что рекомендовали) прошивке есть некоторые траблы с 3231, плату менял, даже микруху памяти с модуля сдул, благо не нужна. Тем не менее- после перезагрузки может время не подхватить ни с 3231, ни с интернета. Вечные 0.00 ; но не всегда. И как писал выше- не сохраняет выбор цвета, вернее на станице настроек- всё верно, а по факту- по умолчанию. это РЕШИЛ ИЗМЕНЕНИЕМ НАЧАЛЬНЫХ УСТАНОВОК, НЕ суть важно. Тестировал различные прошивки, ( гонял все и пытался понять, какие могут быть глюки) в том числе и последнюю, что вы выложили выше - ровно тоже самое, все те, что на сделаны портале - ведут себя так. Прошивка часы 2.0 - ровно наоборот, нет проблем с 3231, выбор цвета сохраняется на индикаторах- а на странице настройки- по умолчанию )))
Вопрос в следующем- я заметил, что при отсутствии точки доступа- поднимает свою через некоторый промежуток времени. И остается в таком состоянии , то есть при появлении в последствии сети роутера - уже не пытается к ней подключится. Можно ли это изменить? Если нет, то где можно увеличить время ожидания сети? К сожалению, у меня на даче это актуально.
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@sergio287, в последних версиях с хабом это улучшено, у меня работает отлично, по сравнению с порталом)
А вот переподключение после точки, не знаю, впервые этот вопрос поднимается)
Время ожидание меняется в настройках, в разных прошивках чуточку различается)
 

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
@ASM,вам спасибо за подсказку. Мне тоже больше импонирует эта прошивка, но почему даллас не отображает отрицательные температуры? И к примеру, я выставляю показ времени 30 сек, 2 сек. датчик улица. На индикаторах отображается так: 30 сек.точки разделительные мигают, 30-не мигают, 30 сек.отображается температура, затем цикл повторяется. Прописывал в прошивке 30,2,255 и соответственно режим- тоже самое. Прокатывает только вариант по 2-3 секунды необходимые режимы, иначе температура висит столько же, сколько и время. Но главное- минусовые температуры. На странице всё верно- на индикаторах-ноль, не меньше)))
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
Мне тоже больше импонирует эта прошивка, но почему даллас не отображает отрицательные температуры?
не знаю, у меня всегда показывало)
если что-то менялось в коде, возможно было смещение сегментов?
у меня вот были морозы, да так и показывало -28о
Прописывал в прошивке 30,2,255 и соответственно режим- тоже самое.
лучше настраивать через web, в портале была проблема, что последний режим длился дольше, чем в настройках, в версии хаб работает как надо)
 

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
не знаю, у меня всегда показывало)
если что-то менялось в коде, возможно было смещение сегментов?
у меня вот были морозы, да так и показывало -28о
Только количество светодиодов в сегменте, их у меня 2. Разве это может влиять?

Фото с прошивкой с порталом
 

Вложения

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
@ASM, это прошивка с порталом, не с хабом. В хабе всё Что ниже нуля= 0. Положительные температуры- без проблем. Вот и я хочу знать. что не так ))))
 

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
@ASM,как раз там, на веб-странице - показывало. На индикаторах - нет. Окончательно запутался в нумерации прошивок. (
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@sergio287, странное дело, код один)) [email protected] последний, в теме чуть выше последний вариант с исправлениями)

Про баг с ночным режимом никто не отписался)
Если выбирать 23:00 - 6:00, то не работает. А если 00:00 - 6:00, то срабатывает) Надо логику пересмотреть)
 
Изменено:

sergio287

✩✩✩✩✩✩✩
21 Ноя 2023
11
0
@ASM, я сравнивал 2 файла, здесь
leds[NUM_LEDS] = ColorTable[rand() % NUM_COLORS - 1];
} else {
leds[NUM_LEDS] = ledColor;
в хабе и более поздних:
leds[NUM_LEDS - 1] = ColorTable[rand() % NUM_COLORS - 1];
} else {
leds[NUM_LEDS - 1] = ledColor;
Хочу понять, за что отвечает этот отрезок Вашего кода. ) Может это давать не вызов отрицательных температур? Ни разу не программист ((, но чертовски интересно)
 

Сотнег

★★★★★★★
15 Янв 2020
4,346
1,492
@sergio287,
это присваивает некий цвет последнему светодиоду в матрице.
Раньше было написано с ошибкой и попадало не в последний, а в следующий за последним светодиод.
 

ASM

★★★★★✩✩
26 Окт 2018
1,602
311
@sergio287, если включен режим смена цвета, то выбирается случайный из таблицы, иначе выбранный цвет)

@Сотнег, там вроде не в ошибке дело было. А в другом способе подсчёта. Надо смотреть)