Სარჩევი:

დრო ინტერნეტისგან ESP8266 გამოყენებით NTP საათის პროექტი ESP8266 Nodemcu– ით: 5 ნაბიჯი
დრო ინტერნეტისგან ESP8266 გამოყენებით NTP საათის პროექტი ESP8266 Nodemcu– ით: 5 ნაბიჯი

ვიდეო: დრო ინტერნეტისგან ESP8266 გამოყენებით NTP საათის პროექტი ESP8266 Nodemcu– ით: 5 ნაბიჯი

ვიდეო: დრო ინტერნეტისგან ESP8266 გამოყენებით NTP საათის პროექტი ESP8266 Nodemcu– ით: 5 ნაბიჯი
ვიდეო: რამდენი წუთი ვსაუბრობთ მობილურით საქართველოში 2024, ნოემბერი
Anonim
დრო ინტერნეტისგან ESP8266 გამოყენებით NTP საათის პროექტი ESP8266 Nodemcu– ით
დრო ინტერნეტისგან ESP8266 გამოყენებით NTP საათის პროექტი ESP8266 Nodemcu– ით

ამ გაკვეთილში ჩვენ ვნახავთ, თუ როგორ უნდა ვიშოვოთ დრო ESP8266/nodemcu– ს გამოყენებით Arduino IDE– ით. დროის მოპოვება განსაკუთრებით სასარგებლოა მონაცემთა აღრიცხვისას, რათა დროულად მონიშნოს თქვენი კითხვა. თუ თქვენს ESP8266 პროექტს აქვს ინტერნეტი, შეგიძლიათ მიიღოთ დრო ქსელის დროის პროტოკოლის (NTP) გამოყენებით - თქვენ არ გჭირდებათ რაიმე დამატებითი ტექნიკა. თქვენ შეგიძლიათ დაუკავშიროთ თქვენი ESP8266 თქვენს wifi ქსელს და ეს იქნება საათი, რომელიც იქნება სინქრონიზებული ქსელთან ერთად, ასე რომ, თუ ერთხელ ატვირთავთ კოდს, ის მიიღებს დროს ინტერნეტიდან, ასე რომ ის ყოველთვის აჩვენებს სწორ დროს.

ნაბიჯი 1: ის, რაც გჭირდებათ

ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ

ამ პროექტისთვის დაგჭირდებათ ძალიან ცოტა რამ: ESP8266/NODEMCUA USB კაბელი მისი დასაპროგრამებლად.

ნაბიჯი 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: კოდირების ნაწილი

კოდირების ნაწილი
კოდირების ნაწილი
კოდირების ნაწილი
კოდირების ნაწილი

გთხოვთ, დააკოპიროთ შემდეგი კოდი და ჩაწეროთ თქვენი ქსელის რწმუნებათა სიგელები თქვენს კოდში, შემდეგ თქვენ უნდა დააყენოთ offsettime ჩემთვის ეს არის 19800 რადგან ჩემი დროის ზონა არის utc+5: 30 ასე რომ UTC +5: 30 = 5.5*60*60 = 19800UTC+1 = 1*60*60 = 3600 გამოთვალეთ თქვენი დროის ზონა და შეცვალეთ და შემდეგ ატვირთეთ კოდი.#მოიცავს "NTPClient.h"#მოიცავს "ESP8266WiFi.h"#მოიცავს "WiFiUdp.h" const char*ssid = "***** ****** "; const char*პაროლი =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" კვირა "," ორშაბათი ", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"}; // განსაზღვრეთ NTP კლიენტი დროის მისაღებადWiFiUDP 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: დროის დადგენა

მიღების TIME
მიღების TIME

კოდის Esp8266– ზე ატვირთვის შემდეგ თქვენ შეგიძლიათ გახსნათ სერიული მონიტორი და თუ ყველაფერი კარგადაა მაშინ შეძლებთ დრო მიიღოთ სერიულ მონიტორზე, რადგან მე შემიძლია დრო მივიღო ჩემს სერიულ მონიტორზე. ასე რომ ამ პროექტთან ერთად შეგიძლიათ დაურთოთ ნებისმიერი აჩვენეთ და გახადეთ შესაბამისი ქსელის საათი. ასე რომ გაერთეთ თქვენი ქსელის საათის დამზადებით.

გირჩევთ: