极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14937|回复: 1

esp8266-01 AT命令通过向NTP服务器获取网络时间 "串口法”

[复制链接]
发表于 2016-8-18 10:49:55 | 显示全部楼层 |阅读模式
本帖最后由 275891381 于 2018-5-13 23:08 编辑

1:esp8266-01固件下载,参考如下
a)http://www.geek-workshop.com/thread-27340-1-1.html
b)http://www.geek-workshop.com/thread-27357-1-1.html
c)固件用“v0.9.5.2 AT Firmware.bin”下载
d)下载完固件只断开   GPIO0---地   重新上电串口115200波特率会收到
乱码------乱码
Ai-Thinker Technology Co. Ltd.

ready
2:AT命令通过向NTP服务器获取网络时间 波特率为115200 字符发送
a)AT命令如下,每一个返回ok后发下一个,注意以回车结尾
AT+CWMODE=1
AT+RST
AT+CWLAP
AT+CWJAP="360wifi","wangluokuai"    修改为自己的路由器账号密码
AT+CIFSR
AT+CIPMUX=0
AT+CIPSTART="UDP","1.cn.pool.ntp.org",123  或者用  AT+CIPSTART="UDP","132.163.4.101",123
AT+CIPSEND=48
b)此时切换为HEX发送 115200  不要回车结尾
E3 0 6 EC 0 0 0 0 0 0 0 0 31 4E 31 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c)串口收到
  1:字符串接收时是

  2:hex接收时是如下 分为4段
       第一段为:发送的数据
       第二段为:+IPD,48:
       第三段为:48个时间数据一般以24开头
       第四段为: ok send ok
       1:E3 00 06 EC 00 00 00 00 00 00 00 00 31 4E 31 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 0A
       2:2B 49 50 44 2C 34 38 3A
       3:24 02 06 E8 00 00 00 07 00 00 00 AC 0A 89 26 56 DB 5F 9C 2D E0 A8 A6 01 00 00 00 00 00 00 00 00 DB 5F 9C 9B 55 AD F8 4D DB 5F 9C 9B 55 AE D1 65  
       4:0D 0A 4F 4B 0D 0A 0D 0A 53 45 4E 44 20 4F 4B 0D 0A
3:收到数据后串口字符串115200发送AT+CIPCLOSE结束链接或者重复下两步发送,继续获得时间
AT+CIPSEND=48
E3 0 6 EC 0 0 0 0 0 0 0 0 31 4E 31 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
一定先发一遍“AT+CIPSEND=48”在用hex发送下一句
3:数据解析
a)48个有用数据的[40][41][42][43]为最有用时间数据例子的为 DB 5F 9C 9B(注意有[0])
b)DB 5F 9C 9B(16进制)=3680476315(10进制秒)
   2040/1/1 8:0:0是=2208988800(10进制秒):我也不知道为啥减去这个值不是减去1970年1月1日0分0秒
3680476315(10进制秒)-2208988800(10进制秒)=1471487515(10进制秒)
1471487515(10进制秒)/3600/24/365/=46(年)
时间起点为1970年1月1日0分0秒
46+1970=2016年
。。。。
具体可以自己算 或者用http://tool.chinaz.com/Tools/unixtime.aspx#进行转换
1471487515(10进制秒)=北京时间2016/8/18 10:31:55
或者参考:http://www.51hei.com/arduino/3583.html
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=24985&highlight=esp%2B%CA%B1%BC%E4
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=9764&highlight=%CD%F8%C2%E7%CA%B1%BC%E4
4:库文件方式随后发上

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-8-25 14:00:30 | 显示全部楼层
另外一个办法,不使用NTP服务器,直接http GET百度的服务器,服务器返回的消息头里面就有当前时间。如下:

< HTTP/1.1 200 OK
< Date: Mon, 01 Feb 2016 09:05:59 GMT
< Server: Apache
< Cache-Control: max-age=86400
< Expires: Tue, 02 Feb 2016 09:05:59 GMT
< Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
< ETag: "51-4b4c7d90"
< Accept-Ranges: bytes
< Content-Length: 81
< Content-Type: text/html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-5 06:40 , Processed in 0.041433 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表