步驟1:您需要做的事情
對于此項目,您需要做的事情很少:
步驟2:什么是NTP及其工作原理?
什么是NTP:NTP代表網(wǎng)絡(luò)時間協(xié)議。這是一個標準的Internet協(xié)議(IP),用于通過網(wǎng)絡(luò)將計算機時鐘同步到某些參考。
該協(xié)議可用于將所有聯(lián)網(wǎng)設(shè)備同步到協(xié)調(diào)世界時(UTC)。
NTP設(shè)置計算機時鐘。對于UTC,客戶端可以應(yīng)用任何本地時區(qū)偏移量或夏令時偏移量。這樣,無論位置和時區(qū)如何,客戶端都可以同步到服務(wù)器。
它將如何工作:
客戶端設(shè)備(例如ESP8266)使用端口123上的用戶數(shù)據(jù)報協(xié)議(UDP)連接到服務(wù)器。然后,客戶端將請求包發(fā)送到NTP服務(wù)器。
響應(yīng)此請求,NTP服務(wù)器發(fā)送時間戳包。
時間戳包包含多個信息,例如UNIX時間戳,準確性,延遲
然后客戶端可以解析出當前日期和時間值。
步驟3:在Arduino IDE上安裝庫
在您的Arduino IDE中,轉(zhuǎn)到庫管理器并搜索NTP,然后按照我下載的方式下載NTP客戶端庫,請參考圖像以獲取更多幫助。
步驟4:編碼部分
請復制以下代碼并將網(wǎng)絡(luò)憑據(jù)放入代碼中,然后
您需要為我設(shè)置偏移時間為19800
因為我的時區(qū)是utc + 5: 30這樣
UTC +5:30 = 5.5 * 60 * 60 = 19800 UTC + 1 = 1 * 60 * 60 = 3600
計算時區(qū)并進行編輯,然后上傳代碼。
#include“ NTPClient.h”
#include“ ESP8266WiFi.h”
#include“ WiFiUdp.h”
const char * ssid =“ ***********”;
const char * password =“ ***********”;
const long utcOffsetInSeconds = 19800;
char daysOfTheWeek [7] [12] = {“ Sunday”,“ Monday” ,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”}};
//定義NTP客戶端以獲取時間
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP,“池。 ntp.org”,utcOffsetInSeconds);
void setup(){ WiFi.begin(ssid,password);
while(WiFi.status()!= WL_CONNECTED){
延遲(500);
Serial.print(“?!保?
}
timeClient.begin();
}
void循環(huán)(){
timeClient.update();
Serial.print(daysOfTheWeek [timeClient.getDay()]);
Serial.print(“,”);
Serial.print(timeClient.getHours());結(jié)果Serial.print( “:”);結(jié)果,Serial.print(timeClient.getMinutes());結(jié)果,Serial.print( “:”);結(jié)果,斯里al.println(timeClient.getSeconds());結(jié)果,//Serial.println(timeClient.getFormattedTime());結(jié)果,延遲(1000);結(jié)果,},點擊
第5步:獲取時間
將代碼上傳到Esp8266之后,您可以打開串行監(jiān)視器,如果一切正常,則可以開始計時串行監(jiān)視器,因為我可以在串行監(jiān)視器中獲取時間。
因此,通過此項目,您可以連接任何顯示器,并使其成為適當?shù)木W(wǎng)絡(luò)時鐘。因此,盡享網(wǎng)絡(luò)時鐘的樂趣。
-
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
187054 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45000 -
NODEMCU
+關(guān)注
關(guān)注
13文章
289瀏覽量
21403
發(fā)布評論請先 登錄
相關(guān)推薦
評論