Главная  /  Программа «Smacont-ESP»  /  Системное время / RTC / NTP

Системное время / RTC / NTP


Содержание

Общие данные
Действие «ini_sysTime()»
Действие «time_rtc()»
Микросхема DS1307
Микросхема DS3231
Действие «time_ntp()»



Общие данные

Прошивка «Smacont-ESP» поддерживает отсчет системного времени. При подаче питания или при сбросе устройства, отсчет системного времени устройства начинается с «05.04.2021 ВС 00:00:00».

Просмотр системного времени устройства осуществляется на вкладке «Сист. время».


Smacont-ESP. Вкладка «Сист. время»

Вкладка «Сист. время»

Системное время устройства может быть синхронизировано по данным от:
• компьютера или смартфона, при нажатии кнопки «Синхронизировать время» (см. рис. выше);
часов реального времени (RTC — англ. Real Time Clock);
NTP-сервера.

Синхронизированное системное время устройства может применяться, например, совместно с «CRON» для выполнения действий по расписанию.



Действие «ini_sysTime()»

Тактирование системного времени устройства осуществляется от кварцевого резонатора, стабильность работы которого, может отличаться. Для повышения точности отсчета системного времени устройства, в прошивке «Smacont-ESP» предусмотрена корректировка точности хода часов.

Установка значения корректировки точности хода часов и часового пояса выполняется при помощи действия «ini_sysTime()».


Smacont. Действие «ini_sysTime()»     Smacont. Действие «ini_sysTime()»     Smacont. Действие «ini_sysTime()»

Действие «ini_sysTime()»

Действие «ini_sysTime()» необходимо вызывать при запуске устройства (в сценарии «start()»).

Значение корректировки точности хода часов

• При "отставании" часов устройства - увеличить значение.
• При "убегании" - уменьшить значение.
• Изменение значения на +10, приводит к корректировке хода часов на +10мс за 24 часа.
• Изменение значения на -10, приводит к корректировке хода часов на -10мс за 24 часа.

Например:
1. За 24 часа, часы идут точно - установить значение "0".
2. За 24 часа, "отставание" часов составило 3сек (3000мс) - установить значение "3000".
3. За 24 часа, "убегание" часов составило 2сек (2000мс) - установить значение "-2000".



Действие «time_rtc()»

Часы реального времени (RTC — англ. Real Time Clock) — электронная схема, предназначенная для учёта хронометрических данных (текущее время, дата, день недели и др.), представляет собой систему из автономного источника питания и учитывающего устройства.

В качестве часов реального времени могут выступать модули RTC на микросхеме DS1307 или DS3231. Связь с модулем осуществляется по I2C. Для питания часов модуля необходима батарея типоразмера CR2032.

Достоинством часов реального времени является сохранение текущего времени при отключении питания устройства.

Синхронизация системных часов устройства с часами реального времени выполняется при помощи действия «time_rtc()».


Smacont-ESP. Действие «time_rtc()»

Действие «time_rtc()»

Вызов действия «time_rtc()» осуществляется в сценариях. Корректировка системного времени устройства производится при каждом вызове действия.

Рекомендуется вызывать действие «time_rtc()» сразу, при включении питания, а затем, каждую минуту, по событию от Таймера (см. рис. ниже).


Smacont-ESP. Сценарии

Сценарии


В зависимости от типа микросхемы DS1307 или DS3231, доступны те или иные параметры.



Микросхема DS1307

Микросхема DS1307 отличается невысокой точностью отсчета времени и отсутствием корректировки точности хода часов. «Уход» часов может составлять от 40 до 75 секунд в месяц.


Smacont-ESP. Модуль, на базе микросхемы DS1307

Модуль, на базе микросхемы DS1307


Smacont-ESP. Принципиальная схема модуля

Принципиальная схема модуля

В модуле предусмотрена схема заряда аккумуляторной батареи, с помощью компонентов R4, R6 и диода D1. Но, данная схема имеет недостаток, через резистор R4 и R6 происходит разряд батареи. Так как модуль потребляем незначительный ток, можно удалить цепь заряда, для этого убираем R4, R6 и VD1, вместо R6 установить перемычку. После доработки, можно использовать обычную батарейку CR2032.


Smacont-ESP. Доработка модуля, на базе микросхемы DS1307

Доработка модуля, на базе микросхемы DS1307

Также, в интернете имеются рекомендации по улучшению точности хода часов, путем замены на более точный кварцевый резонатор и добавления конденсатора в цепь кварцевого резонатора (или установки переменного конденсатора 20пФ).


Smacont-ESP. Действие «time_rtc()». Микросхема DS1307

Действие «time_rtc()». Микросхема DS1307

Команда «Включить»

Команда используется для разрешения работы часов реального времени микросхемы. Команда выполняется один раз, при первом вызове действия «time_rtc()».

