MatrixClock part 1 - Proof of concept часов на ESP8266 и MAX7219

Jun 17, 2020 23:22

После драйвера, быстро набросал часы с получением времени по NTP. В главном цикле loop() ничего нет, все сделано на Ticker.h из Arduino Core. Раз в 10 минут стучусь на один из трех NTP серверов, получаю точное время корректирую таймер. Раз в секунду читаю значения таймера, моргаю точками и обновляю часы с минутами. Никаких тебе DS1307, DS3231, GPS NMEA.

Вместо кривой копипасты применил встроенные в Arduino и SDK функции из lwIP. Получаю время 3-я строчками кода! Экран достаточно большой, даже с плохим зрением легко читается с 4..5 метров. У матриц очень маленькое потребление. Секрет в динамической индикации - 1/800 секунду горит только 0..8 светодиодов на каждой матрице. Все 320 светодиодов на полной яркости, спокойно питаются от USB порта вместе с ESP8266. Средний ток часов, на самой маленькой яркости и выходной мощности WiFi 10mW, всего 60мА. Общая цена деталей, без учета блока питания и корпуса - ~$7.5.



часы на ESP8266 и MAX7219 с обновлением по NTP
О прикручивании OpenWeatherMap можно почитать тут.

UDP: Имхо отдельный RTC типа DS3231 оправдан только:
- Когда нет выхода в интернет и NTP серверам
- Когда ESP8266 часто уходит в сон, тк просыпается и переподключается esp-шка очень долго
- Когда лень писать, не знаешь как писать и весь проект сплошная копипаста. Тогда да, проще вкорячить отдельный RTC.

Во всех остальных случаях отельный RTC не нужен. Поясню. Например пропал интернет. Софтовый таймер внутри ESP8266 продолжает тикать и часы идут дальше без синхронизации по NTP. Вместо погоды, раз в 10 секунд, идет сообщение о том что интернета нет, как бы намекая…

Точности таймера хватает на неделю, потом разбежка уже будет заметна. За это время, а то и раньше, интернет точно появится. Часики синхронизируются и вместо сообщения об проблемах с инетом опять появится погода. Все! Мы только что сэкономили на проводах, модуле RTC и батарейки к нему.

Если рубанули у вас и ESP8266 перегрузилась раньше чем дали web, тогда синхронизируем в ручную со временем из браузера. Для этого есть специально обученная кнопка в вебморде. Дальше смотри п.1

#arduino, esp8266, arduino, #esp8266

Previous post Next post
Up