Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bagay na Kailangan mo
- Hakbang 2: Mga Koneksyon
- Hakbang 3: Mag-download ng Mga Aklatan
- Hakbang 4: Ano ang NTP
- Hakbang 5: Bahagi ng Coding
- Hakbang 6: Pagkuha ng Petsa at Oras
Video: Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na kukuha ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang gumaganang koneksyon sa internet
At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng wifi upang makakuha ng access sa internet at isang display upang maipakita ang oras dito at ang esp8266 ay kukuha ng oras mula sa internet gamit ang NTP protocol, ang ntp ay nangangahulugang network time protocol, kaya karaniwang may mga server ng NTP sa web na ginagamit upang pagsabayin ang mga orasan ng computer at gagamit kami ng mga server ng bthose upang makakuha ng oras sa aming proyekto.
Hakbang 1: Mga Bagay na Kailangan mo
para sa proyektong ito kakailanganin mo ang mga sumusunod na bagay:
Esp8266 / nodemcu
Oled ssd1306 0.96"
Jumper wires
Breadboard
Kable ng USB
Hakbang 2: Mga Koneksyon
Ang 4-pin na OLED display na ito ay nakikipag-usap sa module na ESP8266 gamit ang I2C protocol, sa ibaba ay ang diagram ng circuit at talahanayan ng mga koneksyon upang ikonekta ang mga pin ng OLED I2C sa NodeMCU upang ipakita ang oras ng Internet.
Hakbang 3: Mag-download ng Mga Aklatan
Tiyaking na-download mo ang mga aklatan ng SD1306 sa Iyong Arduino id tulad ng ipinakita sa imahe at tiyaking Adafruit GFX library din, kung hindi pagkatapos mai-install ang dalawang aklatan na ito.
Sa iyong Arduino IDE pumunta sa manager ng Mga Aklatan at maghanap para sa NTP at i-download lamang ang library ng client ng NTP habang na-download ko, mag-refer ng imahe para sa karagdagang tulong.
Hakbang 4: Ano ang NTP
Ang NTP ay isa sa pinakalumang networking Internet Protocol (IP) para sa pag-syncing ng mga orasan sa pagitan ng mga network ng computer. Dinisenyo ito ni David L. Mills ng Unibersidad ng Delaware noong 1981. Ang protokol na ito ay maaaring magamit upang mai-synchronize ang maraming mga network sa Coordinated Universal Time (UTC) sa loob ng ilang milliseconds. Ang UTC ay ang pangunahing pamantayan sa oras kung saan kinokontrol ng mundo ang orasan at oras. Ang UTC ay hindi nagbabago at nag-iiba para sa iba't ibang mga lokasyon ng heograpiya. Gumagamit ang NTP ng UTC bilang sanggunian ng oras at nagbibigay ng tumpak at nasabay na oras sa buong Internet.
Gumagana ang NTP sa isang hierarchical na modelo ng client-server. Nangungunang modelo ay may mga sanggunian na orasan na kilala bilang "stratum0" tulad ng mga atomic na orasan, radio wave, GPS, GSM na tumatanggap ng oras mula sa satellite. Ang mga server na tumatanggap ng oras mula sa stratum0 ay tinawag bilang "stratum1" at ang mga server na tumatanggap ng oras mula sa stratum1 ay tinawag na "stratum2" at iba pa. Nagpapatuloy ito at ang kawastuhan ng oras ay patuloy na bumababa pagkatapos ng bawat yugto. Awtomatikong pipiliin ng NTP ang pinakamahusay sa maraming magagamit na mga mapagkukunan ng oras upang mai-synchronize na ginagawang mapagparaya sa kasalanan na may kakayahang protokol. Kaya dito sa proyektong ito, nakakakuha kami ng oras mula sa NTP server gamit ang ESP8266 NodeMCU at ipinapakita ito sa OLED display. Ang parehong uri ng orasan sa Internet ay binuo sa pamamagitan ng paggamit ng ESP32 sa nakaraang tutorial.
Hakbang 5: Bahagi ng Coding
Upang humiling ng petsa at oras, simulan ang client ng oras sa address ng mga NTP server. Para sa mas mahusay na kawastuhan piliin ang address ng mga NTP server na malapit sa iyong lugar na pangheograpiya. Dito ginagamit namin ang "pool.ntp.org" na nagbibigay sa mga server mula sa buong mundo. Kung nais mong pumili ng mga server mula sa Asya maaari mong gamitin ang "asia.pool.ntp.org". Ang TimeClient ay tumatagal din ng offset ng oras ng UTC sa milliseconds ng iyong timezone. Halimbawa, ang offset ng UTC para sa India ay +5: 30 kaya't binago namin ang offset na ito sa milliseconds na katumbas ng 5 * 60 * 60 + 30 * 60 = 19800.
Lugar. Oras ng offset ng oras (oras at minuto). Oras ng offset ng oras (segundo)
INDIA +5: 30 19800
LONDON 0:00. 0
BAGONG YORK -5: 00 -18000
Mangyaring kopyahin ang sumusunod na code at ipasok ang iyong wifi at password sa code at Ipasok ang oras na offset sa code pagkatapos ay i-upload ito sa iyong mga esp8266 board.:
# isama ang "NTPClient.h" #include "ESP8266WiFi.h" // ay nagbibigay ng ESP8266 tiyak na mga gawain sa Wi-Fi na tinatawagan namin upang kumonekta sa network # isama ang "WiFiUdp.h" // humahawak sa pagpapadala at pagtanggap ng mga package ng UDP
# isama ang "SPI.h" // SPI para sa interfaced OLED sa NodeMCu
# isama ang "Adafruit_GFX.h"
# isama ang "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // OLED display width, sa mga pixel
#define SCREEN_HEIGHT 64 // OLED taas ng display, sa mga pixel
# tukuyin ang OLED_RESET -1
Display ng Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
constchar * ssid = "yourwifissid";
const char * password = "yourwifipass";
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
Mga string arr_day = {"Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"};
String date_time; // Maaari mong tukuyin ang time server pool at ang offset (sa mga segundo, maaaring // mabago sa paglaon gamit ang setTimeOffset ()). Additionaly maaari mong tukuyin ang // interval ng pag-update (sa milliseconds, maaaring mabago gamit ang setUpdateInterval ()).
walang bisa ang pag-setup ()
{
Serial.begin (115200);
WiFi.begin (ssid, password);
habang (WiFi.status ()! = WL_CONNected)
{
pagkaantala (500);
Serial.print (".");
}
kung (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("Nabigo ang paglalaan ng SSD1306"));
para sa (;;); // Huwag magpatuloy, mag-loop magpakailanman
}
display.clearDisplay ();
display.setTextSize (2); // Gumuhit ng teksto ng 2X-scale
display.setTextColor (PUTI);
display.setCursor (5, 2);
display.println ("WELCOME TO");
display.println ("itinuturo");
display.println ("Project");
display.display ();
pagkaantala (3000);
timeClient.begin ();
}
walang bisa loop ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // Gumuhit ng teksto ng 2X-scale
display.setTextColor (BLUE);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
kung (hh> 12)
{
hh = hh-12;
display.print (hh);
display.print (":");
display.print (mm);
display.print (":");
display.print (ss);
display.println ("PM");
}
iba pa
{
display.print (hh);
display.print (":");
display.print (mm);
display.print (":");
display.print (ss);
display.println ("AM");
}
int day = timeClient.getDay ();
display.println ("'" + arr_day [araw] + "'");
date_time = timeClient.getFormattedDate ();
int index_date = date_time.indexOf ("T");
Petsa ng string = date_time.substring (0, index_date);
Serial.println (petsa);
display.println (petsa);
display.display ();
// Ipakita ang paunang teksto}
Hakbang 6: Pagkuha ng Petsa at Oras
kung ikinonekta mo nang maayos ang lahat at Na-upload nang maayos ang code pati na rin makikita mo ang iyong ntp na orasan na tumatakbo sa oled display bilang minahan sa pagtakbo sa oled display. Mangyaring mag-refer sa imahe para sa output.
Inirerekumendang:
ESP8266 OLED - Kumuha ng Oras at Petsa Mula sa Internet: 8 Hakbang
ESP8266 OLED - Kumuha ng Oras at Petsa Mula sa Internet: Sa tutorial na ito matututunan natin kung paano makuha ang petsa at oras mula sa NIST TIME server gamit ang ESP8266 OLED at Visuino, Manood ng isang demonstration video
Pagkuha ng Oras Mula sa Internet Gamit ang ESP8266 - Proyekto ng NTP Clock Na May ESP8266 Nodemcu: 5 Hakbang
Pagkuha ng Oras Mula sa Internet Gamit ang ESP8266 | NTP Clock Project Na May ESP8266 Nodemcu: Sa tutorial na ito makikita namin kung paano makakuha ng oras gamit ang ESP8266 / nodemcu kasama ang Arduino IDE. Lalo na kapaki-pakinabang ang pagkuha ng oras sa pag-log ng data upang timestamp ang iyong mga pagbasa. Kung ang iyong proyekto sa ESP8266 ay may access sa Internet, maaari kang makakuha ng oras gamit ang Network T
Petsa ng Arduino / Oras na Plotting / Pag-log Gamit ang Millis () at PfodApp: 11 Mga Hakbang
Petsa ng Arduino / Oras ng Plotting / Pag-log Gamit ang Millis () at PfodApp: Walang kinakailangang programa ng Arduino o Android. Sinuportahan din ang mga module ng RTC at GPS. Awtomatikong pagwawasto para sa mga timezone, RTC naaanod at nawawalang mga segundo ng paglukso ng GPS ) timestamp upang magbalak ng data ag
Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox: 8 Hakbang
Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox: cool na display ng OLED na nagpapakita ng petsa, oras at temperatura sa Celsius at Fahrenheit gamit ang Xinabox xChips batay sa ESP8266
Pagtulak ng Petsa at Oras sa Blynk App Gamit ang Wemos D1 Mini Pro: 10 Hakbang
Pagtulak ng Petsa at Oras sa Blynk App Gamit ang Wemos D1 Mini Pro: Gagamitin namin ang Wemos D1 Mini Pro upang itulak ang oras & petsa sa Blynk App. Hindi mo kakailanganin na ikonekta ang anumang mga bahagi sa Wemos D1 Mini Pro para sa aktibidad na ito