移远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.1\r\napi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=\r\nHost:api.heclouds.com\r\n\r\n"。当输入数据的总大小达到<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.1\r\napi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=\r\nHost:api.heclouds.com\r\n\r\n",如果用 移远的串口调试工具 - QCOM_V1.6.exe,在右侧发送栏是发不出来的,右侧的输入栏不支持换行,也不支持 \r\n 转义。需要将内容粘贴到左侧的输入栏,并且按照 \r\n 的个数,手动替换为回车换行。(末尾一定要留两行换行,作为结束标志)

  • 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: READYOK
AT+CREG?+CREG: 0,1OK
AT+CGREG?+CGREG: 0,1OK
AT+CEREG?+CEREG: 0,1OK
AT+QICSGP=1+QICSGP: 1,"CMNET","","",1OK
AT+QICSGP=1,1,"CMNET","","",1OK
AT+QIACT=1OK
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",0OK
AT+QHTTPCFG="contextid",1OK
AT+QHTTPCFG="responseheader",1OK
AT+QHTTPCFG="requestheader",1OK
AT+QHTTPURL=24,80CONNECT
// 输入OneNET的URL,24个字节"HTTP://api.heclouds.com/"
OK
AT+QHTTPGET=30,107CONNECT
// 输入GET报文,107个字节"GET /devices/614235347/datapoints HTTP/1.1\r\napi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=\r\nHost:api.heclouds.com\r\n\r\n"
OK+QHTTPGET: 0,200,365
AT+QHTTPREAD=30CONNECT
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+QHTTPSTOPOK

刚刚获取到的四路开关状态依次为:1 0 0 1

使用APP,改变开关的值。

再来GET查询一次。

AT+QHTTPGET=30,107CONNECT
// 输入GET报文,107个字节"GET /devices/614235347/datapoints HTTP/1.1\r\napi-key:gXmRJ0eTdHa7dn7=HQ2a95nt7pg=\r\nHost:api.heclouds.com\r\n\r\n"
OK+QHTTPGET: 0,200,365
AT+QHTTPREAD=30CONNECT
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+QHTTPSTOPOK

开关状态依次为: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. NB-IOT(4)---移远NB-IOT BC26模块模组简介和实际应用方向详解

    移远NB-IOT BC26模块模组简介和实际应用方向详解 继BC95和BC28之后,2017年底移远在杭州发布了基于MTK平台的新款NB-IOT BC26模组. BC26基于联发科MT2625芯片平台 ...

  2. 移远BC20模组使用LwM2M协议接入华为IoT平台(NB-IoT专栏—进阶篇2)

    目录 1.背景 2.部署华为云 3.华为云与BC20模组进行数据收发实验 1.背景 最近在做一个智慧路灯项目,构思使用STM32结合NB-IoT模组实现数据上传和联动控制,并且可以使用GPS模块上传路 ...

  3. Quectel BC28-CNV 多频段、高性能、低功耗 LTE Cat NB2 无线通信模块[移远通信]

    BC28-CNV 是一款高性能.低功耗的多频段 LTE Cat NB2 无线通信模块,支持 B3/B5/B8 频段,可选集成 BLE 5.0.其尺寸仅为 17.7 mm × 15.8 mm × 2.0 ...

  4. Quectel BC260Y-CN 尺寸紧凑、功耗超低 NB-IoT 无线通信模块[移远通信]

    BC260Y-CN 是一款高性能.低功耗且多频段的 LTE Cat NB2 无线通信模块.其尺寸仅为 17.7 mm × 15.8 mm × 2.0 mm,能最大限度地满足终端设备对小尺寸模块产品的需 ...

  5. “万物智联·共数未来”2023年移远通信物联网生态大会圆满落幕

    4月12日,以"万物智联·共数未来"为主题的2023年移远通信物联网生态大会在深圳前海华侨城JW万豪酒店隆重举办. 大会邀请到来自运营商.主流芯片商.行业客户.产业协会.标准联盟. ...

  6. 移远云服务QuecCloud正式发布,一站式为全球客户提供创新有效的解决方案

    4月12日,在"万物智联·共数未来"移远通信物联网生态大会上,移远通信宣布正式推出其物联网云服务--QuecCloud.QuecCloud具备智能硬件开发.物联网开放平台.行业解决 ...

  7. 连接中移Onenet云平台的C#上位机

    为什么要做这个上位机 物联网作为近些年快速发展的产物,产品越来越丰富,应用场景也越来越广泛,因此相关的体量也不断在壮大,很多公司根据自己的战略需求开始除了开发自己的物联网硬件产品,同时也慢慢在完善自己 ...

  8. 监测现场实时数据上传到中移物联网OneNet云平台

    OneNet,中移物联网云平台,是由中国移动打造的PaaS物联网开放平台.平台能够帮助开发者轻松实现设备接入与设备连接,快速完成产品开发部署,为智能硬件.智能家居产品提供完善的物联网解决方案(摘自36 ...

  9. 4g模块注册上网 移远_Openwrt支持移远4G模块过程记录

    参考了不少教程,也做了不少尝试,最后记录下整个过程以便自己和坛友们参考 我所用的4G模块是Quectel EC20 R2.0,对于这个型号以下的操作前半部分修改USB Serial驱动应该是不需要的, ...

最新文章

  1. 使用nodejs安装Vue-cli
  2. go语言中的选择与循环
  3. C#操作Excel(NPOI)
  4. python学起来难不难-零基础学Python爬虫难不难?要怎么学?
  5. 人们对大数据的几点误解
  6. javascript调用dll_Blazor条码识别:Web中运行C#和JavaScript
  7. 资深大牛带你了解源码!关于Android程序员最近的状况,大厂内部资料
  8. 时间组件选择一个时间段_衡南(光伏支架组件安装)施工队
  9. 【dp】P1077 摆花
  10. 小文件复制为什么那么慢_为什么最近手机网速那么慢?原因是……
  11. 微服务-封装-docker by daysn大雄
  12. 可做fft分析吗_2020速卖通还要做吗?速卖通2020年市场分析!
  13. 读书笔记:普林斯顿微积分读本
  14. C/S与P2P的主要区别以及相同点
  15. 使用DiskGenius(原DiskMan)修复损坏的硬盘分区
  16. TIDB-分布式关系型数据库讲解
  17. python阿凡提与国王下棋_阿基米德与国王下棋的故事
  18. 少儿搜索软件测试,有道少儿词典app评测:学习字词好帮手
  19. 随手记:银河麒麟创建自动挂载
  20. 如何在 Web 浏览器中启用 Java?

热门文章

  1. 数据结构——数组、单向链表、双向链表
  2. 《算法图解》第二章笔记与课后练习_选择排序算法
  3. windows之间自动传送文件
  4. 在Tomcat上部署WebService服务
  5. 猪肉都被绑上了“家族标签”,大数据已波及到农牧业!
  6. 简单分析帆软报表中一次HTTP请求的过程。
  7. 手机、桌面和浏览器应用程序开发的差异
  8. h5下划线怎么设置_【Word技巧】毕业论文封面那条永远对不齐的下划线?
  9. hbase shell远程连接_HBase安装详解
  10. 台达ms300变频器使用手册中文_台达变频器:满足未来驱动需求