详细实现ESP8266WIFI时钟(基于51单片机)

写了一下详细教程

时钟还是用51单片机的定时器,esp8266只是用来实现校时的

所以需要先实现一个51单片机的本地时钟

然后添加网络校时功能就行了

开始之前先介绍一下ESP8266

ESP8266是由乐鑫公司出品的一款物联网芯片,因为价格较低,性能稳定等收到很大关注。ESP8266模块支持STA/AP/STA+AP 三种工作模式。

也可以自己烧写固件,在esp8266里面编程,但是我们这个小项目就没有必要了,我们使用STA工作模式就行了.

STA 模式就是ESP8266模块通过路由器连接互联网,能连接互联网就可以用好的操作了.

我们与特定的服务器建立TCP/IP连接,就可以传输数据了

建立tcp/ip连接需要地址与端口.需要有公网ip的服务器,如果不是特定端口还需要写端口监听程序,所以我们就不用自己服务器了.
我们使用别人已经搭建好的接口就行了.
我用的就是这个网站

api接口网站

这个api通过80端口访问

这是基础知识

下面才是具体的做法

先是esp8266与单片机的连接

我是通过串口连接的(单片机的晶振请使用11.0592MHZ)

连接图电压一定要是3.3v
这个非常重要

然后做一个时钟,用单片机定时器计时的

因为太简单,我就不写了
这个是我写的你们可以参考一下

然后就是写esp8266的部分了

先是8266的初始化

void ESP8266_Cmd_Init()	//esp8266 配置信息
{
    Uart_Send_Data("AT+CWMODE=1\r\n",sizeof("AT+CWMODE=1\r\n"));	 //esp8266重启指令
	Delay_ms(3000);

	Uart_Send_Data("AT+RST\r\n",sizeof("AT+RST\r\n"));  //设置工作模式 1 station模式  2 ap模式  3 station+ap模式
	Delay_ms(2000);

	Uart_Send_Data("AT+CWJAP=\"4X\",\"cxs5120cxs\"\r\n",sizeof("AT+CWJAP=\"mys\",\"12345678\"\r\n"));//输入路由器的账 号密码
	Delay_ms(5000);

	Uart_Send_Data("AT+CIPMUX=0\r\n",sizeof("AT+CIPMUX=0\r\n")); //设置单链接模式
	Delay_ms(1000);

	Uart_Send_Data("AT+CIPSTART=\"TCP\",\"api.k780.com\",80\r\n",sizeof("AT+CIPSTART=\"TCP\",\"api.k780.com\",80\r\n")); //建立TCP服务器  
	Delay_ms(1000);

	Uart_Send_Data("AT+CIPMODE=1\r\n",sizeof("AT+CIPMODE=1\r\n"));	//设置透传模式
	Delay_ms(1000);

	Uart_Send_Data("AT+CIPSEND\r\n",sizeof("AT+CIPSEND\r\n"));	 //进入透传模式	
	
}

后面都是有注释的

实现的就是重启esp8266
连接wifi
连接服务器
进入透传

这个你们不懂可以看看官方手册

接下来就是请求数据了

	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);

因为是用的80端口
80端口就是http协议,http协议里面的请求就是这样写的
不懂可以去搜索tcp/ip与http协议

请求完数据,esp8266会返回一串数据
我们用串口接收,然后存到一个数组里面

然后选出其中有用的字段就行了

比如我得到的是data1[26],data1[27]是小时,所以把他赋值到小时变量里面
但是这里有个小bug,串口里面的是数的ASCll码,需要减30h,才是真正的数字

分钟,秒也类似赋值

这样时间就变成了网络时间了,校时也就成功了

  • 10
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值