Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом руководстве мы увидим, как сэкономить время, используя ESP8266 / nodemcu с Arduino IDE. Определение времени особенно полезно при регистрации данных для отметки времени ваших показаний. Если у вашего проекта ESP8266 есть доступ к Интернету, вы можете получить время, используя протокол сетевого времени (NTP) - вам не нужно никакого дополнительного оборудования. Вы можете подключить ESP8266 к своей сети Wi-Fi, и это будут часы, которые будут синхронизированы. с сетью, поэтому, если вы загрузили код, он получит время из Интернета, поэтому он всегда будет отображать правильное время.
Шаг 1. Вещи, которые вам нужны
Для этого проекта вам понадобится очень немногое: USB-кабель ESP8266 / NODEMCUA для программирования.
Шаг 2: Что такое NTP и как он будет работать?
Что такое NTP: NTP означает протокол сетевого времени. Это стандартный интернет-протокол (IP) для синхронизации часов компьютера с некоторой ссылкой по сети. Протокол может использоваться для синхронизации всех сетевых устройств по всемирному координированному времени (UTC). NTP устанавливает часы компьютеров в UTC, любое местное время. смещение зоны или смещение времени перехода на летнее время применяется клиентом. Таким образом клиенты могут синхронизироваться с серверами независимо от местоположения и различий в часовых поясах. Как это будет работать для нас: клиентское устройство, такое как ESP8266, подключается к серверу с помощью протокола пользовательских дейтаграмм (UDP) через порт 123. Затем клиент передает запросить пакет на сервер NTP. В ответ на этот запрос сервер NTP отправляет пакет с отметкой времени. Пакет с отметкой времени содержит различную информацию, такую как временная отметка UNIX, точность, задержка или часовой пояс. Затем клиент может проанализировать текущие значения даты и времени.
Шаг 3: Установка библиотеки в 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 вы можете открыть последовательный монитор, и если все в порядке, вы сможете получить время на последовательном мониторе, так как я могу получить время на своем последовательном мониторе. Таким образом, с этим проектом вы можете прикрепить любой отобразить и сделать его правильными сетевыми часами. Так что получайте удовольствие, создавая свои сетевые часы.