Как установить RTC в ES32 с помощью NTP-сервера?

Я работаю над ESP32 и хочу установить RTC с сервера NTP. Как я могу получить значение эпохи Я сделал это на панели запуска CC3200 и использовал библиотеку сервера NTP для получения значения эпохи.

, 👍2


1 ответ


1

этот фрагмент из setup() устанавливает в esp32 NTP для внутреннего RTC и использует секунды эпохи для установки времени в библиотеке TimeLib.

  configTime(gmtOffset_sec, daylightOffset_sec, "pool.ntp.org");
  time_t now = time(nullptr);
  while (now < SECS_YR_2000) {
    delay(100);
    now = time(nullptr);
  }
  setTime(now);

Библиотека примеров ESP32 в папке примеров IDE содержит пример SimpleTime.

,

Является ли функция ' configTime()` функцией блокировки? Похоже, так и должно быть, учитывая, что Arduino не является многозадачной системой., @Duncan C

@DuncanC, он не блокируется, как вы можете видеть в следующем цикле "while". ядро esp32 находится в SDK esp32 RTOS. arduino-это один поток, но "configTime" - это функция C из SDK, поэтому функция активирует только SNTP, @Juraj