使用ESP8266的AT指令调用网络数据接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CharmingSun/article/details/51702590

一、开发环境

  • 网络数据接口平台:www.nowapi.com
  • Wi-Fi模块型号:ESP8266 ESP-01
  • AT指令集版本:0.40.0.0
  • SDK版本:1.3.0

二、实验目的

使用ESP8266的AT指令查询标准北京时间API提供的北京时间。

三、实验步骤

(每条AT指令后均需要添加换行后再发送)
1. 使用串口发送指令AT+CWMODE=1设置模块Wi-Fi应用模式为Station模式;
2. 发送指令AT+RST重启模块使应用模式更改生效;
3. 发送指令AT+CWJAP =”ssid”,”pwd”连接AP;
4. 发送指令AT+CIPMUX=0设置模块为单路连接模式,模块默认为单路连接模式;
5. 发送指令AT+CIPSTART=”TCP”,”api.k780.com”,88与服务器建立TCP连接,域名前面一定不能加“http://”!;
6. 发送指令AT+CIPMODE=1设置模块传输模式为透传模式;
7. 发送指令AT+CIPSEND开启透传模式向服务器发送数据,模块收到此指令后先换行后返回“>”,每包数据以20ms间隔区分,每包最大2048字节;
8. 然后发送以下内容向服务器发出HTTP请求获取北京时间(不可以用HTTP/1.1):

GET http://api.k780.com:88/?app=life.time&appkey={APPKEY}&sign={SIGN}&format=json HTTP/1.0\r\n\r\n

其中APPKEY和SIGN用你自己nowapi账户的Appkey和Sign代替,这里给出一个示例URL:
http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
更多请求方式请参考API说明页面;
9. 然后模块返回如下信息:

HTTP/1.1 200 OK
Date: Fri, 17 Jun 2016 14:30:44 GMT
Server: Apache
Content-Length: 207
Connection: close
Content-Type: application/json; charset=utf-8;

{"success":"1","result":{"timestamp":"1466173844","datetime_1":"2016-06-17 22:30:44","datetime_2":"2016年06月17日 22时30分44秒","week_1":"5","week_2":"星期五","week_3":"周五","week_4":"Thursday"}}

单片机可以从返回信息中解析出北京时间;
10. 20ms后发送指令+++退出透传模式返回指令模式(后面不要换行);
11. 最后发送指令AT+CIPCLOSE断开模块与服务器的TCP连接。

猜你喜欢

转载自blog.csdn.net/CharmingSun/article/details/51702590
今日推荐