Значение «2Hz» при неисправности

Данный параметр может применяться для отслеживания выхода часов реального времени из строя. В случае неисправности, будет установлено значение «-127» или «127».

Выходные данные

При привязке к одной из переменных «Vx», параметр может быть использован для изменения значения переменной с частотой 2Гц и/или для получения сигнала о неисправности микросхемы DS1307.

Значение переменной «Vx» изменяется по результатам полученных данных от микросхемы DS1307.



Микросхема DS3231


Smacont-ESP. Модуль ZS-042, на базе микросхемы DS3231

Модуль ZS-042, на базе микросхемы DS3231


Smacont-ESP. Принципиальная схема модуля ZS-042

Принципиальная схема модуля ZS-042

В отличие от DS1307, микросхема DS3231 отличается высокой точностью отсчета времени (за счет использования корректировки точности хода часов и термокомпенсации), минимальной «обвязкой» и наличием температурного датчика, показания которого можно использовать в сценариях.


Smacont-ESP. Действие «time_rtc()». Микросхема DS3231

Действие «time_rtc()». Микросхема DS3231

Входные данные

При привязке к одной из переменных «Vx», параметр может быть использован для задания значения корректировки показаний температуры. Данный параметр никак не влияет на внутреннюю работу микросхемы DS3231.

Значение переменной «Vx» при этом рекомендуется сохранять в EEPROM.

Команда «Включить»

Команда используется для разрешения работы часов реального времени микросхемы. Команда выполняется один раз, при первом вызове действия «time_rtc()».

Команда «Запись значения корректировки»

Команда используется для записи корректировочного значения точности хода часов. Команда выполняется один раз, при первом вызове действия «time_rtc()».

Значение «Корр. точности хода часов»

Значение корректировки точности хода часов.

Значение «T» при неисправности

Данный параметр может применяться для отслеживания выхода часов реального времени из строя. В случае неисправности, будет установлено значение «-127» или «127».

Выходные данные

При привязке к одной из переменных «Vx», параметр может быть использован для получения значения текущей температуры и/или для получения сигнала о неисправности микросхемы DS3231.



Действие «time_ntp()»

NTP (англ. Network Time Protocol — протокол сетевого времени) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью. Протокол был разработан Дэвидом Л. Миллсом, профессором Делавэрского университета, в 1985 году. Версия на 2015 год — NTPv4.

NTP, основанный на алгоритме Марзулло, использует для своей работы протокол UDP и учитывает время передачи. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0,2 мс (1/5000 с) и лучше внутри локальных сетей.

Более простая реализация этого алгоритма известна как SNTP — простой протокол сетевого времени. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени.

Прошивка «Smacont-ESP» поддерживает синхронизацию системного времени при помощи действия «time_ntp()».

При этом, устройство должно иметь выход в сеть Internet.


Smacont-ESP. Действие «time_ntp()»

Действие «time_ntp()»

Вызов действия «time_ntp()» осуществляется в сценариях. Корректировка системного времени устройства производится при каждом вызове действия.

Рекомендуется вызывать действие «time_ntp()» сразу, после установления связи по WiFi, а затем, каждую минуту, по событию от Таймера (см. рис. ниже).


Smacont-ESP. Сценарии

Сценарии

Действие имеет следующие параметры.


Smacont-ESP. Параметры действия «time_ntp()»

Параметры действия «time_ntp()»

<хост> (определен пользователем)

Адрес NTP-сервера задается в заранее прописанном шаблоне «Tx».

<хост> (фиксированный)

Адрес NTP-сервера выбирается из списка NTP-серверов.

[:<порт>] (по умолчанию: 55999)

Номер порта, через который осуществляется UDP-соединение для подключения к NTP-серверу.

Тайм-аут

Время ожидания ответа от NTP-сервера.

Выходные данные

Параметр содержит код о состоянии UDP-соединение, для подключения к NTP-серверу. Далее, данное значение, можно использовать в сценариях для отслеживания проблем при работе с NTP-сервером.



Программы

Прошивка «Smacont-ESP»:
скачать

«Программа Настройки»:
запусить (только браузер Firefox)
скачать zip-архив

Телеграм канал

Новости

Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой

Обмен данными. Open Monitoring

Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25

Датчик температуры и влажности SHT30 (SHT31/SHT35)

Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений

Действие «termostat()». Термостат

ESP-NOW. Датчик температуры и влажности с питанием от батареек

Последовательные интерфейсы (UART, I2C, SPI)

Управление одноканальным модулем реле

Протокол MQTT

Обмен данными. NarodMon

Обмен данными. ioControl

Обмен данными. WhatsApp

Обмен данными. Telegram

Текстовые шаблоны



Программы для модулей ESP     Программы     Применения     Справочник         Контакты     SMACONT. Напишите нам smacont@ya.ru