Часы на esp8266 и tm1637 с синхронизацией времени через интернет
Vložit
- čas přidán 8. 09. 2024
- Расширяем функционал часов на ESP8266 и TM1637 с синхронизацией с NTP сервером через интернет, (про них тут • Часы на ESP8266 и TM16... ) и добавляем RTC PCF8563 чтобы избавится от основных недостатков часов прошлой версии.
🐾железки на али:
ESP8266 - alii.pub/5w7znw
PCF8563 - alii.pub/5w7zp2
TM1637 - alii.pub/5w7zq8
🐾Код тут в низу arduinolab.pw/i...
🐾Возможность поблагодарить автора рублем.
www.donationale...
При наличии точного времени, можно сделать автоматическую коррекцию кварца. Например если у нас часы отстают на 10 секунд в сутки, запоминаем погрешность и корректируем часы на лету. Постепенно, когда режим работы установится, то и сервер точного времени не нужен будет, часы сами настроятся на точность такую, что месяцами смогут работать без коррекции. Заодно дома будет образцовый сигнал частоты.
Хотя с GPS лучше, источник образцовой частоты делают, там по сути тоже берут сигнал 1 Гц с выхода приемника GPS, сутками по фазе корректируют домашний термостабизизированный кварц, и автоматически и постепенно он становится образцовым, что-то вроде ошибка 10-12 степени, самый точный прибор в домашних условиях. Остальные приборы и близко к такой точности не подойдут.
Лайк за труды.Классный проект.
Творческих успехов. Esp тема интересная.
Весьма любопытный проект. Не хватает схемы соединений всего вместе в версии с RTC.
Да, часики это такая тема, что их можно постоянно улучшать.
Отлично! Спасибо за код. Только RTC на nextion подводить буду.
Тут с 24 до 10 часов можно убрать не задействованный 0 на первом месте если заменить его на число 48 то сегмент не светится. Пример 2:45 вместо 02:45
«Даже продолжают работать, что странно...»
Огромное спасибо автору! Переделал скетч для ds3231: drive.google.com/file/d/1_tg9RW2YYU3_nPMFuFhU6DmIE02tFpkP/view?usp=sharing. Проблемы: 1. Макетка для ESP8266 - ESP втыкается наоборот чем в программатор) 2. Версию плат в ide выбрал 2.77 т.е. не последнюю -были проблемы. 3. Библиотека для TM1637 Grove_4-Digit_Display, для DS3231 взял Andrew Wickert. 4. Отладку проще делать на NODEMCU
rtc это конечно интересно, и работать будет без интернета, но как вариант есть такая либа #include , я с ее помощью сделал если даже не прошла синхронизация ничего страшного, главное при старте получить время
Vladimir так-то и без этой либы и rtc часы делал.))))
Уважаемый автор! Недавно тоже делал себе часы, но на модулях MAX7219. В результате разных исследований выяснилось, что SDK Arduino для ESP8266 уже содержит в себе все необходимое для работы со временем.
Написал для своих часов простую библиотеку, предлагаю ее тем, кто также делает часы на ESP8266.
Вот ссылка на библиотеку: github.com/OlegReshetnik/ESP8266_Libraries/tree/master/TimeLib
Работать с библиотекой очень просто:
#include
TimeLib tt;
Serial.print ( tt.tmDate() ); Serial.print ( tt.tmTime() );
!!При этом в скетче должно быть установлено соединение с Интернет.
Вместе с библиотекой есть подробный пример.
зачем rtc ?? у нее собственный нормальный. коррекция времени через нтп раз в сутки вполне достаточно. у меня чсы без проблем работают от родного ртц
Предполагаю, для того, что когда отрубается питание,
а потом врубается - было время,
в случае отсутствия соединения с инетом.
А постоянно питать ЕСПшку, когда нет питания, смысла нет, она сильно прожорлива.
А в режиме сна она время считать не будет.
Проще тогда добавить батарейку литий ионную, микроконтроллер потребляет пусть 1 мА (только не на 16 МГц, а на распространенном кварце от телевизора что-то вроде 3.ххх МГц, так экономичней по питанию, кварцы на 1 МГц дефицитные, на Алиэкспрессе их вообще нет)
Батарейки формата ААА на 1000 мАч хватит более чем на месяц. Причем часы можно попросить показать время кнопочкой.
Или вообще не заморачиваться, при появлении питания часы сами настроятся, если на ночь отключат питание, утром пользователь может вообще не заметить что питание отключали.
Уважаемый Сергей, вроде бы Вы и понимает о чём говорите,
Вы уверены что Вы правы?
Складывается ощущение, что Вы пропустили название МК.
То, что Вы написали, применимо к атмега328....
Какой кварц на 3.ххх или 1 мгц?
Вы лично пробовали ставить пониженные кварцы на данный МК?
Речь идёт о esp8266.
У которого кварц на 26мГц, тактовая либо 80 либо 160 мгц,
Вы уверены, что при замене кварца, останется рабочим WiFi радиомодуль.
Который очень сильно привязан к частоте, ко времени срабатывания своих прерываний.
У которого наивысший приоритет на прерывания
и который плевать хотел на пользовательские задачи,
когда есть задача принять или передать данные.
У WiFi стандартов есть стандартные протоколы и что-то мне подсказывает,
что у ESP с урезанным кварцем просто не хватит ресурсов обработать приходящие\уходящие данные.
И в данной поделке ESP используется потому,
что в нём вообще то встроенный WiFi,
А WiFi нужен, он решает все проблемы с коммуникацией часов с интернетом и NTP.
и жрёт ESP далеко не 1 мА, и даже не 100 мА в пике.
Поэтому "время кнопочкой" конечно возможно, но
там светодиоды потребляют мизер по сравнению с МК в пиковом режиме.
Только один вариант, запитывания от аккума и "время по нажатию кнопки":
пускать МК в спячку и по нажатию кнопки "показать время"
привязанной к аппаратному прерыванию,
будить мк,
читать время из чипа RTC,
показать на дисплее и опять заснуть.
Да я написал про Atmega 328.
У ESP32 например есть сопроцессор, который можно настроить так чтобы модуль микроамперы потреблял, постоянно на связи с WiFi ему не нужно быть, только раз в сутки на несколько секунд. Про ESP8266 не знаю, он наверное слишком примитивен, но можно поставить Atmega 328 чтобы отключал этот модуль полностью, получил информацию о времени и он больше не нужен.
Тут конечно смысла экономить энергию нет, так как индикаторы не экономичные и не было такой идеи у автора. Но немного допилив проект, можно сделать его на батарейном питании, поставить ЖК экран или E-paper (дорогая зараза 20$ но красиво смотрится), и ESP32 в режиме энергосбережения, чтобы раз в минуту просыпался, обновлял экран и далее спать.
О. И у меня как то выскочило 45 часов 85 минут :)
Потом я взял более другую библиотеку в которой явно указывался адрес и она заработала.
Функция sync() в сетапе явно не всегда синхронизирует часы при запуске. А вернее - почти никогда. Наверное, надо там через тоже while() делать, как подключение к WiFi? И ещё нюанс - указанный в видео сервер у меня почему-то выдает ошибку в минуту- полторы(!). А тот сервер, который закомментирован, как раз работает точно.
Здравствуйте. Vожете сделать обзор на микросхему AD9833 генератор частот.
Greetings arduinoLab
I have three TM1637 0.56" Displays and I've tried with ESP8266 Nodemcu with various codes but it doesn't work at all; someone says it's a power problem on the CLK and DIO pins but I can't; do you know about this and do you have any tips? Thanks
Хотелось бы увидеть версию скетча с модулем DS3231, заранее спасибо!
Вот смастерил пользуйся : czcams.com/video/de5mwv23PgY/video.html
I²C какой командой переназначаете ?
ru.pool.ntp.org для RU и будет Вам счастье. оно там на разные сервера и списка ссылается. Можно ua.pool.ntp.org, если для UA.
Evgeny Zyatkov дякую
атмеги мало. Подскажите, на что лучше переходить, на есп или на стм?
Можно ли в ардуинке, без каких либо серверов, синхронизировать время с компьютером?
Уже год тикают. Только немного по своему. Ночью яркость на минимум а утром переключаются на максимум
А нельзя сделать с коррекцией по gps?
да там можно не корректировать а тупо гнать поток )
Ilya Pupkin можно, но gps сигнал не всегда бывает доступен.
Часы хорошие, без сомнений. Но хотелось бы заменить PCF8563 на DS3231. Но как заменить его в скетче? По честному скажу, пытался, но не получается. Может поможете???
У меня пошел код из этого примера: arduinolab.pw/index.php/2015/12/05/chasy-na-digispark-i-7-segmentnom-indikatore/#more-215
А почему не пользуетесь OTA?
Всё классно, но нет схемки соединения всех блоков в одно целое. Может добавите в статье описания на arduinolab.pw/index.php/2016/08/03/chasy-na-esp8266-i-tm1637-s-sinxronizaciej-s-ntp-serverom-cherez-internet/
Плёнку зря содрали. Черным маркером замазать сегменты и не надо будет рукой прикрывать, чтобы цифирь увидеть.
Здравствуйте!
Спасибо за концепт и код, но не могли бы вы подсказать, как подключать PCF8563 к ESP8266? А то на сайте есть только подключение дисплея, а на видео используются вообще другие детали.
как любые другие часы, к I2C.
в коде указаны ноги
#define SDA 0
#define SCL 2
можно менять на другие.
Спасибо, но экран теперь вообще не светится. Пробовал код отсюда - czcams.com/video/Oege0dtduHo/video.html - на дисплее горит 45:-5 и ничего не происходит. Пробовал "улучшенную" версию кода из первого комментария оттуда - на часах вечно мигает 17:19.
При этом код без использования часов реального времени работает.
Чем pcf8563 вам больше нравится?
сказал же, он работает от 3,3 вольт, DS1307 нет.
Да блин, это уже скучно, часы , часы, ... Может уже Esp32 под обзор и остальные фишки рассмотрим ..??
У меня нету pdf8563
А как на счет отловить глюки с DS3231+TM1637+ntp и дать всему миру лекарство (точные часы синхронизируемые по нтп)?
yadi.sk/d/q1o197WaT4Lgzg
это борьба с ошибкой 45:-5 что вылазит при ногодрыгании ds3231
Сделай лучше будильник с синхронизацией со смартфоном
конечно функция будильника не помешала бы
Виктор Томенко ,поддерживаю просьбу, и чтобы свет плавно включал.
А смартфон сам не будильник что-ли? Смысл делать примочку для смартфона, если сам смартфон и есть будильник. Для эстетов есть браслет будильник, синхронизированный со смартфоном.
Сергей Моск
Ну если так рассуждать то и часы не нужны если смартфон есть ;) Но люди всё равно покупают будильники
Ну я имел ввиду чтобы при запуске будильника светодиодная лента включались плавно(как солнце) думаю это была бы классная идея
здесь www.pool.ntp.org/zone/europe есть список NTP серверов. может уже не актуально?
jutiubi актуально, спасибо
"Расширяем функционал часов" -- вы функционал перепутали с функциональностью. ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB
на LCD1602 можно переделать?
я не против.
Вот смастерил пользуйся : czcams.com/video/de5mwv23PgY/video.html
Зачем такие заморочки нужны, не проще ли сделать часы на wifi-iot.com
про этот сайт мы знаем , ты конкретный пример покажи , прошивку дай
У меня часы собраны на ESP-07, led матрицах, bmp 180 с прошивкой wifi-iot и отправкой данных с датчиков на narodmon.ru и majordomo.
Так а за код забыли? Или как? А то уже детали приехали
arduinolab.pw/index.php/2016/08/03/chasy-na-esp8266-i-tm1637-s-sinxronizaciej-s-ntp-serverom-cherez-internet/ внизу
у меня редко останавливаются.
это недавно, с блокировками телеграмма началось.
пользуйтесь нашими ntp серверами. вон в Менделеево (Около Зеленограда) ядерные часы есть. у них 4 сервака своих со своими айпишникаи ntp1.vniiftri.ru ntp1.niiftri.irkutsk.ru vniiftri.khv.ru
Можно еще проще сделать. И не надо добывать адреса по форумам. Адрес ru.pool.ntp.org, вас пошлёт или на ближайший, или на самый свободный. В списке 109 серверов. Возможно, стратумы будут разными. Но, для клиента, это не особо и важно.
зачем в этом проекте использовать бредборд?
а как надо?
@@arduinoLab что помешало напрямую в гребенку контроллера проводки воткнуть?
это прям такая принципиальная разница?, думал вопрос, чего сразу не на плате...
@@arduinoLab да и ладно, так в глаза бросилось.
Тут другой вопрос есть. Заготовки, для большого проекта делаю. Одна из них это часы реального времени. По этой причине и смотрел твой видос.
Цель - иметь в системе актуальные int Date, Month, Year, Hour, Minute, Second
Модули - esp8266, ds3231.
В твоём проекте нет даты. Я не програмер, писать парсер свихнусь. Високосные года, февраль и прочее.
Есть наработки по этому вопросу?
Осталось вывести температуру на улице и получится хороший девайс на окно;)
Есть способ проще, без датчика температуры wifi-iot.com/p/wiki/31/ru/
Сергей Моск так датчик и не нужен у нас же esp