电子说
步骤1:您需要做的事情
对于此项目,您需要做的事情很少:
ESP8266/NODEMCU
使用USB电缆对其进行编程。
步骤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之后,您可以打开串行监视器,如果一切正常,则可以开始计时串行监视器,因为我可以在串行监视器中获取时间。
因此,通过此项目,您可以连接任何显示器,并使其成为适当的网络时钟。因此,尽享网络时钟的乐趣。
全部0条评论
快来发表一下你的评论吧 !