中移onenet再度学习
今天有个朋友问我NB模组M5311连接onenet服务器的问题,他已经成功连接了,就是数据下发的时候出现了问题,其实都是小问题,我一看便知,他是在处理按钮的下发逻辑时除了问题,我很快帮他解决了,但是同时我有发现了新的问题。让我对onenet恍然大悟!!
首先利用这个机会再次总结一下M5311的onenet指令集:
系统设置相关:
指令 | 功能 | 备注 |
---|---|---|
AT+CMRB | 复位模组 | |
AT+CMSYSCTRL=0,2 | 打开指示灯 | |
AT+CEREG? | 扫描IP | 可用于开机准备 |
AT+CSQ | 信号指令 | |
AT+SM=LOCK_FOREVER | 关闭睡眠 |
普通MQTT指令:
指令 | 功能 | 备注 |
---|---|---|
AT+MQTTCFG=”60.205.203.64”,1883,”zyNot”,120,”759”,”IIOuz”,1 | MQTT配置 | |
AT+MQTTOPEN=1,1,1,1,1,”mywill”,”001bye” | 连接并设置,遗嘱(可选) | |
AT+MQTTPUB=”device/nb/citc”,1,1,0,0,”hello” | 发布消息 | 可对任意主题发布消息 |
AT+MQTTSUB=“/device/NB/zx11111111111111_back”,1 | 订阅消息 | 接收数据回传 |
针对 onenet MQTT指令:
指令 | 功能 | 备注 |
---|---|---|
AT+MQTTCFG=”183.230.40.39”,6002,”设备ID”,120,”产品ID”,”APIKEY”,1 | MQTT配置 | |
AT+MQTTOPEN=1,1,0,0,0,””,”” | 连接并设置,无遗嘱 | |
AT+MQTTPUB=$dp,0,1,0,28,0300197b2231223a312c2232223a312c2233223a312c2234223a357d | ||
其中28为发送的数据长度,03为第三种json数据格式,0019为数据包的长度 | 数据包为:{“1”:1,”2”:1,”3”:1,”4”:1} |
关于Onenet的数据下发:
如图,由于Onenet 按钮下发数据的时候有一个默认值,所以很多人电机按钮的时候都是发送0和1,所以很多人就比较迷茫,怎么区分多个按钮的下发指令,其实这很好解决的,onenet是支持自定义数据点的,不同的按钮开和关都可以设置成不同的数据命令,这样就很好办了对吧!
- onenet 的NB快速连接方法,不是使用LWM2M! 而是依旧使用wifi方案的MQTT!!
- onenet的安卓开发有多重方法,一是使用onenet官方提供的SDK和API,另外一种更简单粗暴的就是使用安卓的mqtt协议(之前多次失败的原因终于找到了)就是发布消息时的格式问题,普通的MQTT客户端和平台都是支持发送字符串的,,比如publish(“T”,“20”),但是onenet是不允许的,而且你强制发送的话,发武器会使你掉线!这就是我很久之前遇到的问题,今天看了一个博客恍然大悟:参考链接见文末。
- onenet支持的MQTT数据流都是16进制的。而且他的数据下发是不需要订阅的,而且是不支持订阅系统$开头的主题的。
OK先总结到这里,有问题欢迎下方留言或者咨询:QQ群:476840321
参考链接:
1、onenet利用MQTT协议的开发逻辑
2、不支持MQTT的NB模组利用TCP强行mqtt通讯
3、高新兴ME3616调试Onenet笔记