资讯详情

3-STM32+BC26/260Y基本控制篇(自建物联网平台)-整体运行测试-微信小程序扫码绑定BC26,并通过MQTT和BC26实现...

说明

这节测试一下微信小程序扫码绑定BC然后通过26模块实现微信小程序和开发板之间的通过MQTT进行远程通信控制.

本节作为板的整体功能测试,用户下载本节的程序测试基本控制部分实现的基本功能

测试板是否正常工作.

先睹为快

小程序的页面比较简单,后面有好看的UI之后再改下.

测试准备工作

1.请根据硬件使用说明将此程序下载到单片机

2.单片机工程目录

3.Hex文件位置

4.别忘了安装手机卡和天线

5.安装微信小程序(使用开发工具打开以下工程)

注:如果您没有学习过小程序,请先学习微信小程序开源教程

6.点击 预览,用微信扫码安装到手机上

注:默认连接的我的服务器,mnif.cn,用户可以在细节中选择不校验域名(不推荐,通信可能有问题)

域名白名单(推荐)也可以在微信小程序平台上设置

注:预览模式有时间限制。如果您想长期使用,请发布小程序

注:域名白名单设置在微信小程序平台上

7.添加设备

8.选择扫码添加

9.扫描模块上的二维码

注:双击屏幕可放大摄像头扫描倍数

10.扫描成功以后将会在主页面添加一个设备

注:模块显示的内容IMEI号

11.单击显示设备进入设备控制页面

测试继电器控制

1.点击中间的开关控制继电器

2.动作开发板上方 PB5.继电器将翻转按钮

测试温湿度传感器

1.正常情况下OLED会显示当前的温湿度数据(也可以验证)OLED工作正常吗?

2.手机APP它还将显示当前的温湿度数据

注:可以吹温湿度,改变温湿度.

测试光敏电阻

注:这不是真正的光强!我只是收集电压,乘数显示!

你可以用手盖住传感器,看看收集的数量是否发生了变化.

测试RGB

用手拖动,可以看到板上的灯随着拖动颜色的变化而变化

测试蜂鸣器和热释红外传感器

1.程序一运行,继电器就会被吸合,蜂鸣器也会被吸合 滴 一声.

2.在程序上,只要触发热释红外传感器,就会听到蜂鸣器滴落.

打开串口日志也可以看到相关日志

测试485

1.使用USB485模块连接开发板

2.将信息发送到485所在的串口号,并将收到相同的信息

测试CAN总线

程序写了一个回环测试,可以在日志上看到CAN测试结果

提示

以下是整个程序的介绍。如果是初学者,你可以看看.

写下后面的目的是给已经有基本了解整个程序执行步骤.

便于快速实际应用于项目.

初学者可以一步一步地学习.

后面的教程会让用户一步一步知道一切都是怎么做到的。.

整个程序说明

1.首先,让我谈谈微信小程序 的UI页面下载链接

RGB调色UI源码链接

https://segmentfault.com/a/1190000017749965

2.提示

整个程序就是利用MQTT服务器实现微信小程序与设备之间的通信.

设备连接上MQTT以后

订阅的主题是: user/设备的IMEI 主题: device/设备的IMEI

微信小程序扫码获取设备IMEI

发布是:user/设备的IMEI 订阅的主题是:device/设备的IMEI

协议规定:

3.单片机程序

①:控制模块连接TCP服务器(MQTT服务器)

②:MQTT消息处理包(缓存管理,支持消息等级0,1,2)

4.微信小程序

① 添加设备页面 ② 控制页面 ③ paho-mqtt.js 官方底层包 mqtt.js我又封装了mqtt包

详细说明单片机程序

为了保证程序的执行效率和稳定性,单片机程序采用环形队列和缓存管理.

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(); 放到掉电中断和跌机中断里面执行.

 

 

 

 

 

微信小程序程序详细说明

1.mqtt.js 是封装的MQTT相关的函数

 

 

 

2.点击添加设备

 

 

 

3.点击扫码绑定,并把扫描的二维码信息传递到主页

 

 

 

4.BC26的二维码信息是  IMEI号;SN码  需要只提取IMEI 然后存储到数据库,并更新

 

 

 

5.点击某一个设备,携带着这个设备的IMEI号跳转到控制页面

 

 

 

6.控制页面获取数据

 

 

 

 

7.订阅主题,和轮训查询设备数据

 

 

 

 

 

 

 

 

 

 

 

8.接收处理消息

 

 

 

 

 

 

 

9.发布消息

 

 

 

 

 

其它

 

 

当前只用到了红色的RGB自定义组件 

circle_progress 暂时没有用,因为存在问题

蓝色是使用 npm安装的lin-ui,也没有使用.

 

结语

对于初学者,感受一下远程通信就可以.在后面的章节中将会详细的学习到是怎么做到的.

标签: 6sn1145继电器不吸合

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台