【RT-Thread作品秀】设备运行数据分析预警系统
作者:林宏华
概述
我们在工厂里,特别是生产重型机械的工厂里工作过的人都知道,当我们需要吊起几百斤到到几十吨的重物时,一般都会用到起重机,常见起重机又分为桥式起重机、门式起重机等,都具有自身运行轨道的起重机设备,他们的运行轨道一般根据车间的长度来安装和车间的宽度来设计制造,相当于每台起重设备都是定制的。常见的起重机有双梁和单梁,一般10吨以下多以单梁和小型双梁为主,10吨到20吨以小型双梁为主,20吨以上以双梁为主,同时还配有司机室。
由于轨道很长,所以是由多根轨道拼接而成,连接处会有缝隙,如果缝隙过大会造成起重机运行过程出现剧烈抖动,如果轨道不平,起重机运行时就会有上坡下坡的情况。设备会增加自身负载而影响运行安全。为了实时监测设备运行状态,需要一个小巧跟随设备运行的数据分析仪。可以方便安装在需要监测的部位,当超过设定相关参数的阈值时就会发出报警信息,配合这样测量的数据更加真实可靠。除了用于起重机,还可以用于船舶,游乐设施等。
开发环境
本项目采用到硬件方案是:通过ART-Pi STM32H750主板上的I2C引脚和UART以及一个普通IO口就可以实现与STEVAL-MKI197V1(LSM6DSOX)六轴传感器和STEVAL-MKI192V1(LPS22HH)气压传感器的I2C通信,与广和通 L610-CN-00 Cat1 模块实现串口通信连接物联网平台。
除了以上的外扩硬件外,还使用到了ART-PI板载的资源,如WIFI模块的WIFI和蓝牙功能实现小程序进行蓝牙配网后启动TCP服务器,等待其他客户端连接并进行相关控制。
软件方案是:
- 开发源码基础:ART-PI SDK1.0,主要使用到出厂案例中的蓝牙配网
- STM32CubeMX:主要用于生成相关硬件驱动
- 开发工具及版本:MDK5.31.0.0
- ENV工具:通过menuconfig配置L610组件到工程
- 物联网可视化软件Node-Red:人机交互页面
- 阿里云物联网开发平台,其中阿里云和Node-Red是作为数据采集显示运动曲线的上位机,方便对采集的数据进行分析。
- 手机APP:具有TCP/IP协议,实现连接开发板WIFI。
RT-Thread使用情况概述
总的来讲,RT_Thread大部分功能都用到了,因为我是基于出厂代码来添加自己的应用代码的,这里只介绍自己添加了哪些功能代码。
内核部分:使用了任务创建、任务休眠
组件部分:使用了WIFI框架来实现,网络接口驱动、轻量级的TCP/IP协议、AT指令框架、MQTT组件
软件包:使用了广和通L610模组驱动,连接阿里云软件包。
硬件框架
框架如图所示:主要用到ART-PI主板、广和通L610 cat1模组、六轴传感器和气压计。
- 利用ART-PI板载的WIFI/BT(AP6212A)模组实现TCP服务器,首先通过手机的微信小程序让开发板连接到无线路由器,然后创建TCP服务器。通过局域网手机软件或网络助手软件都可以连接TCP服务器。
- 六轴传感器和气压计是用于测量设备运行的状态,如姿态、方向、高度、温度等,通过HAL库的I2C实现数据读取。
- LSM6DSOX 是小尺寸低噪声低功耗的加速度计陀螺仪二合一芯片 . 具有数字I²C、SPI 和MIPI I3CSM 串口标准输出. 是手持便携式应用的理想选择,如物联网(IoT)连接设备,穿戴,等其他应用。可利用硬件识别出的自由落体事件、6D 方向、单击和双击感应、活动或不活动、唤醒事件,来生成中断信号。可单独设定最多16 个嵌入式有限状态机,用于运动检测或手势识别,例如查看、绝对手腕倾斜、摇晃、连续两次摇晃或拿起。LSM6DSOX 还嵌入了机器学习内核逻辑,可以识别数据模式与用户定义的类别集是否匹配。应用的典型示例有跑步、行走和驾车等活动检测。
- LSM6DSOX EVB提供完整的LSM6DSOX信号输出,并在VDD/VDDIO上提供所需的去耦电容,用户基于它可以快速设计自己的系统原型和设备,直接调试评估芯片的功能和性能参数。
- LPS22HH 是一款高精度气压传感器,可用作数字输出气压计,具有数字I²C / MIPI I3CSM / SPI 串行接口标准输出。工作压力范围为260 hPa 至1260 hPa,器件能够以最高200 Hz 的输出数据率测量压力值。绝对精度是0.5hPa.LPM下功耗只有4uA.可以用于测量海拔高度,楼层定位,无人机定高,吸尘器吸力大小判断等应用。
- LPS22HH EVB提供完整的气压计LPS22HH信号输出,并在VDD/VDDIO上提供所需的去耦电容,用户基于它可以快速设计自己的系统原型和设备,直接调试评估芯片的功能和性能参数。
- 广和通LTE Cat 1模组L610技术规格:
-
(1)、L610是LTE-Cat1制式;(2)、L610的基带是展锐春藤 8910DM,是完全符合3GPP R13官方标准的 Cat.1bis 通信终端解决方案;(3)Cat1 最大上/下行速率 5Mbps UL/10Mbps DL;(4)Cat1 是LTE终端的一个类别,不是新技术,用现有的LTE网络,网建成熟;(5)、完美承接2G/3G的退网迭代需求;(6)、完美承接部分Cat4的向下兼容替代需求;(7)、Cat1可以覆盖超30%的物联网场景 ;(8)、Catx(UE-Category),3GPP定义 LTE终端能力等级,表明了终端所支持的数据处理能力(下载、上传速 率)、最大的空分复用、调制编码能力;(9)Cat.1 bis是唯一符合规范的Cat1单天线方案。
通过它可以实现户外将测量传感器数据通过MQTT协议发送到阿里云平台,模组是通过ART-PI主板的UART1和一个GPIO引脚实现AT指令控制的。模组的供电电源由ART-PI主板5V引脚提供。详情阅读:基于广和通Cat1模块L610+ RT-Thread AT-Device应用讲解.pdf文件
软件框架说明
软件部分主要是利用ART-PI的出厂固件实现小程序蓝牙配网,为实现局域网连接做好准备,连接好WIFI路由器,然后开发板创建两个TCP服务器后,即可使用手机端TCP/IP APP来连接开发板,实现手机APP发送相关指令来查看开发板采集到的数据。此时NODERED也可以实现同样的连接方式,同时还具备连接阿里云的MQTT功能,让数据可视化,例如查看数据曲线。Cat1 L610模组也是实现MQTT连接阿里云,它的重要意义在于可以在户外测试设备的运行状态,因为只需要电话卡就可以实现了数据实时上传到云端,并用Node-RED远程监控。
软件模块说明
应用软件关键部分的逻辑有:
- 官网提供的微信小程序:检测开发板蓝牙,并实现通过蓝牙配置手机连接的WIFI。
- TCP/IP:启动两个TCP服务器实现局域网控制,提供两个端口号5000和6000。
- Node-Red:通过物联网平台软件连接TCP服务器和阿里云平台进行控制和接收开发板采集的数据。
- 阿里云物联网平台:与L610实现MQTT连接,上传传感器数据;与Node-Red连接获取传感数据并集中显示在Node-Red人机交互页面中。
- 手机APP :下载第三方的TCP/IP协议的APP连接开发板的TCP服务器,例如连接192.168.1.6 端口5000。实现查询传感器数据,控制开发板。
演示效果
视频演示:
比赛感悟
本次比赛获益良多,刚拿到开发板不知道如何下手,特别烧录程序就折腾很久,然后终于了解到还有下载算法实现程序运行在外部FLASH里面。接着时传感器数据的读取,由于对硬件的I2C不是特别了解,为了解决通信问题,把官方的源码做了许多的测试和修改。遇到问题只能寻求帮助,在群里问了大佬们的读取情况,他们都说能够正常读取,读取数据很方便,这使得我不得不怀疑人生,这么简单的问题我都没有解决。最后就是啃官方代码和测试,最后发现居然是一个指令发错了,导致读取不到。
这些传感器数据解决了之后,接下来就是通讯问题了。根据广和通的官方视频教程,实现了连接阿里云的物联网平台,这个连接过程也是一波三折。最开始是通过env 的menuconfig添加串口、IOT组件等一些操作,视频中是使用的LED案例,而我为了使用的WIFI蓝牙设备,所以采用出厂案例。基于这个案例开发本次作品。