Բովանդակություն:
- Քայլ 1: Ձեզ անհրաժեշտ բաներ
- Քայլ 2: Միացումներ
- Քայլ 3: Ներբեռնեք գրադարաններ
- Քայլ 4: Ինչ է NTP- ը
- Քայլ 5. Կոդավորման մաս
- Քայլ 6: Ստանալ ամսաթիվ և ժամ
Video: Ինտերնետային ժամացույց. Dateուցադրել ամսաթիվը և ժամը OLED- ով ՝ օգտագործելով ESP8266 NodeMCU ՝ NTP արձանագրությամբ ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Ողջույն տղերք, այս դասագրքերում մենք կկառուցենք ինտերնետային ժամացույց, որը ժամանակ կստանա ինտերնետից, այնպես որ այս նախագծին աշխատելու համար ոչ մի RTC կարիք չի ունենա, այն կպահանջի միայն աշխատող ինտերնետ կապ
Եվ այս նախագծի համար ձեզ հարկավոր է esp8266, որը կունենա wifi ինտերնետ հասանելիություն ստանալու համար և էկրան ՝ դրա վրա ժամանակը ցուցադրելու համար, իսկ esp8266- ը ինտերնետից ժամանակ կբերի ՝ օգտագործելով NTP արձանագրություն, ntp նշանակում է ցանցի ժամանակի արձանագրություն, ուստի հիմնականում կան ntp սերվերներ համացանցում, որոնք օգտագործվում են համակարգչային ժամացույցները համաժամացնելու համար, և մենք կօգտագործենք այդ սերվերները ՝ մեր նախագծում ժամանակ գտնելու համար:
Քայլ 1: Ձեզ անհրաժեշտ բաներ
Այս նախագծի համար ձեզ հարկավոր են հետևյալ իրերը.
Esp8266/nodemcu
Օլեդ ssd1306 0.96"
Jumper լարերը
Breadboard
USB մալուխ
Քայլ 2: Միացումներ
Այս 4-պինյա OLED էկրանը հաղորդակցվում է ESP8266 մոդուլի հետ I2C արձանագրության միջոցով: Ստորև բերված են սխեմայի դիագրամը և միացումների աղյուսակը `OLED I2C կապերը NodeMCU- ի հետ ինտերնետի ժամանակը ցուցադրելու համար:
Քայլ 3: Ներբեռնեք գրադարաններ
Համոզվեք, որ ներբեռնել եք SD1306 գրադարանները ձեր Arduino ide- ում, ինչպես ցույց է տրված նկարում և համոզվեք, որ Adafruit GFX գրադարանը նույնպես, եթե ոչ, ապա տեղադրեք այս երկու գրադարանները:
Ձեր Arduino IDE- ում գնացեք Գրադարանների կառավարիչ և փնտրեք NTP և պարզապես ներբեռնեք NTP հաճախորդների գրադարանը, ինչպես ներբեռնեցի, հետագա օգնության համար հղեք պատկերը:
Քայլ 4: Ինչ է NTP- ը
NTP- ը համակարգչային ցանցերի միջև ժամացույցների համաժամացման համար ամենահին ինտերնետային արձանագրությունն է (IP): Այն նախագծվել է Դելավեր նահանգի համալսարանից Դեյվիդ Լ. Միլսի կողմից 1981 թ.: UTC- ն ժամանակի առաջնային ստանդարտն է, որով աշխարհը կարգավորում է ժամացույցը և ժամանակը: UTC- ն չի փոխվում և տարբերվում է տարբեր աշխարհագրական վայրերի համար: NTP- ն օգտագործում է UTC- ն որպես ժամանակի տեղեկանք և ապահովում է ճշգրիտ և համաժամեցված ժամանակ ամբողջ ինտերնետում:
NTP- ն աշխատում է հիերարխիկ հաճախորդ-սերվեր մոդելի վրա: Թոփ մոդելը ունի տեղեկատու ժամացույցներ, որոնք հայտնի են որպես «շերտ 0» ՝ ատոմային ժամացույցներ, ռադիոալիքներ, GPS, GSM, որոնք ժամանակ են ստանում արբանյակից: Այն սերվերները, որոնք ժամանակ են ստանում շերտ 0 -ից, կոչվում են «շերտ 1», իսկ սերվերները, որոնք ժամանակ են ստանում շերտ 1 -ից, կոչվում են «շերտ 2» և այլն: Սա շարունակվում է, և ժամանակի ճշգրտությունը նվազում է յուրաքանչյուր փուլից հետո: NTP- ն ինքնաբերաբար ընտրում է համաժամացման մի քանի մատչելի ժամանակի աղբյուրներից լավագույնը, ինչը դարձնում է այն սխալների հանդուրժող ունակ արձանագրություն: Այսպիսով, այս նախագծում մենք ժամանակ ենք ստանում NTP սերվերից ՝ օգտագործելով ESP8266 NodeMCU և այն ցուցադրում ենք OLED էկրանին: Նմանատիպ ինտերնետ ժամացույցը ստեղծվել է ESP32- ի օգտագործմամբ ՝ նախորդ ձեռնարկում:
Քայլ 5. Կոդավորման մաս
Ամսաթիվ և ժամ խնդրելու համար նախաստորագրեք ժամանակի հաճախորդին `NTP սերվերների հասցեով: Ավելի լավ ճշգրտության համար ընտրեք NTP սերվերների հասցեն, որոնք մոտ են ձեր աշխարհագրական տարածքին: Այստեղ մենք օգտագործում ենք «pool.ntp.org» - ը, որը սերվերներ է տալիս աշխարհից: Եթե ցանկանում եք սերվերներ ընտրել Ասիայից, կարող եք օգտագործել «asia.pool.ntp.org» - ը: timeClient- ը նաև UTC ժամանակը փոխհատուցում է ձեր ժամային գոտու միլիվայրկյաններով: Օրինակ, Հնդկաստանի համար UTC փոխհատուցումը +5: 30 է, ուստի մենք փոխում ենք այս օֆսեթը միլիվայրկյաններով, որը հավասար է 5*60*60 +30*60 = 19800:
Տարածք: UTC ժամանակի փոխհատուցում (ժամեր և րոպեներ): UTC ժամանակի փոխհատուցում (վայրկյան)
Հնդկաստան +5: 30 19800
ԼՈՆԴՈՆ 0:00: 0
ՆՅՈ Y ՅՈՐՔ -5: 00 -18000
Խնդրում ենք պատճենել հետևյալ ծածկագիրը և ծածկագրում մուտքագրել ձեր WiFi- ն և գաղտնաբառը և մուտքագրել ծածկագրում ժամանակի անջատումը, այնուհետև վերբեռնել այն ձեր esp8266 տախտակներին::
#ներառել «NTPClient.h» #ներառել «ESP8266WiFi.h» // ապահովում է ESP8266 հատուկ Wi-Fi ռեժիմներ, որոնք մենք կոչ ենք անում միանալ ցանցին #ներառել «WiFiUdp.h» // կարգավորում է UDP փաթեթների ուղարկումը և ստացումը
#ներառել «SPI.h» // SPI ՝ NodeMCu- ի հետ OLED- ին միանալու համար
#ներառել «Adafruit_GFX.h»
#ներառել «Adafruit_SSD1306.h»
#սահմանեք SCREEN_WIDTH 128 // OLED ցուցադրման լայնությունը ՝ պիքսելներով
#սահմանեք SCREEN_HEIGHT 64 // OLED ցուցադրման բարձրությունը ՝ պիքսելներով
#սահմանեք OLED_RESET -1
Adafruit_SSD1306 էկրան (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
constchar *ssid = "yourwifissid";
const char *գաղտնաբառ = "yourwifipass";
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days = {"կիրակի", "երկուշաբթի", "երեքշաբթի", "չորեքշաբթի", "հինգշաբթի", "ուրբաթ", "շաբաթ"};
Լարային ամսաթիվ_ժամանակ; // Դուք կարող եք նշել ժամանակի սերվերի ավազանը և օֆսեթը (վայրկյանների ընթացքում կարող է // փոխվել ավելի ուշ ՝ setTimeOffset () - ով): Լրացուցիչ կարող եք նշել // թարմացման միջակայքը (միլիվայրկյաններում, կարող է փոխվել ՝ օգտագործելով setUpdateInterval ()):
դատարկ կարգավորում ()
{
Serial.begin (115200);
WiFi.begin (ssid, գաղտնաբառ);
իսկ (WiFi.status ()! = WL_CONNECTED)
{
ուշացում (500);
Serial.print (".");
}
եթե (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F («SSD1306 հատկացումը ձախողվեց»));
համար (;;); // Մի՛ շարունակիր, ընդմիշտ շրջանցիր
}
display.clearDisplay ();
display.setTextSize (2); // Նկարեք 2X մասշտաբի տեքստ
display.setTextColor (ՍՊԻՏԱԿ);
display.setCursor (5, 2);
display.println ("Բարի գալուստ");
display.println («հրահանգներ»);
display.println («Նախագիծ»);
display.display ();
ուշացում (3000);
timeClient.begin ();
}
դատարկ շրջան ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // Նկարեք 2X մասշտաբի տեքստ
display.setTextColor (Կապույտ);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
եթե (ժ> 12)
{
hh = hh-12;
ցուցադրում: տպել (ժ);
display.print (":");
ցուցադրում: տպել (մմ);
display.print (":");
display.print (ss);
display.println («PM»);
}
ուրիշ
{
ցուցադրում: տպել (ժ);
display.print (":");
ցուցադրում: տպել (մմ);
display.print (":");
display.print (ss);
display.println («AM»);
}
int օր = timeClient.getDay ();
display.println ("'"+arr_days [day]+"'");
date_time = timeClient.getFormattedDate ();
int index_date = date_time.indexOf («T»);
Լարային ամսաթիվ = date_time.substring (0, index_date);
Serial.println (ամսաթիվ);
display.println (ամսաթիվ);
display.display ();
// Showուցադրել սկզբնական տեքստը}
Քայլ 6: Ստանալ ամսաթիվ և ժամ
եթե ամեն ինչ ճիշտ եք միացրել և ծածկագիրը նույնպես ճիշտ եք վերբեռնել, ապա կկարողանաք տեսնել ձեր ntp ժամացույցը, որն աշխատում է յուղոտ էկրանով, ինչպես իմը ՝ յուղացված էկրանով աշխատող: Խնդրում ենք ուղարկել պատկերը ելքի համար:
Խորհուրդ ենք տալիս:
Ինչպես պատրաստել անալոգային ժամացույց և թվային ժամացույց Led Strip- ով `օգտագործելով Arduino: 3 քայլ
Ինչպես պատրաստել անալոգային ժամացույց և թվային ժամացույց Led Strip- ով Arduino- ի միջոցով. Այսօր մենք պատրաստելու ենք անալոգային ժամացույց & Թվային ժամացույց Led Strip- ով և MAX7219 Dot մոդուլով Arduino- ով: willամանակը կուղղի տեղական ժամային գոտու հետ: Անալոգային ժամացույցը կարող է օգտագործել ավելի երկար LED ժապավեն, այնպես որ այն կարող է կախվել պատից ՝ արվեստի գործ դառնալու համար
ESP8266 Networkանցային ժամացույց առանց որևէ RTC - Nodemcu NTP ockամացույց No RTC - ԻՆՏԵՐՆԵՏ CLԱՄԱՈՅԹԻ JՐԱԳԻՐ ՝ 4 քայլ
ESP8266 Networkանցային ժամացույց առանց որևէ RTC | Nodemcu NTP ockամացույց No RTC | TERՐԱԳԻՐԻ TERԱՄԱՆԱԿԻ PROՐԱԳԻՐ. Նախագծում կկատարվի ժամացույցի նախագիծ առանց RTC- ի, ինտերնետից ժամանակ կպահանջվի wifi- ի միջոցով և այն կցուցադրվի st7735 էկրանին
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96: 5 քայլ
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 Իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96. Բարև տղերք, այս ձեռնարկում մենք կտեսնենք, թե ինչպես պատրաստել աշխատանքային ժամացույց ՝ օգտագործելով իրական ժամանակի DS1307 ժամացույցի մոդուլ և AMP; OLED էկրաններ: Այսպիսով, մենք կկարդանք ժամանակը ժամացույցի մոդուլից DS1307: Եվ տպեք այն OLED էկրանին
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE - RTC Իրական ժամանակի ժամացույց M5stack M5stick-C: 4 քայլ
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE | RTC Իրական ժամանակի ժամացույց M5stack M5stick-C- ով: Ողջույն, այս հրահանգների ընթացքում մենք կսովորենք, թե ինչպես պատրաստել ժամացույց m5stack- ի m5stick-C մշակումով Arduino IDE- ով: Այսպիսով, m5stick- ը կցուցադրի ամսաթիվ, ժամ և AMP; ամսվա շաբաթը ցուցադրվում է
Ինտերնետային ժամացույց (NTP) IoT նախագծերի համար. 6 քայլ
Ինտերնետ ժամացույց (NTP) IoT նախագծերի համար. Այս նախագիծը կօգնի ձեզ ինտերնետից ժամանակ ստանալ IoT նախագծերի համար ՝ առանց լրացուցիչ RTC սարքավորում պահանջելու: Այս ձեռնարկում մենք կքննարկենք, թե ինչպես օգտագործել Nokia LCD 5110 -ը, ստանալ NTP տվյալներ ինտերնետից և ցուցադրել դրանք LCD- ում `հատուկ կոորդինատներով: Եկեք ունենանք