WIFI获取时间:
NTP 服务 简介
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。esp8266也可以通过建立与NTP服务的连接,来获取实时时间。
在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
NTPClient 库的安装
使用NTP服务需要先安装 NTPClient 库,按组合件 Crtrl + Shift + I 调出库管理 具体操作如下所示:
实现获取时间的代码段
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>WiFiUDP ntpUDP;
const char *ssid = "SSID"; //这里填写需要连接WIFI的SSID
const char *password = "Password"; //这里填写WIFI的密码//NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600*8, 60000); //乘以8是因为北京时间时东八区的时间
NTPClient timeClient(ntpUDP, "ntp1.aliyun.com", 3600*8, 60000); //乘以8是因为北京时间时东八区的时间
void setup() //初始化
{
Serial.begin(9600);
Wire.begin(2,14);
delay(500);
//初始化网络
while ( WiFi.status() != WL_CONNECTED )
{
delay ( 500 );
Serial.print ( "." );
}timeClient.begin();
}
void loop()
{
Time_InitDis();
delay ( 500 );
}void Time_InitDis(void) //
{
timeClient.update();
Serial.println(timeClient.getFormattedTime());
timeClient.getDay(); //换算星期
timeClient.getHours(); //换算小时
timeClient.getMinutes(); //换算分钟
timeClient.getSeconds(); //换算}
实现效果:通过串口上送获取到的网络时间
对应的代码已经放到下载页 需要的可以下载。