804-Air724UG模块(4G全网通GPRS开发)-手机APP扫码绑定Air724,并通过MQTT实现远程查看摄像头图像(自建MQTT服务器)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnAir724UG" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
实际效果
上面显示的是图像,下面温室湿度是模拟的数据,还有一个继电器的开关(实际控制开发板上的小灯)
测试(默认连接我的MQTT服务器测试)
1,安装好手机卡,天线,摄像头
2,下载这节的程序到开发板
程序里面设置的摄像头为30W,所以需要使用自定义的CORE, 可以自己生成,也可以使用我提供的
3,正常情况下开发板日志会显示如下
4,安装手机APP
5.点击APP右上方的菜单栏,选择 扫一扫
6.扫描模组上面的二维码
7.扫描成功以后将会在主页面添加一个设备
注:显示的内容为模组的IMEI号
8.扫描成功以后,自动跳转到主页面,并添加了一个设备
显示的为设备的IMEI号
9.点击设备进入设备控制页面
最上面会显示摄像头图像(每隔6S左右更新一张图片)
点击下面的控制按钮可以控制开发板上的灯
Air724程序说明
1,设置连接的MQTT信息,和订阅主题(user/设备的imei)
2,采集并发送图片数据(发送的主题:device/msg/设备的imei)
提示:发送图片的格式 {"imgdata":"FFD8...图片数据....FFD9","index":1,"count":2,"size":4567}
一张图片是分了好几次发送的,一次发送最大2184字节.
整体为json格式,图片数据是字符串形式的16进制, count代表总共有几帧数据, index代表当前传的第几帧, size代表整个图片数据长度
3,MQTT接收数据
4,接收到消息以后,调用的sys.publish 发送通知(返回消息给MQTT)
发送的主题:device/base/设备的imei
下面是接收消息通知,并把消息发送到MQTT;
再下面是模拟发送的温湿度数据
android程序说明
1.APP扫码程序使用的是Google 谷歌的zxing
2.点击菜单扫一扫进入扫码页面
3.扫码成功以后携带着数据跳转到主页
4.activity 接收数据并把信息存储listview和数据库
5.数据库操作是使用的郭霖写的litepel
6,现在看MQTT程序
app使用的jar包为: org.eclipse.paho.client.mqttv3-1.2.0
MyMqttCLient是封装的mqtt文件,用户后期通信都是使用这个里面的api函数
用户可以根据自己的mqtt服务器更改参数
7,连接mqtt只需要在一开始的时候调用下
MyMqttClient.sharedCenter().setConnect();//连接MQTT
然后内部就是自动连接.
8,点击APP页面上的设备,携带着设备的MAC地址信息跳转到设备控制页面
9,控制页面接收跳转的数据
10.设置一些回调函数,启动定时器订阅主题
11.在handler中处理MQTT数据
12.点击按钮发布继电器控制命令