Съдържание:

Получаване на време от интернет с помощта на ESP8266 - Проект за NTP часовник с ESP8266 Nodemcu: 5 стъпки
Получаване на време от интернет с помощта на ESP8266 - Проект за NTP часовник с ESP8266 Nodemcu: 5 стъпки

Видео: Получаване на време от интернет с помощта на ESP8266 - Проект за NTP часовник с ESP8266 Nodemcu: 5 стъпки

Видео: Получаване на време от интернет с помощта на ESP8266 - Проект за NTP часовник с ESP8266 Nodemcu: 5 стъпки
Видео: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Ноември
Anonim
Получаване на време от интернет с помощта на ESP8266 | Проект за NTP часовник с ESP8266 Nodemcu
Получаване на време от интернет с помощта на ESP8266 | Проект за NTP часовник с ESP8266 Nodemcu

В този урок ще видим как да спечелим време, използвайки ESP8266/nodemcu с Arduino IDE. Получаването на време е особено полезно при регистриране на данни за отбелязване на вашите показания. Ако вашият проект ESP8266 има достъп до интернет, можете да получите време, използвайки Network Time Protocol (NTP) - нямате нужда от допълнителен хардуер. Можете да свържете вашия ESP8266 към вашата wifi мрежа и той ще бъде часовник, който ще бъде синхронизиран с мрежа, така че ако веднъж качите кода, той ще получава време от интернет, така че винаги ще показва правилно време.

Стъпка 1: Неща, от които се нуждаете

Нещата, от които се нуждаете
Нещата, от които се нуждаете

За този проект ще ви трябват много малко неща: ESP8266/NODEMCUA USB кабел, за да го програмирате.

Стъпка 2: Какво е NTP и как ще работи?

Какво е NTP и как ще работи?
Какво е NTP и как ще работи?
Какво е NTP и как ще работи?
Какво е NTP и как ще работи?

Какво е NTP: NTP означава Network Time Protocol. Това е стандартен интернет протокол (IP) за синхронизиране на компютърните часовници с някаква справка по мрежата. Протоколът може да се използва за синхронизиране на всички мрежови устройства с координирано универсално време (UTC). NTP настройва часовниците на компютрите на UTC, всяко местно време изместване на зоната или сместване на лятното часово време се прилага от клиента. По този начин клиентите могат да се синхронизират със сървъри, независимо от разликите в местоположението и часовата зона. Как ще работи за нас: Клиентското устройство, като ESP8266, се свързва със сървъра, използвайки Протокола на потребителската датаграма (UDP) на порт 123. След това клиентът предава заявка за пакет към NTP сървър. В отговор на това искане NTP сървърът изпраща пакет с времеви печат. Пакет с времеви печат съдържа множество информация като UNIX времева марка, точност, забавяне или часова зона. Клиентът може след това да анализира текущите стойности на дата и час.

Стъпка 3: Инсталиране на библиотека на Arduino IDE

Инсталиране на библиотека на Arduino IDE
Инсталиране на библиотека на Arduino IDE

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

Стъпка 4: Кодираща част

Кодираща част
Кодираща част
Кодираща част
Кодираща част

Моля, копирайте следния код и поставете вашите мрежови идентификационни данни в кода си, след което трябва да зададете offsettime за мен, той е 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); () {Serial.begin (115200); WiFi.begin (ssid, парола); while (WiFi.status ()! = WL_CONNECTED) {забавяне (500); Serial.print ("."); } timeClient.begin ();} void loop () {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, можете да отворите серийния монитор и ако всичко е наред, ще можете да получите времето на серийния монитор, тъй като аз мога да получа времето в моя сериен монитор. Така че с този проект можете да прикачите всеки дисплей и го направете подходящ мрежов часовник. Затова се забавлявайте, като си направите мрежовия часовник.

Препоръчано: