Получение времени из Интернета с помощью ESP8266 - Проект часов NTP с ESP8266 Nodemcu: 5 шагов
Получение времени из Интернета с помощью ESP8266 - Проект часов NTP с ESP8266 Nodemcu: 5 шагов
Anonim
Получение времени из Интернета с помощью ESP8266 | Проект часов NTP с ESP8266 Nodemcu
Получение времени из Интернета с помощью ESP8266 | Проект часов NTP с ESP8266 Nodemcu

В этом руководстве мы увидим, как сэкономить время, используя ESP8266 / nodemcu с Arduino IDE. Определение времени особенно полезно при регистрации данных для отметки времени ваших показаний. Если у вашего проекта ESP8266 есть доступ к Интернету, вы можете получить время, используя протокол сетевого времени (NTP) - вам не нужно никакого дополнительного оборудования. Вы можете подключить ESP8266 к своей сети Wi-Fi, и это будут часы, которые будут синхронизированы. с сетью, поэтому, если вы загрузили код, он получит время из Интернета, поэтому он всегда будет отображать правильное время.

Шаг 1. Вещи, которые вам нужны

Вещи, которые нужно
Вещи, которые нужно

Для этого проекта вам понадобится очень немногое: USB-кабель ESP8266 / NODEMCUA для программирования.

Шаг 2: Что такое NTP и как он будет работать?

Что такое NTP и как он будет работать?
Что такое NTP и как он будет работать?
Что такое NTP и как он будет работать?
Что такое NTP и как он будет работать?

Что такое NTP: NTP означает протокол сетевого времени. Это стандартный интернет-протокол (IP) для синхронизации часов компьютера с некоторой ссылкой по сети. Протокол может использоваться для синхронизации всех сетевых устройств по всемирному координированному времени (UTC). NTP устанавливает часы компьютеров в UTC, любое местное время. смещение зоны или смещение времени перехода на летнее время применяется клиентом. Таким образом клиенты могут синхронизироваться с серверами независимо от местоположения и различий в часовых поясах. Как это будет работать для нас: клиентское устройство, такое как ESP8266, подключается к серверу с помощью протокола пользовательских дейтаграмм (UDP) через порт 123. Затем клиент передает запросить пакет на сервер NTP. В ответ на этот запрос сервер NTP отправляет пакет с отметкой времени. Пакет с отметкой времени содержит различную информацию, такую как временная отметка UNIX, точность, задержка или часовой пояс. Затем клиент может проанализировать текущие значения даты и времени.

Шаг 3: Установка библиотеки в Arduino IDE

Установка библиотеки в Arduino IDE
Установка библиотеки в Arduino IDE

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

Шаг 4. Кодирование

Кодирование Часть
Кодирование Часть
Кодирование Часть
Кодирование Часть

Скопируйте следующий код и введите свои сетевые учетные данные в свой код, тогда вам нужно установить для меня время смещения, это 19800, потому что мой часовой пояс utc + 5:30, поэтому UTC +5: 30 = 5.5 * 60 * 60 = 19800UTC + 1 = 1 * 60 * 60 = 3600 ВЫЧИСЛИТЕ свой часовой пояс и отредактируйте его, а затем загрузите код. # Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char * ssid = "***** ****** "; const char * password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" Воскресенье "," Понедельник ", «Вторник», «Среда», «Четверг», «Пятница», «Суббота»}; // Определим клиент NTP, чтобы получить timeWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, «pool.ntp.org», utcOffsetInSeconds); установка void () {Serial.begin (115200); WiFi.begin (ssid, пароль); в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); } timeClient.begin ();} недействительный цикл () {timeClient.update (); Serial.print (daysOfTheWeek [timeClient.getDay ()]); Serial.print (","); Serial.print (timeClient.getHours ()); Serial.print (":"); Serial.print (timeClient.getMinutes ()); Serial.print (":"); Serial.println (timeClient.getSeconds ()); //Serial.println (timeClient.getFormattedTime ()); задержка (1000);}

Шаг 5. Получение ВРЕМЕНИ

Получение ВРЕМЕНИ
Получение ВРЕМЕНИ

После загрузки кода в Esp8266 вы можете открыть последовательный монитор, и если все в порядке, вы сможете получить время на последовательном мониторе, так как я могу получить время на своем последовательном мониторе. Таким образом, с этим проектом вы можете прикрепить любой отобразить и сделать его правильными сетевыми часами. Так что получайте удовольствие, создавая свои сетевые часы.