Mündəricat:
- Addım 1: Lazım olan şeylər
- Addım 2: Bağlantılar
- Addım 3: Kitabxanaları yükləyin
- Addım 4: NTP nədir
- Addım 5: Kodlaşdırma Bölməsi
- Addım 6: Tarix və Saat əldə edin
Video: İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: 6 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Salam uşaqlar bu təlimatlarda internetdən vaxt alacaq bir internet saatı quracağıq bu layihənin işləməsi üçün heç bir RTC lazım olmayacaq, yalnız işləyən bir internet bağlantısı lazımdır
Və bu layihə üçün internetə çıxış əldə etmək üçün wifi və saatı göstərmək üçün bir ekrana sahib bir esp8266 lazımdır və esp8266 NTP protokolundan istifadə edərək internetdən vaxt alacaq, ntp şəbəkə vaxtı protokolu deməkdir, buna görə də əsasən ntp serverləri var. kompüter saatlarını sinxronizasiya etmək üçün istifadə olunan vebdə və layihəmizdə vaxt qazanmaq üçün bu serverlərdən istifadə edəcəyik.
Addım 1: Lazım olan şeylər
bu layihə üçün aşağıdakılara ehtiyacınız olacaq:
Esp8266/nodemcu
Oled ssd1306 0.96"
Jumper telləri
Çörək lövhəsi
Usb kabeli
Addım 2: Bağlantılar
Bu 4 pinli OLED displey, I2C protokolu ilə ESP8266 modulu ilə əlaqə qurur, aşağıda İnternet vaxtını göstərmək üçün OLED I2C sancaqlarını NodeMCU ilə birləşdirmək üçün sxem və əlaqələr cədvəli verilmişdir.
Addım 3: Kitabxanaları yükləyin
Şəkildə göstərildiyi kimi Arduino ide -də SD1306 kitabxanalarını yüklədiyinizə və Adafruit GFX kitabxanasına malik olduğunuza əmin olun, əgər bu iki kitabxananı quraşdırmasanız.
Arduino IDE -də Kitabxanalar menecerinə gedin və NTP axtarın və yüklədiyim kimi NTP müştəri kitabxanasını yükləyin, əlavə kömək üçün görüntüyə baxın.
Addım 4: NTP nədir
NTP, kompüter şəbəkələri arasında saatı sinxronizasiya etmək üçün ən qədim şəbəkə İnternet Protokollarından biridir. 1981 -ci ildə Delaver Universitetindən David L. Mills tərəfindən hazırlanmışdır. Bu protokol bir çox şəbəkələri bir neçə milisaniyə ərzində Koordinasiya olunmuş Universal Zamanla (UTC) sinxronizasiya etmək üçün istifadə edilə bilər. UTC, dünyanın saat və saatı tənzimlədiyi əsas vaxt standartıdır. UTC fərqli coğrafi yerlərdə dəyişmir və dəyişir. NTP, vaxt istinadı olaraq UTC -dən istifadə edir və İnternet boyunca dəqiq və sinxron vaxt təmin edir.
NTP iyerarxik müştəri-server modeli üzərində işləyir. Top model, peykdən vaxt alan atom saatı, radio dalğaları, GPS, GSM kimi "stratum0" kimi tanınan istinad saatlarına malikdir. Stratum0 -dan vaxt alan serverlərə "stratum1" və stratum1 -dən vaxt alan serverlərə "stratum2" və s. Bu davam edir və hər dəqiqədən sonra zamanın dəqiqliyi azalmağa davam edir. NTP, sinxronizasiya etmək üçün bir neçə mövcud vaxt mənbəyinin ən yaxşısını avtomatik olaraq seçir, bu da onu qüsurlara dözümlü protokola çevirir. Beləliklə, bu layihədə ESP8266 NodeMCU istifadə edərək NTP serverindən vaxt alırıq və bunu OLED ekranda göstəririk. Eyni növ İnternet saatı əvvəlki dərslikdə ESP32 istifadə edərək qurulmuşdur.
Addım 5: Kodlaşdırma Bölməsi
Tarix və vaxt tələb etmək üçün NTP serverlərinin ünvanı ilə vaxt müştərisini işə salın. Daha yaxşı dəqiqlik üçün coğrafi bölgənizə yaxın olan NTP serverlərinin ünvanını seçin. Burada dünyanın hər yerindən serverlər verən "pool.ntp.org" dan istifadə edirik. Asiyadan server seçmək istəyirsinizsə, "asia.pool.ntp.org" dan istifadə edə bilərsiniz. timeClient, vaxt zonanızın milisaniyələrində UTC vaxtını da alır. Məsələn, Hindistan üçün UTC ofseti +5: 30 -dur, buna görə də bu ofisi 5*60*60 +30*60 = 19800 -ə bərabər olan milisaniyələrə çeviririk.
Sahə. UTC vaxtı ofset (saat və dəqiqə). UTC vaxtı ofset (saniyə)
Hindistan +5: 30 19800
LONDON 0:00. 0
NEW YORK -5: 00 -18000
Zəhmət olmasa aşağıdakı kodu kopyalayın və kodunuza wifi və şifrənizi daxil edin və vaxta görə ofseti daxil edin, sonra esp8266 lövhələrinizə yükləyin.:
#include "NTPClient.h" #include "ESP8266WiFi.h" //, şəbəkəyə qoşulmaq üçün zəng etdiyimiz ESP8266 xüsusi Wi-Fi prosedurlarını təmin edir #include "WiFiUdp.h" // UDP paketlərinin göndərilməsini və qəbul edilməsini idarə edir.
#NodeMCu ilə OLED ilə əlaqə yaratmaq üçün "SPI.h" // SPI daxil edin
#"Adafruit_GFX.h" daxil edin
#"Adafruit_SSD1306.h" daxil edin
#define SCREEN_WIDTH 128 // OLED ekran genişliyi, piksellərlə
#define SCREEN_HEIGHT 64 // OLED ekran hündürlüyü, piksellərlə
#OLED_RESET -1 təyin edin
Adafruit_SSD1306 ekranı (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
constchar *ssid = "yourwifissid";
const char *parol = "sənin wifipass";
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days = {"Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"};
String date_time; // Vaxt server hovuzunu və ofseti təyin edə bilərsiniz (saniyələr ərzində // sonradan setTimeOffset () ilə dəyişdirilə bilər). Əlavə olaraq // yeniləmə aralığını təyin edə bilərsiniz (milisaniyələrdə, setUpdateInterval () istifadə edərək dəyişdirilə bilər).
boş quraşdırma ()
{
Serial.begin (115200);
WiFi.begin (ssid, parol);
isə (WiFi.status ()! = WL_CONNECTED)
{
gecikmə (500);
Serial.print (".");
}
əgər (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("SSD1306 ayrılması uğursuz oldu"));
üçün (;;); // Davam etmə, sonsuza qədər dön
}
display.clearDisplay ();
display.setTextSize (2); // 2X ölçülü mətn çəkin
display.setTextColor (BEYAZ);
display.setCursor (5, 2);
display.println ("HOŞ GELDİNİZ");
display.println ("göstərişli");
display.println ("Layihə");
display.display ();
gecikmə (3000);
timeClient.begin ();
}
boşluq döngəsi ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // 2X ölçülü mətn çəkin
display.setTextColor (MAVİ);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
əgər (ss> 12)
{
ss = ss-12;
ekran. çap (hh);
display.print (":");
ekran çapı (mm);
display.print (":");
display.print (ss);
display.println ("PM");
}
başqa
{
ekran. çap (hh);
display.print (":");
ekran çapı (mm);
display.print (":");
display.print (ss);
display.println ("AM");
}
int gün = timeClient.getDay ();
display.println ("'"+arr_days [gün]+"'");
date_time = timeClient.getFormattedDate ();
int index_date = date_time.indexOf ("T");
String tarixi = date_time.substring (0, index_date);
Serial.println (tarix);
display.println (tarix);
display.display ();
// İlkin mətni göstər}
Addım 6: Tarix və Saat əldə edin
Hər şeyi düzgün bir şəkildə bağlasanız və kodu düzgün yükləsəniz, nedp saatınızın oled ekranda işlədiyini, mənim kimi oled ekranda işlədiyini görə biləcəksiniz. Çıxış üçün görüntüyə baxın.
Tövsiyə:
DIY Arduino istifadə edərək temperaturu LCD ekranda göstərin: 10 addım
DIY Arduino istifadə edərək LCD Ekranda İstiliyi Göstərin: Bu layihədə Arduino, temperatur sensoru və s. Kimi bəzi komponentlərdən istifadə edərək bir dövrə düzəltmək niyyətindəyik. yeni dərəcənin görünüşü arasında
ESP8266 istifadə edərək İnternetdən vaxt əldə etmək - ESP8266 Nodemcu ilə NTP Saat Layihəsi: 5 addım
ESP8266 istifadə edərək İnternetdən vaxt əldə etmək | ESP8266 Nodemcu ilə NTP Saat Layihəsi: Bu təlimatda Arduino IDE ilə ESP8266/nodemcu istifadə edərək necə vaxt qazanacağımızı görəcəyik. Vaxt əldə etmək, oxunuşlarınızı zaman damgası ilə qeyd etmək üçün xüsusilə faydalıdır. ESP8266 layihənizin İnternetə çıxışı varsa, Network T istifadə edərək vaxt qazana bilərsiniz
Heç bir RTC olmadan ESP8266 Şəbəkə Saatı - Nodemcu NTP Saatı RTC yoxdur - İNTERNET SAAT PROJESİ: 4 addım
Heç bir RTC olmadan ESP8266 Şəbəkə Saatı | Nodemcu NTP Saatı RTC yoxdur | İNTERNET SAAT PROJESİ: Layihədə RTC olmadan bir saat layihəsi olacaq, wifi istifadə edərək internetdən vaxt alacaq və st7735 ekranında göstərəcək
Wemos D1 Mini Pro -dan istifadə edərək Blynk Tətbiqinə Tarixi və Saatı basmaq: 10 addım
Wemos D1 Mini Pro istifadə edərək Blynk Tətbiqinə Tarixi və Saatı basmaqla: Vaxtı itələmək üçün Wemos D1 Mini Pro -dan istifadə edəcəyik. Bu fəaliyyət üçün Wemos D1 Mini Pro -ya heç bir komponent bağlamanız lazım olmayacaq
Arduino istifadə edərək P10 LED Ekranda Mətn göstərin: 5 addım (şəkillərlə)
Arduino istifadə edərək P10 LED Ekranda Mətn Göstərin: Dotmatrix Display və ya daha çox Running Text olaraq adlandırılan məhsullar reklam vasitəsi olaraq mağazalarda tez -tez rast gəlinir, işgüzar aktyorların reklam məsləhətləri kimi istifadə etmələrini təşviq edən praktik və çevikdir. İndi Dot istifadə