步驟1:您需要做的事情
對于此項目,您需要做的事情很少:
步驟2:什么是NTP及其工作原理?
什么是NTP:NTP代表網絡時間協議。這是一個標準的Internet協議(IP),用于通過網絡將計算機時鐘同步到某些參考。
該協議可用于將所有聯網設備同步到協調世界時(UTC)。
NTP設置計算機時鐘。對于UTC,客戶端可以應用任何本地時區偏移量或夏令時偏移量。這樣,無論位置和時區如何,客戶端都可以同步到服務器。
它將如何工作:
客戶端設備(例如ESP8266)使用端口123上的用戶數據報協議(UDP)連接到服務器。然后,客戶端將請求包發送到NTP服務器。
響應此請求,NTP服務器發送時間戳包。
時間戳包包含多個信息,例如UNIX時間戳,準確性,延遲
然后客戶端可以解析出當前日期和時間值。
步驟3:在Arduino IDE上安裝庫
在您的Arduino IDE中,轉到庫管理器并搜索NTP,然后按照我下載的方式下載NTP客戶端庫,請參考圖像以獲取更多幫助。
步驟4:編碼部分
請復制以下代碼并將網絡憑據放入代碼中,然后
您需要為我設置偏移時間為19800
因為我的時區是utc + 5: 30這樣
UTC +5:30 = 5.5 * 60 * 60 = 19800 UTC + 1 = 1 * 60 * 60 = 3600
計算時區并進行編輯,然后上傳代碼。
#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循環(){
timeClient.update();
Serial.print(daysOfTheWeek [timeClient.getDay()]);
Serial.print(“,”);
Serial.print(timeClient.getHours());結果Serial.print( “:”);結果,Serial.print(timeClient.getMinutes());結果,Serial.print( “:”);結果,斯里al.println(timeClient.getSeconds());結果,//Serial.println(timeClient.getFormattedTime());結果,延遲(1000);結果,},點擊
第5步:獲取時間
將代碼上傳到Esp8266之后,您可以打開串行監視器,如果一切正常,則可以開始計時串行監視器,因為我可以在串行監視器中獲取時間。
因此,通過此項目,您可以連接任何顯示器,并使其成為適當的網絡時鐘。因此,盡享網絡時鐘的樂趣。
-
Arduino
+關注
關注
188文章
6477瀏覽量
187737 -
ESP8266
+關注
關注
50文章
962瀏覽量
45299 -
NODEMCU
+關注
關注
13文章
289瀏覽量
21556
發布評論請先 登錄
相關推薦
評論