最近尝试用ESP8266模块实现网络校时功能,通过免费的API接口 获取网络时间,大致思路是通过ESP8266连接服务器并通过HTTP GET的方式获取所需信息,由串口驱动ESP8266获得数据,然后存入单片机内部。
需要的材料有
51单片机一个 stc89c52
esp8266一个
12864lcd屏幕一个
然后依次连接LCD屏幕 51单片机,与esp8266
免费的api接口 http://www.k780.com/api/life.time
从这里申请就可以了
下面是校时函数
void js(void)
{
TR0=0; //关闭定时器0中断
Uart_Init(); //串口初始化
ESP8266_RST = 0; //低电平复位,高电平工作
Delay_ms(200); //延时200ms
ESP8266_RST = 1; //低电平复位,高电平工作
// ESP8266_Cmd_Init();//ESP8266初始化
Delay_ms(300);
Uart_Send_Data("GET http://api.k780.com:88/?app=life.time&appkey=41104&sign=eab9cc1798bfccdf31be1f974970459d&format=json HTTP/1.0\r\n\r\n",sizeof("GET http://api.k780.com:88/?app=life.time&appkey=41104&sign=eab9cc1798bfccdf31be1f974970459d&format=json HTTP/1.0\r\n\r\n"));//获取时间
Delay_ms(1000);
TR0=1; //打开定时器0中断
}
其实就是由串口发送AT指令,控制esp8266来工作,通过串口来接收返回的数据
具体工程