概述
移远EC600S-CN 使用AT指令HTTP连接GET请求POST请求,并接入OneNET物联网云平台。实现HTTP对物联网设备的接入。
同样也适用于 EC200S。(EC200S不支持QuecPython,体积比EC600S略大,但便宜很多)
1. 准备
QCOM_V1.6
Quectel_EC200x&EG912Y&EC600S系列_HTTP(S)_应用指导_V1.0.pdf
以上工具和文档已上传GitHub:EC600S 工具及文档下载
2. HTTP(S)-AT操作流程
详见 应用指导的 1.2章节。
3. 关键AT命令格式
-
3.1 AT+QHTTPCFG 配置HTTP(S)服务器参数
(1)查看HTTP(S)功能的所有参数:AT+QHTTPCFG?
(2)设置PDP场景为xx:AT+QHTTPCFG="contextid",<context ID>
(3)禁用(0)或启用(1)自定义HTTP(S)请求头消息:AT+QHTTPCFG="requestheader",<request_header>
(4)禁用(0)或启用(1)输出HTTP(S)响应头消息:AT+QHTTPCFG="responseheader",<response_header>
(5)禁用(0)或启用(1)自动输出HTTP(S)响应头消息:AT+QHTTPCFG="rspout/auto",<auto_outrsp>
<context ID>:场景ID(PDP上下文 ID),范围 1~15。默认值1。
<request_header>:禁用(0)或启用(1)自定义HTTP(S)请求头消息。0-禁用;1-启用。默认0。
若禁用了自定义HTTP(S)请求头消息,则 GET请求的格式为:AT+QHTTPGET=<rsptime>
若启用了自定义HTTP(S)请求头消息,则 GET请求的格式为:AT+QHTTPGET=<rsptime>,<data_length>
错误使用,会报无效参数错误: +CME ERROR: 730
<response_header>:禁用(0)或启用(1)输出HTTP(S)响应头消息。0-禁用;1-启用。默认0。
<auto_outrsp>:禁用(0)或启用(1)自动输出HTTP(S)响应头消息。
若启动了自动输出,则AT+QHTTPREAD 和 AT+QHTTPREADFILE 会执行失败。
-
3.2 AT+QHTTPURL 设置远程HTTP(S)服务器的URL
(1)查询URL:AT+QHTTPURL?
(2)设置URL:AT+QHTTPURL=<URL_length>,<timeout>
HTTP(S)服务器的URL必须以 http:// 或 https:// 开头,表示访问 HTTP或HTTPS服务器。
例:输入 AT+QHTTPURL=24,80 命令后,TA会发出 CONNECT响应并进入透传模式,此时即可输入URL,例如HTTP://api.heclouds.com/。当输入数据的总大小达到<URL_length>24时,TA将切换回命令模式并上报结果 OK,URL设置完成。
<URL_length>:URL字符串长度。范围1~2048字节。
<timeout>:URL的最大输入时间。范围1~65535。默认60s。
-
3.3 AT+QHTTPGET 发送GET请求到HTTP(S)服务器
根据上面 AT+QHTTPCFG="requestheader",<request_header> 的配置,GET分为两种情况:
(1)禁用了自定义HTTP(S)请求头消息:
AT+QHTTPGET=<rsptime>
(2)启用了自定义HTTP(S)请求头消息:
AT+QHTTPGET=<rsptime>,<data_length>
例:输入 AT+QHTTPGET=30,107命令后,若HTTP(S)服务器连接成功,TA会发出 CONNECT响应并进入透传模式,此时即可输入自定义GET请求头消息,例 "GET /devices/614235347/datapoints HTTP/1.1rnapi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=rnHost:api.heclouds.comrnrn"。当输入数据的总大小达到<data_length>107时,TA将切换回命令模式并上报结果 OK,自定义GET请求发送完成。之后如果模块收到来自HTTP(S)服务器的响应后,将上报一下URC:+QHTTPGET: <err>,<httprspcode>,<content_length>
<rsptime>:GET的最大响应时间,单位秒。范围1~65535,默认值60。
<data_length>:HTTP(S)自定义请求信息的长度,包括HTTP(S)请求头消息和 HTTP(S)请求体。范围1~2048,单位字节。
注意:上面的GET请求消息:"GET /devices/614235347/datapoints HTTP/1.1rnapi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=rnHost:api.heclouds.comrnrn",如果用 移远的串口调试工具 - QCOM_V1.6.exe,在右侧发送栏是发不出来的,右侧的输入栏不支持换行,也不支持 rn 转义。需要将内容粘贴到左侧的输入栏,并且按照 rn 的个数,手动替换为回车换行。(末尾一定要留两行换行,作为结束标志)
-
3.4 AT+QHTTPPOST 发送POST请求到HTTP(S)服务器
根据上面 AT+QHTTPCFG="requestheader",<request_header> 的配置,POST分为两种情况:
(1)禁用了自定义HTTP(S)请求头消息:
AT+QHTTPPOST=<data_length>,<input_time>,<rsptime>
(2)启用了自定义HTTP(S)请求头消息:
AT+QHTTPPOST=<data_length>,<input_time>,<rsptime>
例:输入 AT+QHTTPPOST=107,30,30命令后,若HTTP(S)服务器连接成功,TA会发出 CONNECT响应并进入透传模式,此时即可输入HTTP(S) POST 请求体(和请求头消息)。当输入数据的总大小达到<data_length>107时,TA将切换回命令模式并上报结果 OK,自定义POST请求发送完成。之后如果模块收到来自HTTP(S)服务器的响应后,将上报一下URC:+QHTTPPOST: <err>,<httprspcode>,<content_length>
<data_length>:POST请求体长度。范围1~1024000,单位字节。
<input_time>:POST请求信息的最大输入时间。范围1~65535,单位秒。默认值60。
<rsptime>:配置HTTP (S) POST响应+QHTTPPOST: <err>,<httprspcode>,<content_length>的最大输出时间。范围1~65535,单位秒,默认值60。
-
3.5 AT+QHTTPREAD 读取HTTP(S)服务器响应信息
AT+QHTTPREAD=<wait_time>
<wait_time>:接收两个数据包之间的最大间隔时间。范围1~65535,单位秒,默认值60。
-
3.5 AT+QHTTPSTOP 取消HTTP(S)请求
MCU可通过该命令取消 HTTP(S) GET/POST 请求,断开与HTTP(S)的会话连接。
AT+QHTTPSTOP
4. HTTP接入OneNET物联网云平台
创建OneNET产品、设备、数据流、api-key、网页APP控制:OneNET四路开关产品创建
esp8266 AT指令连接OneNET(流程很像,可做参考):esp8266 HTTP接入OneNET云平台
-
4.1 HTTP GET请求四路开关状态
上电后,短按POWKY,待串口接收到 RDY后,表示模块已经开机。
(1)PDP场景配置:(设置运营商信息,与上一章TCP连接的前半部分操作一样)
RDY
AT+CPIN?
+CPIN: READY
OK
AT+CREG?
+CREG: 0,1
OK
AT+CGREG?
+CGREG: 0,1
OK
AT+CEREG?
+CEREG: 0,1
OK
AT+QICSGP=1
+QICSGP: 1,"CMNET","","",1
OK
AT+QICSGP=1,1,"CMNET","","",1
OK
AT+QIACT=1
OK
AT+QIACT?
+QIACT: 1,1,1,"10.84.159.4"
OK
(2)HTTP接入OneNET,GET请求设备状态
AT+QHTTPCFG?
+QHTTPCFG: "contextid",1
+QHTTPCFG: "requestheader",0
+QHTTPCFG: "responseheader",0
+QHTTPCFG: "sslctxid",1
+QHTTPCFG: "contenttype",0
+QHTTPCFG: "rspout/auto",0
+QHTTPCFG: "closed/ind",0
+QHTTPCFG: "reqheader/add",0
OK
AT+QHTTPCFG="contextid",1
OK
AT+QHTTPCFG="responseheader",1
OK
AT+QHTTPCFG="requestheader",1
OK
AT+QHTTPURL=24,80
CONNECT
// 输入OneNET的URL,24个字节"HTTP://api.heclouds.com/"
OK
AT+QHTTPGET=30,107
CONNECT
// 输入GET报文,107个字节"GET /devices/614235347/datapoints HTTP/1.1rnapi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=rnHost:api.heclouds.comrnrn"
OK
+QHTTPGET: 0,200,365
AT+QHTTPREAD=30
CONNECT
HTTP/1.1 200 OK
Date: Fri, 29 Jan 2021 10:23:48 GMT
Content-Type: application/json
Content-Length: 365
Connection: keep-alive
Server: Apache-Coyote/1.1
Pragma: no-cache
{"errno":0,"data":{"count":4,"datastreams":[{"datapoints":[{"at":"2020-07-30 17:34:44.000","value":0}],"id":"switch_3"},{"datapoints":[{"at":"2020-07-30 17:02:34.000","value":1}],"id":"switch_4"},{"datapoints":[{"at":"2020-07-30 17:34:31.000","value":1}],"id":"switch_1"},{"datapoints":[{"at":"2020-07-30 17:34:51.000","value":0}],"id":"switch_2"}]},"error":"succ"}
OK
+QHTTPREAD: 0
AT+QHTTPSTOP
OK
刚刚获取到的四路开关状态依次为:1 0 0 1
使用APP,改变开关的值。
再来GET查询一次。
AT+QHTTPGET=30,107
CONNECT
// 输入GET报文,107个字节"GET /devices/614235347/datapoints HTTP/1.1rnapi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=rnHost:api.heclouds.comrnrn"
OK
+QHTTPGET: 0,200,365
AT+QHTTPREAD=30
CONNECT
HTTP/1.1 200 OK
Date: Fri, 29 Jan 2021 10:31:29 GMT
Content-Type: application/json
Content-Length: 365
Connection: keep-alive
Server: Apache-Coyote/1.1
Pragma: no-cache
{"errno":0,"data":{"count":4,"datastreams":[{"datapoints":[{"at":"2021-01-29 18:30:49.000","value":1}],"id":"switch_3"},{"datapoints":[{"at":"2020-07-30 17:02:34.000","value":1}],"id":"switch_4"},{"datapoints":[{"at":"2020-07-30 17:34:31.000","value":1}],"id":"switch_1"},{"datapoints":[{"at":"2021-01-29 18:30:46.000","value":1}],"id":"switch_2"}]},"error":"succ"}
OK
+QHTTPREAD: 0
AT+QHTTPSTOP
OK
开关状态依次为:1 1 1 1
状态一致,EC600S使用HTTP接入OneNET成功。
如需上报温湿度消息,OneNET要先创建对应的数据流,设备拼接json报文使用POST上发,操作区别不大就不做演示了。
(按照上一章TCP连接的操作,接入80端口,发送相同的GET/POST报文,同样可以实现一样的效果。不过显然使用HTTP的AT指令要更方便些。)
最后
以上就是多情蚂蚁为你收集整理的移远EC600S-CN (3) - HTTP(S)应用GET请求POST请求,HTTP接入OneNET物联网云平台1. 准备2. HTTP(S)-AT操作流程3. 关键AT命令格式4. HTTP接入OneNET物联网云平台的全部内容,希望文章能够帮你解决移远EC600S-CN (3) - HTTP(S)应用GET请求POST请求,HTTP接入OneNET物联网云平台1. 准备2. HTTP(S)-AT操作流程3. 关键AT命令格式4. HTTP接入OneNET物联网云平台所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复