Mundarija:
- 1 -qadam: Sizga kerak bo'lgan narsalar
- 2 -qadam: ulanishlar
- 3 -qadam: Kutubxonalarni yuklab oling
- 4 -qadam: NTP nima?
- 5 -qadam: Kodlash qismi
- 6 -qadam: Sana va vaqtni olish
Video: Internet soati: NTP protokoli bilan ESP8266 NodeMCU yordamida OLED yordamida sana va vaqtni ko'rsatish: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Salom bolalar, bu ko'rsatmalarni o'qish uchun biz Internetdan vaqt oladigan Internet soatini quramiz, shuning uchun bu loyihani ishga tushirish uchun hech qanday RTC kerak emas, faqat ishlaydigan internet aloqasi kerak.
Va bu loyiha uchun sizga esp8266 kerak bo'ladi, u Internetga kirish uchun wifi va vaqtini ko'rsatadigan displeyga ega bo'ladi va esp8266 NTP protokoli yordamida Internetdan vaqt oladi, ntp tarmoq vaqti protokoli, shuning uchun asosan ntp serverlari mavjud. Internetda kompyuter soatlarini sinxronlashtirish uchun ishlatiladi va biz loyihamizda vaqt topish uchun boshqa serverlardan foydalanamiz.
1 -qadam: Sizga kerak bo'lgan narsalar
Ushbu loyiha uchun sizga quyidagilar kerak bo'ladi:
Esp8266/nodemcu
Oled ssd1306 0,96"
Jumper simlari
Non paneli
Usb kabeli
2 -qadam: ulanishlar
Bu 4-pinli OLED-displey I2C protokoli yordamida ESP8266 moduli bilan aloqa o'rnatadi, Internetda vaqtni ko'rsatish uchun OLED I2C pinlarini NodeMCU bilan ulash uchun sxemalar va ulanishlar jadvali quyida keltirilgan.
3 -qadam: Kutubxonalarni yuklab oling
Arduino ide -dagi SD1306 kutubxonalarini rasmda ko'rsatilgandek yuklaganingizga ishonch hosil qiling va Adafruit GFX kutubxonasiga ishonch hosil qiling, agar bo'lmasa, bu ikkita kutubxonani o'rnating.
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: NTP nima?
NTP - bu kompyuter tarmoqlari orasidagi soatlarni sinxronlashtirish uchun eng qadimgi tarmoqli Internet protokoli. U 1981 yilda Delaver universiteti Devid L. Mills tomonidan ishlab chiqilgan. Bu protokol ko'p tarmoqlarni bir necha millisekund ichida muvofiqlashtirilgan universal vaqtga (UTC) sinxronlashtirish uchun ishlatilishi mumkin. UTC - bu dunyo soat va vaqtni boshqaradigan asosiy vaqt standarti. UTC har xil geografik joylar uchun o'zgarmaydi va farq qiladi. NTP vaqt ma'lumoti sifatida UTCdan foydalanadi va Internetda aniq va sinxron vaqtni ta'minlaydi.
NTP ierarxik mijoz-server modelida ishlaydi. Eng yaxshi modelda sun'iy yo'ldoshdan vaqt oladigan atom soatlari, radio to'lqinlari, GPS, GSM kabi "stratum0" deb nomlanuvchi mos yozuvlar soatlar mavjud. Stratum 0dan vaqt oladigan serverlar "stratum1" deb nomlanadi va stratum1dan vaqt oladigan serverlar "stratum2" deb nomlanadi. Bu davom etadi va har bir bosqichdan keyin vaqtning aniqligi pasayadi. NTP sinxronizatsiya qilish uchun mavjud bo'lgan vaqt manbalarining eng yaxshisini avtomatik ravishda tanlaydi, bu protokolni xatolarga bardoshli qiladi. Shunday qilib, bu loyihada biz ESP8266 NodeMCU yordamida NTP serveridan vaqt olamiz va uni OLED displeyda ko'rsatamiz. Xuddi shu turdagi Internet -soat oldingi qo'llanmada ESP32 yordamida yaratilgan.
5 -qadam: Kodlash qismi
Sana va vaqtni so'rash uchun vaqt mijozini NTP serverlari manzili bilan boshlang. Aniqroq bo'lish uchun geografik hududingizga yaqin bo'lgan NTP serverlarining manzilini tanlang. Bu erda biz butun dunyo bo'ylab serverlarni taqdim etadigan "pool.ntp.org" dan foydalanamiz. Agar siz Osiyodan serverlarni tanlashni xohlasangiz, "asia.pool.ntp.org" dan foydalanishingiz mumkin. timeClient shuningdek, sizning vaqt mintaqangizning millisekundlarida UTC vaqtini o'zgartiradi. Masalan, Hindiston uchun UTC ofset +5: 30, shuning uchun biz bu ofsetni 5*60*60 +30*60 = 19800 ga teng millisekundlarga aylantiramiz.
Hudud. UTC vaqtini almashtirish (soat va daqiqa). UTC vaqtini almashtirish (soniya)
Hindiston +5: 30 19800
LONDON 0:00. 0
Nyu -York -5:00 -18000
Iltimos, quyidagi kodni nusxa ko'chiring va Wi -Fi va parolingizni kodga kiriting va vaqtni ofsetga kiriting, so'ng uni esp8266 taxtangizga yuklang.:
#include "NTPClient.h" #include "ESP8266WiFi.h" // tarmoqqa ulanish uchun qo'ng'iroq qilayotgan ESP8266 o'ziga xos Wi-Fi tartibini taqdim etadi #include "WiFiUdp.h" // UDP paketlarini yuborish va qabul qilishni boshqaradi.
#OLED -ni NodeMCu bilan bog'lash uchun "SPI.h" // SPI -ni qo'shing
#"Adafruit_GFX.h" ni qo'shing
#"Adafruit_SSD1306.h" ni qo'shing
#define SCREEN_WIDTH 128 // OLED displey kengligi, piksellarda
#define SCREEN_HEIGHT 64 // OLED displey balandligi, piksellarda
#OLED_RESET -1 ni belgilang
Adafruit_SSD1306 displeyi (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
constchar *ssid = "yourwifissid";
const char *password = "yourwifipass";
WiFiUDP ntPUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days = {"Yakshanba", "Dushanba", "Seshanba", "Chorshanba", "Payshanba", "Juma", "Shanba"};
String date_time; // Vaqt serveri havzasini va ofsetini belgilashingiz mumkin (soniyalarda // keyinchalik setTimeOffset () yordamida o'zgartirilishi mumkin). Bundan tashqari, siz // yangilanish oralig'ini belgilashingiz mumkin (millisekundlarda, setUpdateInterval () yordamida o'zgartirilishi mumkin).
bo'sh o'rnatish ()
{
Serial.begin (115200);
WiFi.begin (ssid, parol);
esa (WiFi.status ()! = WL_CONNECTED)
{
kechikish (500);
Serial.print (".");
}
agar (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("SSD1306 ajratib bo'lmadi"));
uchun(;;); // Davom etma, abadiy aylan
}
display.clearDisplay ();
display.setTextSize (2); // 2X o'lchovli matnni chizish
display.setTextColor (oq);
display.setCursor (5, 2);
display.println ("Xush kelibsiz");
display.println ("ko'rsatmali");
display.println ("Loyiha");
display.display ();
kechikish (3000);
timeClient.begin ();
}
bo'sh halqa ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // 2X o'lchovli matnni chizish
display.setTextColor (KO'K);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
agar (ss> 12)
{
hh = hh-12;
display.print (hh);
display.print (":");
displey. bosma (mm);
display.print (":");
display.print (ss);
display.println ("PM");
}
boshqa
{
display.print (hh);
display.print (":");
displey. bosma (mm);
display.print (":");
display.print (ss);
display.println ("AM");
}
int kun = timeClient.getDay ();
display.println ("'"+arr_days [kun]+"'");
date_time = timeClient.getFormattedDate ();
int index_date = date_time.indexOf ("T");
String sanasi = date_time.substring (0, index_date);
Serial.println (sana);
display.println (sana);
display.display ();
// Boshlang‘ich matnni ko‘rsatish}
6 -qadam: Sana va vaqtni olish
Agar siz hamma narsani to'g'ri ulab qo'ysangiz va kodni to'g'ri yuklagan bo'lsangiz, siz ntp soatingizni oled displeyda ishlayotganini ko'rasiz. Chiqish uchun rasmga qarang.
Tavsiya:
DIY Visuino -dan foydalanib M5StickC ESP32 -da vaqtni qanday ko'rsatish kerak - Qilish oson: 9 qadam
DIY M5StickC ESP32 -da vaqtni Visuino -dan qanday ko'rsatish kerak - Qilish oson: Ushbu qo'llanmada biz ESP32 M5Stack StickC -ni Arduino IDE va Visuino -da LCD displeyda ko'rsatish uchun dasturlashni o'rganamiz
Makey Makey ko'rsatish va ko'rsatish: 12 qadam (rasmlar bilan)
Makey Makey Show va Tell Display: 19 yillik o'qituvchilik faoliyatimdan so'ng, men hech qachon yangi, yorqin va hayajonli e'lonlar taxtasiga bo'lgan muhabbatimni yo'qotmaganman! Mening e'lonlar taxtasi uslubi yillar mobaynida chiroyli, do'konda, bayramga bag'ishlangan kesmalardan tortib, o'quvchilarim ishining mazmunli qismlariga qadar rivojlandi. Men
Visuino - Internet NIST serveridan NodeMCU yordamida aniq vaqtni oling: 8 qadam
Visuino - Internet NIST serveridan NodeMCU yordamida aniq vaqtni oling: Ushbu qo'llanmada biz NodeMCU Mini, OLED Lcd va Visuino -dan NIST Server -dan Lcd -da jonli Internet vaqtini ko'rsatish uchun foydalanamiz. Namoyish videosini tomosha qiling. Ilhom manbai youtube foydalanuvchisi " Ciprian Balalau "
ESP8266 hech qanday RTCsiz tarmoq soati - Nodemcu NTP soati RTC yo'q - INTERNET CLOCK LOYIHASI: 4 qadam
ESP8266 hech qanday RTCsiz tarmoq soati | Nodemcu NTP soati RTC yo'q | INTERNET CLOCK LOYIHASI: Loyihada RTCsiz soat loyihasi yaratiladi, wifi yordamida internetdan vaqt oladi va uni st7735 displeyida ko'rsatadi
Wemos D1 Mini Pro yordamida Blynk ilovasiga sana va vaqtni kiritish: 10 qadam
Wemos D1 Mini Pro yordamida Blynk ilovasiga sana va vaqt surish: Biz Wemos D1 Mini Pro -dan vaqtni surish uchun foydalanamiz & Blynk ilovasining sanasi, bu faoliyat uchun hech qanday komponentni Wemos D1 Mini Pro -ga ulash shart emas