0Pricing
Arduino & IoT Academy · Урок

Получение точного времени через NTP/RTC

Добавляйте к данным точные даты и время.

«Получение точного времени через NTP/RTC» — бесплатный урок Arduino & IoT Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Arduino & IoT Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Arduino & IoT Academy содержит 4 уроков всего.

Почему время важно

Показание вроде «24,3 °C» рассказывает лишь половину истории. Чтобы правильно понять записанные данные, каждому измерению нужна временная отметка, точно указывающая момент его получения. ⏰

У Arduino нет часов

Arduino забывает дату, как только отключается питание. Она считает только миллисекунды с момента загрузки и не знает, который сейчас час по реальному времени.

Два способа получить время

Можно получить время из интернета через NTP или хранить его локально с помощью микросхемы RTC с резервным питанием. Каждый способ подходит для своей ситуации.

Что делает NTP

NTP (сетевой протокол времени) запрашивает текущий момент у сервера времени в интернете. Он точен и бесплатен, но для работы требуется активное подключение WiFi.

Запрос времени у сервера NTP

На ESP32 одна строка настройки указывает для платы общедоступный сервер времени и смещение часового пояса. После этого плата синхронизируется автоматически.

configTime(0, 0, "pool.ntp.org");

Считывание синхронизированного времени

После синхронизации получите текущее время в структуру и считайте её поля. Так Вы получите год, месяц, день, час и минуту для маркировки данных.

struct tm now;
getLocalTime(&now);

Что делает RTC

Модуль RTC, например DS3231, продолжает отсчитывать время от небольшой батарейки-таблетки, даже когда Arduino полностью выключена. Сеть вообще не нужна.

Подключение RTC

Большинство модулей RTC обмениваются данными по I2C, поэтому достаточно подключить четыре провода: питание, землю, SDA и SCL. Это делает конструкцию особенно простой.

Считывание данных с RTC

С помощью библиотеки RTClib получите текущий момент как объект DateTime, а затем считайте его поля так же, как в варианте с NTP.

DateTime now = rtc.now();
int h = now.hour();

NTP или RTC?

Выбирайте NTP, если устройство всегда подключено к сети и Вам не нужны дополнительные компоненты. Выбирайте RTC для автономных или работающих от батареи узлов, которым всё же нужно точное время.

Преимущества обоих способов

Многие удачные конструкции используют оба способа: RTC хранит время без подключения к сети, а NTP время от времени корректирует небольшое расхождение, когда доступен WiFi. 🌐

Быстрая проверка

Какой источник времени продолжает работать без подключения к интернету?

Итоги

У Arduino нет настоящих часов, поэтому добавьте время с помощью NTP в сети или RTC автономно. Теперь каждое записанное показание может содержать точную временную отметку. ✅

Часто задаваемые вопросы

Урок «Получение точного времени через NTP/RTC» бесплатный?

Да — полный текст урока «Получение точного времени через NTP/RTC» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Arduino & IoT Academy, подпишись на CoddyKit PRO. Курс Arduino & IoT Academy содержит 4 уроков всего.

Чему я научусь в уроке «Получение точного времени через NTP/RTC»?

Добавляйте к данным точные даты и время. Ты практикуешь Arduino & IoT Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Arduino & IoT Academy?

Предыдущий опыт не требуется. Arduino & IoT Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Получение точного времени через NTP/RTC»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Arduino & IoT Academy?

Да. Каждый урок Arduino & IoT Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Получение точного времени через NTP/RTC
  2. Запись CSV на SD-карту
  3. Буферизация и пакетная отправка
  4. Визуализация записанных данных
← Назад к Arduino & IoT Academy