2-开发共享版APP(接入指南)-设备接入说明:快速接入

2019-08-01 12:47:19 浏览数 (1)

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

0 人点赞