以下就是本人使用芯迅通 A7670G正确使用AT指令连接上OneNet HTTP服务器的流程
OneNet HTTP接入说明
常见的问题:
①网络连接不成功,确认自己所填的网址是否为URL形式,内容为 https://{address}{path}{topic}{protocol}----(这种形式仅限于OneNet服务器),根据个人所需去编写对应的URL(web地址)
②对于其提供的例程文档,不要抱有完全依靠的心理,先使用一些工具,了解自己所需要执行的流程,根据OneNet文档提供所知,直连设备请求方式仅支持POST,常用postman进行HTTP服务器设备属性上传测试,了解到需要在Header中增加token鉴权参数AT+HTTPPARA添加
③在发送数据时,先填写数据,再选择方法,如果在这一步出现了非”200“回应,则查看fault code再进行补充,若为”200“,则Read HTTP Server response,此时发现的错误就应该对照HTTP服务器的上传规则来看
④相关的参数不确定,有token,topic,protocol,productID,device_name等等,最重要的还是前三个
在OneNet平台进行创建时,没有什么很特殊的地方,网上有很多教程,或者直接看OneNet文档也可以。
主要信息就是以下两张,一张产品信息,一张设备信息,重点都圈起来了
CAT1模组的首先进行基本入网操作,下方就是示例流程
对照着相应CAT1模组AT指令进行如下操作:
启动HTTP服务
AT+HTTPINIT+CGEV: ME DETACH
+CGEV: EPS PDN ACT 1
OK
连接相对于的web网址
OneNet中 web网址= https://{address}{path}{topic}{protocol}
AT+HTTPPARA="URL","https://open.iot.10086.cn/fuse/http/device/thing/property/post?topic=$sys/{productID}/{device_name}/thing/property/post&protocol=http"
OK
查看OneNet文档发现需添加Header "token",使用AT+HTTPPARA="USERDATA","data"进行添加
AT+HTTPPARA="USERDATA","token:{利用onenet_token_计算工具进行计算的鉴权信息}"OK
芯迅通上传数据的流程:确认数据长度--->输入数据--->上传数据操作
AT+HTTPDATA=62,1000DOWNLOAD
OK
{"id": "123","version": "1.0","params": {"msv": {"value": 0}}}
AT+HTTPACTION=1OK
+HTTPACTION: 1,200,26
不同http服务器接受的数据格式可能不同,OneNet接受的为JOSN格式,具体形式查看文档
https://open.iot.10086.cn/doc/v5/develop/detail/690
读取HTTP服务器response
若出现错误,则查找错误代码表,常见的有2,4,6,17,解决方法也很简单:反复检查是否按格式是否有误,比如说token时间戳不够,进行header添加,物理模型名错误等等,都是检查清楚就行
AT+HTTPREAD=0,500
OK
+HTTPREAD: 26
{"errno":0,"error":"succ"}
+HTTPREAD: 0
检查http服务器返回header值
AT+HTTPHEAD
+HTTPHEAD: 264
HTTP/1.1 200 OK
Server: openresty
Date: Fri, 05 Jan 2024 03:58:23 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Expires: Fri, 05 Jan 2024 03:58:22 GMT
Cache-Control: no-cache
Strict-Transport-Security: max-age=2592000
OK