Mundarija:

ESP8266 yordamida Internetdan vaqt olish - ESP8266 Nodemcu bilan NTP soat loyihasi: 5 qadam
ESP8266 yordamida Internetdan vaqt olish - ESP8266 Nodemcu bilan NTP soat loyihasi: 5 qadam

Video: ESP8266 yordamida Internetdan vaqt olish - ESP8266 Nodemcu bilan NTP soat loyihasi: 5 qadam

Video: ESP8266 yordamida Internetdan vaqt olish - ESP8266 Nodemcu bilan NTP soat loyihasi: 5 qadam
Video: MAX6675 Температура термопары через WiFi с ESP8266 NodeMCU D1 Mini 2024, Iyul
Anonim
ESP8266 yordamida Internetdan vaqt olish | ESP8266 Nodemcu bilan NTP soat loyihasi
ESP8266 yordamida Internetdan vaqt olish | ESP8266 Nodemcu bilan NTP soat loyihasi

Ushbu qo'llanmada biz Arduino IDE bilan ESP8266/nodemcu yordamida vaqtni qanday sarflashni bilib olamiz. Vaqt olish, ayniqsa, o'qish vaqtini belgilash uchun ma'lumotlarni jurnalga yozishda foydalidir. Agar sizning ESP8266 loyihangiz Internetga kirish imkoniga ega bo'lsa, siz tarmoq vaqt protokoli (NTP) yordamida vaqt topishingiz mumkin - sizga qo'shimcha uskunalar kerak emas, siz ESP8266 -ni Wi -Fi tarmog'iga ulashingiz mumkin va u sinxronlashtiriladigan soat bo'ladi. tarmoq bilan, agar siz kodni yuklaganingizdan so'ng, u Internetdan vaqt oladi, shuning uchun u har doim to'g'ri vaqtni ko'rsatadi.

1 -qadam: Sizga kerak bo'lgan narsalar

Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar

Ushbu loyiha uchun sizga juda kam narsa kerak bo'ladi: uni dasturlash uchun ESP8266/NODEMCUA USB kabeli.

2 -qadam: NTP nima va u qanday ishlaydi?

NTP nima va u qanday ishlaydi?
NTP nima va u qanday ishlaydi?
NTP nima va u qanday ishlaydi?
NTP nima va u qanday ishlaydi?

NTP nima: NTP tarmoq vaqt protokoli degan ma'noni anglatadi. Kompyuter soatlarini tarmoq orqali sinxronlashtirish uchun standart Internet protokoli (IP), protokoldan barcha tarmoqli qurilmalarni muvofiqlashtirilgan universal vaqtga (UTC) sinxronlashtirish uchun foydalanish mumkin. Mijoz tomonidan zona almashinuvi yoki kunduzgi yorug'lik tejash vaqtini hisoblash qo'llaniladi. Shunday qilib, mijozlar joylashuvi va vaqt mintaqasidagi farqlardan qat'i nazar, serverlarga sinxronlashlari mumkin, bu biz uchun qanday ishlaydi: ESP8266 kabi mijoz qurilmasi serverga 123. A portidagi Foydalanuvchi ma'lumotlar jadvalining protokoli (UDP) yordamida ulanadi. NTP serveriga so'rovlar to'plami. Bu so'rovga javoban NTP serveri vaqt tamg'asi paketini yuboradi. Vaqt tamg'asi paketida UNIX vaqt tamg'asi, aniqlik, kechikish yoki vaqt zonasi kabi bir nechta ma'lumotlar mavjud bo'lib, mijoz joriy sana va vaqt qiymatlarini tahlil qilishi mumkin.

3 -qadam: Arduino IDE -da kutubxonani o'rnatish

Kutubxonani Arduino IDE -ga o'rnatish
Kutubxonani Arduino IDE -ga o'rnatish

Arduino IDE -da kutubxonalar menejeriga o'ting va NTP -ni qidiring va men yuklaganimdek NTP mijozlar kutubxonasini yuklab oling, qo'shimcha yordam uchun rasmga qarang.

4 -qadam: Kodlash qismi

Kodlash qismi
Kodlash qismi
Kodlash qismi
Kodlash qismi

Iltimos, quyidagi kodni nusxa ko'chiring va tarmoq ma'lumotlarini kodingizga kiriting, keyin siz men uchun ofset vaqtini 19800 ga qo'yishingiz kerak, chunki mening vaqt mintaqam utc+5: 30, shuning uchun UTC +5: 30 = 5.5*60*60 = 19800UTC+1 = 1*60*60 = 3600 Vaqt mintaqangizni hisoblang va uni tahrirlang va keyin kodni yuklang.#O'z ichiga "NTPClient.h"#"ESP8266WiFi.h" ni qo'shing##WiFiUdp.h "const char*ssid =" ***** qo'shing ****** "; const char*parol =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" Yakshanba "," Dushanba ", "Seshanba", "chorshanba", "payshanba", "juma", "shanba"}; // timeWiFiUDP ntpUDP olish uchun NTP mijozini belgilang; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); sozlamalarni bekor qilish () {Serial.begin (115200); WiFi.begin (ssid, parol); while (WiFi.status ()! = WL_CONNECTED) {kechiktirish (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 ()); kechikish (1000);}

5 -qadam: Vaqt olish

TIME olish
TIME olish

Kodni Esp8266 -ga yuklaganingizdan so'ng, siz ketma -ket monitorni ochishingiz mumkin va agar hamma narsa yaxshi bo'lsa, siz ketma -ket monitorda vaqtni olishingiz mumkin, chunki men ketma -ket monitorimda vaqtni olaman. ko'rsatish va uni to'g'ri tarmoq soatiga aylantirish. Shunday qilib, tarmoq soatini yasashdan zavqlaning.

Tavsiya: