工厂环境采集系统 作者:李江兵 概述本系统实现的使一种远程工厂环境监测系统,该系统以NB-IoT通信技术为纽带,设计支持RS485总线传感器的采集、处理数据的硬软件并连接到自己搭建的MQTT服务器,并开发第三方应用程序用以实现数据的远程监控和动态分析。为了实现上述目的,本系统需要设计两个子系统,一个是支持NB-IoT的环境采集,负责采集单一环境温度;另一个是环境应用APP,负责将采集的数据通过界面显示出来,这两个子系统之间的纽带就是NB-IoT通信技术RT-Thread使用情况概述主要用到的RT-thread的内核内存的申请释放,动态线程的创建,操作系统的延时函数,临界资源的保护,信号量的创建获取使用(生产者消费者关系)。 硬件框架file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png 在硬件方面,采用了STM32作为主控MCU,作为数据处理,485传感器采集,MQTT联网配置,LED、NB-IoT控制的中心,环境采集选用实验室的RS485传感器光照温湿度传感器,远程无线模块选用NB-IoT模组,用于远程通信。 软件框架说明file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg 因为本系统用到了嵌入式实时操作系统,可以实现多个任务同时进行,三个线程从左到右分别是NB-IoT联网,RS485采集,和led灯闪烁,在程序中对应着串口三,串口二,和LED线程。 软件模块说明NB-IoT的指令主要载体是在STM32程序里面,实现的是消息发送,接收以及联网配置,硬件初始化等功能。 file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png 图1 NBIOT联网程序流程 通信服务的程序主要在串口三线程里面,主要进行的NB激活,联网操作,检查是否连接到网络,重新连接,数据发送。 Modbus是基于RS485 的软件协议,主要解决主从机之间的通信问题,编程主要解决了485问询、及对传感器的数据返回效验处理的问题。 file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png 图2 485问询程序流程 首先向串口二发送问询帧,传感器收到问询帧,返回温度,地址,效验码,单片机处理接收的数据,效验,效验通过后,拼接成字符串,待延时时间结束后,清除缓存,以此循环。 APP的主要功能就是将MQTT服务器(基于U cloud赠送的服务器)上的消息订阅,然后定时更新界面,然后还要要有登录界面,退出登录等。开发流程主要包括,模板生成,界面设计,权限获取,最后是各个功能的实现,这里主要将服务器消息获取显示。 大致流程: file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png 图3 APP开发流程 首先APP要获取手机权限,主要是联网权限,然后再通过网络向服务器发送订阅请求,服务器收到请求然后,下发对应的主题消息数组,然后通过字符串截取处理等操作,显示到预先设计的界面控件里面,最终实现界面的可视化。 演示效果file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpgfile:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg file:///C:/Users/nihao/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg B站:https://www.bilibili.com/video/BV1pJ411J7C1 代码地址链接:https://pan.baidu.com/s/1u1MswCqtEC64qfFYzBCPqQ 提取码:aovw
|