https://www.cnblogs.com/yangfengwu/p/11249674.html
该APP安装包下载链接:
http://www.mnif.cn/appapk/IotDevelopmentVersion/20190730/app-debug.apk
APP源码获取方式:(请阅读宝贝说明)
此APP建立在基础篇,升级篇,数据篇和安全篇.只有把这些篇章全部学过才能看得懂源码!
https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.70471debVGb9G8&ft=t&id=569295486025
https://gitee.com/yangfengwu/qqqqqdevelopmentshare.git //提供的测试固件
注:后期将提供支持升级的固件!
根据自己的Wi-Fi模块型号选择,刷的地址为0
该固件的功能:
1,MQTT透传,请外加单片机实现下面介绍的回复查询和控制的协议
2,GPIO0按下3S指示灯快闪进入SmartConfig ,此时可以用APP搜索绑定
一,设备快速接入:
请设置自己设备连接的MQTT信息:
用户名:yang
密码:11223344
IP地址:mnif.cn
端口号:1883或者8883(SSL连接暂时请忽略认证错误),建议使用此端口
注:快速接入方式
APP默认订阅的主题为 device/Wi-Fi的MAC地址 或 device/GPRS模块的IMEI
APP默认发布的主题为 user/Wi-Fi的MAC地址 或 user/GPRS模块的IMEI
通信控制协议:所有协议为JSON格式
数据的data字段表明现在的数据是干什么用的
以下 " 只是为了组合成JSON格式的字符串
单路开关协议: data:switch开关数据 bit:1 第一路 status:-1/0/1 APP查询设备状态/断开/吸合
//下面两条协议为设备的遗嘱和上线信息
代码语言:javascript复制设备断线: "{"data":"status","status":"offline"}"
设备上线: "{"data":"status","status":"online"}" //这两条信息具体看下面 Wi-Fi 接入部分
代码语言:javascript复制APP发送的查询指令:(用来查询设备状态,和获取开关状态)
"{"data":"switch","bit":"1","status":"-1"}" //查询第一路开关的状态
设备返回:(根据当前开关状态返回)
"{"data":"switch","bit":"1","status":"1"}" / "{"data":"switch","bit":"1","status":"0"}"
代码语言:javascript复制//APP控制开关吸合消息
"{"data":"switch","bit":"1","status":"1"}"
//设备查询后返回的消息
"{"data":"switch","bit":"1","status":"1"}"
代码语言:javascript复制
代码语言:javascript复制//APP控制开关断开的消息
"{"data":"switch","bit":"1","status":"0"}"
//设备查询后返回的消息
"{"data":"switch","bit":"1","status":"0"}"
代码语言:javascript复制
1,WIFI接入:
请自行实现Wi-Fi的SmartConfig功能,APP会通过SmartConfig获得模块的MAC地址
设置Wi-Fi订阅的主题: user/Wi-Fi的MAC地址
设置Wi-Fi发布的主题: device/Wi-Fi的MAC地址
设置MQTT遗嘱:发布的主题device/Wi-Fi的MAC地址,遗嘱消息 "{"data":"status","status":"offline"}" retain 位必须设置为1
设置设备连接上MQTT以后发布的第一条消息:
发布的主题device/Wi-Fi的MAC地址
遗嘱消息 "{"data":"status","status":"online"}" retain 位必须设置为1
部分参考程序(ESP8266 LUA开发):
代码语言:javascript复制clientid = wifi.sta.getmac() //获取MAC
SubscribeTopic = "user".."/"..clientid //设备发布的主题
PublishTopic = "device".."/"..clientid //设备订阅的主题
//遗嘱
Mymqtt:lwt(PublishTopic, "{"data":"status","status":"offline"}", 0, 1)
//链接成功MQTT发布的第一条消息
Mymqtt:publish(PublishTopic,"{"data":"status","status":"online"}", 0, 1, function(client)end)
打开APP
添加设备 选择Wi-Fi 首先让自己的设备执行SmartConfig
搜索设备 搜索成功将自动添加 控制页面
2,GPRS接入:
APP绑定GPRS为扫描二维码方式
以合宙的Air202为例:
模块上的二维码为模块的IMEI号,APP通过扫描此二维码获取IMEI
模块程序订阅的主题: user/模块的IMEI
模块程序发布的主题: device/模块的IMEI
其余通信请和上面的介绍的协议保持一致!
绑定步骤
为区分设备可以长按设备修改名称:
https://cloud.tencent.com/developer/article/1478315