2-STM32+BC26/260Y基本控制篇(自建物联网平台)-整体运行测试-APP扫码绑定BC26,并通过MQTT和BC26实现远程...
时间:2023-03-07 22:00:00
说明
测试这一节APP扫码绑定BC然后实现26模块APP通过开发板MQTT远程通信控制.
本节作为板的整体功能测试,用户下载本节的程序测试基本控制部分实现的基本功能
测试板是否正常工作.
先睹为快
测试准备工作
1.请根据硬件使用说明将此程序下载到单片机
2.单片机工程目录
3.Hex文件位置
4.别忘了安装手机卡和天线
5.安装手机APP
6.手机APP安装包位置
7.点击APP选择右上方的菜单栏。 扫一扫
8.扫描模块上的二维码
9.扫描成功后,将在主页上添加设备
注:模块显示的内容IMEI号
主页没有美化.
10.单击显示设备进入设备控制页面
提示:
设备状态显示在左上角返回键旁边,正常情况下应显示 "在线"
如果显示 "离线",硬件没有正常工作.
建议下载程序后复位;
移动手机卡和天线,可能接触不良;
如果没有,可以将打印串口1的日志发送到售后支持组.
测试继电器控制
1.点击右上角的开关控制继电器
2.动作开发板上方 PB5.继电器将翻转按钮
测试温湿度传感器
1.正常情况下OLED会显示当前的温湿度数据(也可以验证OLED工作正常吗?
2.手机APP它还将显示当前的温湿度数据
注:可以给温湿度吹吹气,改变一下温湿度.
测试光敏电阻
注:APP中间显示光敏电阻值
这不是真正的光强!我只是收集电压,乘数显示!
你可以用手盖住传感器,看看收集的数量是否发生了变化.
测试RGB
用手拖动,可以看到板上的灯随着拖动颜色的变化而变化
下面的是 HSV虽然做到了,但不知道是不是这样。
测试蜂鸣器和热释红外传感器
1.程序一运行,继电器就会被吸合,蜂鸣器也会被吸合 滴 一声.
2.在程序上,只要触发热释红外传感器,就会听到蜂鸣器滴落.
打开串口日志也可以看到相关日志
测试485
1.使用USB485模块连接开发板
2.将信息发送到485所在的串口号,并将收到相同的信息
测试CAN总线
程序写了一个回环测试,可以在日志上看到CAN测试结果
提示
以下是整个程序的介绍。如果是初学者,你可以看看.
写下后面的目的是给已经有基本了解整个程序执行步骤.
便于快速实际应用于项目.
初学者可以一步一步地学习.
后面的教程会让用户一步一步知道一切都是怎么做到的。.
整个程序说明
1.先说说吧Android 的UI页面下载链接
RGB调色UI源码链接
https://blog.csdn.net/caobin_study/article/details/81627102
温湿度,光强UI
https://blog.csdn.net/hehehaha1123/article/details/60574431
2.提示
使用整个程序MQTT服务器实现APP与设备通信.
设备连接上MQTT以后
订阅的主题是: user/设备的IMEI 主题: device/设备的IMEI
APP扫码得到设备IMEI
发布是:user/设备的IMEI 订阅的主题是:device/设备的IMEI
协议规定:
3.单片机程序
①:控制模块连接TCP服务器(MQTT服务器)
②:MQTT消息处理包(缓存管理,支持消息等级0,1,2)
4.APP程序
红色是Google二维码相关jar包和程序
绿色的是MQTT相关的jar包和程序
详细说明单片机程序
为了保证程序的执行效率和稳定性,单片机程序采用环形队列和缓存管理.
AT模块配置指令非阻塞模式,Flash提高使用寿命等方案.
请先学习自己的开源。 以下内容包括数据处理思想和程序架构
1.关于串口1
串口1作为日志打印,发送数据中断 环形队列,
将相应的数据发送到串口1打印在串口2和串口3发送和接收数据的地方.
2.注册MQTT相关函数
3.控制模块连接MQTT服务器
提示:先前获取的IMEI就存在 MQTTid这个数组里面.
所以下面组合的发布主题为:device/设备的IMEI
4.连接成功调用注册的连接回调函数(在回调函数里面发送订阅主题的协议)
提示:先前获取的IMEI就存储在 MQTTid这个数组里面.
所以下面组合的订阅主题为:user/设备的IMEI
5.在注册的接收回调函数中处理接收的消息
6.发布消息
在接收回调函数里面返回继电器消息
每隔一段时间上报温湿度,光照强度消息
如果继电器状态改变,上报继电器状态
7.细节说明-关于串口2接收数据的配置
串口2判断空闲使用的定时器,原因是GSM串口发送的数据并不是那么的标准,中间有断断续续的情况.
用自带的空闲中断检测会把一条数据判断成多条存储在缓存中.所以用定时器加长了空闲时间判断.
8.细节说明-串口2接收的数据送给配置函数和MQTT处理函数
注:如果已经建立了TCP通信,找到真实数据的位置,把真实数据送给配置函数或MQTT处理函数
9.细节说明-MQTT连接成功以后的发送的各种数据的地方
注:MQTT我使用了缓存管理封装了下,所有的数据都存储在了缓存里面
后期移植使用的时候只需要把发送TCP数据改一下就可以,后面章节有相应的移植教程.
10.细节说明-RGB控制的参数会实时记录在Flash里面
注:每次启动会直接显示以前的灯的状态,为提高Flash使用寿命,存储方式采用我封装的 flash_helper.
当然也可以不用实时刷新存储,也可以把 FlashHelperUpdate(); 放到掉电中断和跌机中断里面执行.
APP程序详细说明
1.MyMqttClient 是封装的MQTT相关的函数
2.点击右上角菜单 启动扫码
3.扫码成功携带着二维码信息跳转到主页面
4.BC26的二维码信息是 IMEI号;SN码 需要只提取IMEI 然后存储到数据库,并更新Listview
5.点击某一个设备,携带着这个设备的IMEI号跳转到控制页面
6.控制页面获取数据
7.订阅主题,和轮训查询设备数据
8.接收处理消息
9.发布消息
结语
对于初学者,感受一下远程通信就可以.在后面的章节中将会详细的学习到是怎么做到的.