2-开发共享版APP(接入指南)-设备接入说明:快速接入
https://www.cnblogs.com/yangfengwu/p/11249674.html
该APP安装包下载链接:
http://www.mnif.cn/appapk/IotDevelopmentVersion/20190820/app-debug.apk
或者扫描二维码下载

APP源码获取方式:(请阅读宝贝说明)
此APP建立在基础篇,升级篇,数据篇和安全篇.只有把这些篇章全部学过才能看得懂源码!
https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.70471debVGb9G8&ft=t&id=569295486025
一,设备快速接入:
请设置自己设备连接的MQTT信息:
用户名:yang
密码:11223344
IP地址:mnif.cn
端口号:1883或者8883(SSL连接暂时请忽略认证错误),建议使用此端口
通信控制协议:所有协议为JSON格式
数据的data字段表明现在的数据是干什么用的
以下 \" 只是为了组合成JSON格式的字符串
单路开关协议: data:switch开关数据 bit:1 第一路 status:-1/0/1 APP查询设备状态/断开/吸合
//下面两条协议为设备的遗嘱和上线信息
设备断线: "{\"data\":\"status\",\"status\":\"offline\"}"
设备上线: "{\"data\":\"status\",\"status\":\"online\"}" //这两条信息具体看下面 Wi-Fi 接入部分
APP发送的查询指令:(用来查询设备状态,和获取开关状态)
"{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"-1\"}" //查询第一路开关的状态
设备返回:(根据当前开关状态返回)
"{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"1\"}" / "{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"0\"}"
//APP控制开关吸合消息
"{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"1\"}"
//设备查询后返回的消息
"{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"1\"}"
//APP控制开关断开的消息
"{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"0\"}"
//设备查询后返回的消息
"{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"0\"}"
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开发):
clientid = wifi.sta.getmac() //获取MAC
SubscribeTopic = "user".."/"..clientid //设备发布的主题
PublishTopic = "device".."/"..clientid //设备订阅的主题 //遗嘱
Mymqtt:lwt(PublishTopic, "{\"data\":\"status\",\"status\":\"offline\"}", , ) //链接成功MQTT发布的第一条消息
Mymqtt:publish(PublishTopic,"{\"data\":\"status\",\"status\":\"online\"}", , , function(client)end)
打开APP
添加设备 选择Wi-Fi 首先让自己的设备执行SmartConfig

搜索设备 搜索成功将自动添加 控制页面

2,GPRS接入:
APP绑定GPRS为扫描二维码方式
以合宙的Air202为例:
模块上的二维码为模块的IMEI号,APP通过扫描此二维码获取IMEI

模块程序订阅的主题: user/模块的IMEI
模块程序发布的主题: device/模块的IMEI
其余通信请和上面的介绍的协议保持一致!
绑定步骤

为区分设备可以长按设备修改名称:

https://www.cnblogs.com/yangfengwu/p/11273530.html
2-开发共享版APP(接入指南)-设备接入说明:快速接入的更多相关文章
- 1-开发共享版APP(搭建指南)-快速搭建到自己的服务器
该APP安装包下载链接: http://www.mnif.cn/appapk/IotDevelopmentVersion/20190820/app-debug.apk 或者扫描二维码下载 注:该下载可 ...
- 2-开发共享版APP(搭建指南)-修改包名
https://www.cnblogs.com/yangfengwu/p/11273734.html https://www.cnblogs.com/yangfengwu/p/11273746.htm ...
- 3-开发共享版APP(搭建指南)-修改手机验证码
https://www.cnblogs.com/yangfengwu/p/11273743.html 请先看数据篇 或者参考 https://www.cnblogs.com/yangfengwu/p/ ...
- 1-开发共享版APP(源码介绍)-BUG修复
这一系列文章将介绍APP的源码,这一节作为所有BUG问题修复! https://www.cnblogs.com/yangfengwu/category/1512162.html //开发共享版A ...
- 3-开发共享版APP(接入指南)-设备接入说明:使用隐藏配置
https://www.cnblogs.com/yangfengwu/p/11273226.html 该APP安装包下载链接: http://www.mnif.cn/appapk/IotDevelop ...
- 1-开发共享版APP(接入指南)-APP说明
该APP的功能,类似于网上售卖的Wi-Fi/GPRS远程控制器 设备页面 用户页面 ...
- 如何接入银联“快速接入”产品API
引言:使用银联开放平台的用户或多或少都接触过产品API吧,那么大家对于“快速接入”产品API是否还会存在一些疑问呢?因为我之前对“快速接入”模糊不清,所以整理的一份详细的资料,里面梳理了“快速接入”产 ...
- Android开发SDK接入机智云,智能家居实现APP远程控制多设备
代码地址如下:http://www.demodashi.com/demo/12847.html 一.前言. 此框架只用了一周星期做了出来,因为对机智云的框架比较熟悉了 !期间SDK初始化出了问题,去咨 ...
- C#微信公众号开发系列教程二(新手接入指南)
http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...
随机推荐
- git 学习笔记 --Bug分支
软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一 ...
- Cascader 级联选择器hover选择效果
官网例子 <div class="block"> <span class="demonstration">hover 触发子菜单< ...
- 【开发笔记】- 永远不要在MySQL中使用UTF-8
原文地址:https://mp.weixin.qq.com/s/I3Tkvn8vSyC5lEpD9HzwiA 最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个 ...
- SqlDataSource控件超时的困惑
想用最简单的SqlDataSource控件完成对一个记录数很多的表的查询操作,结果出现超时异常,找了些解决方法都不奏效,后来在www.codeproject.com查到高手也放弃了用控件的方法,于 ...
- 两种方法实现在HTML页面加载完毕后运行JS
JS默认方法: <script type=”text/javascript”> window.onload=function (){ /*代码区域*/ } </script> ...
- MYSQL5.7生成列简介及创建
1.说明 生成列是由已存在的字段通过表达式计算得来的 2.生成列类型 VIRTUAL,即虚拟类型,字段值不实际存储,当读取行时再计算,虚拟列类型不占存储 STORED,即存储类型,字段值会实际存储起来 ...
- springboot注解@NotNull,@NotBlank,@Valid自动判定空值
一.前言 搭建springboot项目,我们都是采用的Restful接口,那么问题来了,当前端调用接口或者是其他项目调用时,我们不能单一靠调用方来控制参数的准确性,自己也要对一些非空的值进行判定. 二 ...
- nodejs 将不同文件夹中的视频整合到一个文件夹中
var fs = require("fs") var path = require("path") var listRealPath = path.resolv ...
- golang中逗号ok模式_转
,ok,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error.在一个需要赋值的if条件语句中,使用这种模式去检测第二个参数值会让代码显得优雅简洁.这种模式在go语言编码 ...
- Gtest:源码解析
转自:玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest 一.前言 “深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内 ...