堇花还没开吗 · 2021年12月17日

esp8266使用AT指令获取网络时间

之前看到一个有趣的项目,叫Hollow Clock空中时钟,就3D打印了下外壳,用手头闲置的STM32和一个步进电机简单做了下。

clock.png

但是发现用stm32的系统时钟SysTick做计时误差还是有点大,打算再优化一下,恰巧有一个正在吃灰的装了AT固件库的esp8266,可以让stm32去获取网络时钟从而校正本地时间。

网络时钟用淘宝的API: http://api.m.taobao.com/rest/...,它返回值如下:

{"api":"mtop.common.getTimestamp","v":"*","ret":["SUCCESS::接口调用成功"],"data":{"t":"1639708783282"}}

AT指令访问网络时钟API

  1. AT+CWMODE=3 // softAP+station模式
  2. AT+RST // 重启
  3. AT+CWJAP="ssid","password" // 连接路由
  4. ping api.m.taobao.com查询到服务器IP地址140.205.162.6
  5. AT+CIPSTART="TCP","140.205.162.6",80 // 协议 IP 端口号
  6. AT+CIPSEND=150 // 发送数据,150是发送的字符数

请求头:

GET /rest/api3.do?api=mtop.common.getTimestamp HTTP/1.1
Content-Type: application/json;charset=utf-8
Host: api.m.taobao.com
Connection: Keep Alive    

注意:如果发送的字符数设置大了,发送上面数据后esp8266一直没有反应,那么再发送空格,一直凑到发送的字符数即可。

doc.jpg

后面的工作:

  1. 字符解析,获取时间;
  2. stm32串口与esp8266通信,实现透传;
  3. 步进机和时钟的校正程序。
推荐阅读
关注数
0
文章数
2
你的朋友圈好久没有提及你的快乐了,你的梦想、浪漫、晚霞和音乐都没了,怎么了?是不是和我一样进厂了?
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息