基于STM32的铁路运输站内NB-IoT可视化云BAS系统设计

2022-04-25 11:49婷,安璐,廖明,刘
计算机测量与控制 2022年4期
关键词:上位温湿度阈值

贾 婷,安 璐,廖 明,刘 莹

(1.沈阳工学院 信息与控制学院,辽宁 抚顺 113122; 2.中铁九局集团电务工程有限公司,沈阳 110000)

0 引言

BAS系统由中央监控工作站、现场控制器、其他监控子系统、传感器及通信网络构成[1]。中央监控站,设于站房一层消防控制室,由通信前置机、BAS工作站、后台交换机、网关服务器、UPS电源、打印机等设备组成。中央监控站提供与智能照明、FAS等系统的数据接口。在机电设备相对集中的现场设置现场控制器,完成对空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等设备的监控及监视[2-3]。

基于蜂窝的窄带物联网(NB-IoT,narrow band internet of things)是万物互联网络的一个重要分支[4]。NB-IoT构建于蜂窝网络,只消耗大约180 kHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWAN)。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接[5-7]。NB-IoT设备电池寿命可以提高至至少10年,同时还能提供非常全面的室内蜂窝数据连接覆盖。

在车站监控过程中,为了更好地优化BAS系统的可视化界面设计、提高监控质量,以达到节能、安全、提高管理水平的目的,本设计采用STM32作为微控制器,设计温湿度及光照总控中心和调控节点电路,总控中心通过华为 NB-IoT无线通信模块与安装在站内的多个调控节点进行指令和数据的通信,将通过各节点的温湿度及光照传感器采集到的数据经STM32单片机处理后,通过NB-IoT无线通信模块上传至根据实际要求设计的华为云模型中,实现总控制中心及节点电路的数据可视化及数据分析,并可以由上位机云端模块直接控制下位机的空调机组,换气机污水泵等设备,以实现实时的监管与控制站内现场环境。

1 系统组成与原理

基于STM32的铁路运输站内NB-IoT可视化云智能BAS系统由上位机 Oceanconnect云平台、 NB-IoT无线传输模块和下位机STM32F411单片机数据采集调控节点组成。利用各STM32F411单片机数据采集调控节点通过传感器获取铁路运输站内的各数据信息(温度、湿度、光照等信息),通过NB-IoT无线传输模块构建网络,最后将各节点数据传输到上位机 Oceanconnect云平台上,实现数据的可视化,并可由上位机Oceanconnect云平台下发指令来实时完成对各站内空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等设备的监控及监视,其系统组成如图1所示。

图1 系统组成框图

如图1所示,上位机安放在车站管理中心,为一体机或笔记本电脑,下位机数据采集调控节点及 NB-IoT无线传输模块安放在各个车站监控室,下位机各控制节点将采集到各站内的实时环境数据通过 NB-IoT无线传输模块上传至 Oceanconnect物联网云平台中预先建立好的节点模型中,实时数据在平台中以数据及图表形式更加直观的显示出来。同时通过上位机Oceanconnect物联网云平台中观测到的数据如果超过相应的阈值范围,还可以通过上位机页面中设置的按钮手动关闭或开启下位机节点中的执行设备如空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等设备,如预设温度阈值范围为20~27 ℃,一旦温度超过27 ℃或低于20 ℃,可通过Oceanconnect物联网云平台中的对应按钮来控制站内的制冷或加热设备的开启,从而实现上下位机的实时通信、数据传输与显示分析及自动安全控制等功能。

2 系统下位机节点硬件设计

根据温度传感器、湿度传感器及光敏传感器数据综合来控制电机和继电器来自动控制车站中的空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等执行设备的开关状态,同时可通过云平台远程监测与控制车站管理系统。各下位机各控制节点由STM32F411单片机、数字型光敏传感器、温湿度传感器、OLED屏幕、按键、驱动电机(为开启空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等设备提供电压)、继电器等组成,如图2所示。

图2 下位机硬件电路设计框图

基于STM32F4系列芯片、数字型光敏传感器、温度传感器、湿度传感器、按键、OLED屏幕等硬件设计开发各下位机控制节点,采集并显示环境温湿度、光照强度数据的程序,能够实现通过串口输出以及OLED显示光敏传感器数据功能。设计根据温度、湿度、光照强度自动控制车站的执行设备,能够实现根据环境温湿度、光照强度实时调节车站的各执行设备开关状态的功能,其中温湿度、光照强度的阈值可通过键盘输入调节,并在OLED屏幕上显示设置阈值的过程以及实时温湿度、光照强度。设计时间控制车站的程序,能够实现根据设置的时间对车站进行控制,时间设置为24小时制,通过键盘进行设置,并在OLED上显示设置后的时间以及当前时间,为了方便验证,当前时间也需要设置。基于NB-IoT网络设计端测设备数据上云程序,能够实现在Oceanconnect平台的应用模拟器中查看终端设备上传的温湿度、光照强度数据,同时在OLED上显示当前检测的光照数据,要求OLED屏幕上当前光照值与oceanconnect上传的光照值一致。设计完整功能程序,能够实现底层矩阵键盘与云端Oceanconnect平台实时设置温湿度、光照强度阈值(底层矩阵键盘的输入优先级最高),OLED屏幕实时更新显示来自矩阵键盘输入和云端平台下发的当前时间,根据时间控制车站的时间范围、当前温湿度、光照强度、控制车站的温湿度、光照强度范围、电机及继电器(即车站中的空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等执行设备)当前的状态。

系统中的主控芯片采用的是STM32F4系列的STM32F411芯片,该芯片在同类单片机芯片中性能较好,性价比较高,支持程序执行和数据传输并行处理,数据传输速率非常快[8-10]。STM32F411芯片具有512 KB的ROM,128 KB的SRAM,以及连接到两个 APB 总线、两个 AHB 总线和一个 32 位总线的各种增强型 I/O 和外设多 AHB 总线矩阵,并以100 MHz的工作频率运行。在系统中同时利用STM32的GPIO端口输入功能来采集各传感器中的环境数据,输出功能来实现根据当前环境数据来实时控制站内设备,以达到系统的平衡与稳定状态。

系统中采用SHT30温湿度传感器来实现对温度和湿度的采集。SHT30温湿度传感器最高支持1 000 k的传输速率,有较高的数据通信速率,高集成度电容式测湿元件和能隙式测温元件,SHT30能够提供极高的可靠性和出色的长期稳定性,具有功耗低、反应快、抗干扰能力强等优点[11-13]。传感器内部经过校准、线性化与放大,能够输出与温湿度呈线性关系的模拟电压,无需额外的驱动库,使用简单方便,电路图连接如图3(a)所示。系统中采用BH1750光强传感器来实现对光照度的采集。BH1750是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。电路图连接如图3(b)所示。

图3 传感器电路连接图

系统中的下位机显示模块采用0.96寸OLED显示模块进行温湿度和光强数据的实时显示,OLED显示的数据与上位机一致能够证明通信的实时性能较好[14-17]。显示电路图连接如图4所示。

图4 OLED显示模块电路连接图

系统的执行器包含蜂鸣器、电机和继电器模块,当采集到的实时温度、湿度、光强等信息超过预测的阈值范围时,执行器进行相应的报警动作:温度超限时蜂鸣器报警、湿度超限时电机转动、光强超限时继电器模块打开,不同的执行器模块连接站内实际设备的驱动就可实现设备的自动控制,系统执行器模块电路连接如图5所示。

图5 执行器模块电路连接图

3 系统下位机软件设计

系统的下位机软件设计使用底层嵌入式实时操作系统的开发环境IoT Studio软件进行设计,IoT Studio 是支持 LiteOS 嵌入式系统软件开发的工具,支持 C、C++、汇编等多种开发语言,提供开发、构建、调试的一站式全流程开发,使用起来简洁方便,界面如图6所示。

图6 IoT Studio开发界面图

在IoT Studio软件中实现下位机C语言程序的编写、编译、修改,将无语法错误的程序下载到STM32F411单片机中实现软硬件集成在线调试,根据具体硬件的现象来确定程序的功能是否完善。

下位机在IoT Studio软件中主要实现对温度传感器、湿度传感器及光敏传感器的数据采集,将采集到的数据通过OLED屏幕显示出来,同时利用按键控制各传感器采集数据的阈值范围的设置,根据实际要求设置温湿度计光照数据的正常阈值范围,一旦有传感器采集到的某一实时数据超过了正常的阈值范围,通过蜂鸣器、电机、继电器等执行设备进行报警及控制车站中的电机及继电器,进而实现对空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等设备的控制。

上位机在IoT Studio软件中主要实现上下位机的双工通信,下位机单片机采集到的传感器数据上传到上位机Oceanconnect物联网云平台,同时上位机Oceanconnect物联网云平台的相关指令也可下发到下位机的单片机中来实现站内设备的实时控制。

设计过程采用模块化程序的设计方法,将系统软件设计分为温湿度传感器的数据采集、光敏传感器的数据采集、下位机上传输数据、上位机下发指令4个子程序模块的设计。

温湿度及光敏传感器的数据采集过程:首先声明 STH30 温湿度传感器及BH1750 光强传感器的寄存器地址,I2C 总线的地址,SHT30 的 I2C 总线通信地址,BH1750 的 I2C总线通信地址,启动地址,控制地址,复位地址等,完成寄存器地址的声明后,定义初始化函数 Init_N3M9_WDMTHI 与数据获取函数 N3M9_WDMTHI_Read_Data。在N3M9_WDMTHI.c 文件中对传感器的工作方式进行定义,首先初始化并启动 BH1750 光强传感器,即Init_BH1750初始化,对传感器通电命令 0x01 进行声明,然后通过 I2C 总线将该命令下发至传感器,在 Start_BH1750函数中声明一次性高分辨率工作模式的命令 0x10,并通过 I2C 总线将该命令下发至传感器。启动 BH1750 后即可通过 I2C 总线获取光照强度数据,通过公式将获取到的二进制数据转换为十进制数据,编写数据转换函数 Convert_BH1750。接着对温湿度传感器进行初始化,启动,复位,获取数据,转换数据,数据校验等功能函数的编写,首先完成温湿度传感器复位函数SHT30_reset及初始化函数 Init_SHT30的编写,通过I2C 总线给传感器的寄存器发送相应的命令来控制寄存器来实现复位与初始化,然后由于温湿度传感器采集的温度与湿度数据是分开采集的,但是该传感器设备在 I2C 总线上只有一个设备地址,其传输给 MCU的数据是打包发送的数据,因此需要使用SHT3x_CheckCrc函数对该数据进行校验。最后对获取到的温度、湿度数据分别进行转换,从而得到十进制的温度、湿度数据。

下位机上传输数据至云平台及上位机下发指令子程序设计过程:首先由于需要使用云端互通组件,因此在头文件中包含 oc_lwm2m_al.h、 link_endian.h 及N3M9_WDMTHI 扩展板的驱动头文件,然后配置 NB 模组与 Oceanconnect平台对接的相关参数,声明 NB 模组的唯一标识码,Oceanconnect服务器对接 IP 地址,端口这三个参数。紧接着声明 5 种消息的地址域名称,分别是数据上报,电机控制命令下发,继电器控制命令下发消息的地址域,底层硬件设备以不同的地址域来区分平台下发的不同消息。

在编写平台命令消息接收函数之前,首先定义数组与信号量变量,其中数据存放平台下发的数据,信号量同步平台消息接收与数据处理任务,当平台下发的命令是正确命令时则释放信号量,数据处理任务申请到信号量进而执行相应的数据处理任务。在 app_msg_deal平台命令消息的接收任务中需判断平台下发消息的大小是否正确,如正确则将数据存放至数组 中,数据存放成功后释放信号量,以便于后面的数据处理任务申请信号量。然后编写平台下发命令处理函数,先分别实例化两个下发命令消息结构体,两个下发命令响应消息结构体,定义一个获取平台下发命令中的地址域字段的地址域变量,便于在 while 循环中判断平台下发的消息,根据不同的地址域字段来执行不同的操作,在 while 循环中申请信号量,获取地址域字段的值,通过 switch 语句判断不同的地址域具体执行的操作。

完成平台下发命令处理函数后编写用户数据上报任务入口函数以实现底层传感器设备所采集的数据上报至云平台,实例化 Oceanconnect平台对接参数结构体 oc_param、上报数据结构体 Agriculture,通过 memset函数将 Oceanconnect对接参数结构体中数据清空一次,然后对Oceanconnect平台对接参数结构体 oc_param 重新赋值,通过 if 判断语句来判断是否赋值成功,通过 while 循环打包需上传的数据,给结构体 Agriculture 中的对象赋值,通过 oc_lwm2m_report 函数将结构体发送至OC云平台,然后任务休眠 2 s 后继续上传。完成数据上报任务入口函数后编写数据采集任务入口函数,通过调用 N3M9_WDMTHI初始化函数启动数据采集,通过 while 循环连续调用 N3M9_WDMTHI_Read_Data 函数读取传感器数据,任务休眠 2 s 后继续采集。然后用visio软件画出流程图,最后在IoT Studio集成开发环境下,用C语言编程在主程序中调用各个节点采集到的相关数据,根据按键设置的阈值来实现车站执行器控制的程序设计,主程序流程如图7所示。

图7 主程序流程图

软件工作流程为:STM32F411单片机先对其内部资源以及与之相连接的NB-IoT无线通信模块、温度传感器、湿度传感器及光敏传感器的数据采集模块、A/D模块、显示模块和按键模块进行初始化;然后判断是否收到上位机指令,如果接收到上位机指令,则根据指令进行操作;如果没有接收到上位机指令,调用温度传感器、湿度传感器及光敏传感器的数据采集子程序进行下位机数据获取,并将获取到的数据通过OLED屏幕实现下位机显示,同时通过NB-IoT无线传输模块上传剧上位机 Oceanconnect物联网云平台。然后判断是否有按键,如果按键按下,对阈值范围进行自动调整,并将自动采集到的温度、湿度和光照强度与设置的阈值范围进行对比,如果超过设定阈值范围,则产生有蜂鸣器产生报警信号并控制相应的电机和继电器工作,进而驱动站内空调机组、新风换气机、送/排风机、风幕机、潜污泵、电/扶梯等设备的,工作来调整环境参数。

4 系统上位机软件设计

系统的上位机软件设计使用Oceanconnect物联网云平台,帮助快速构筑物联网应用,简化海量设备管理复杂性,节省人工操作,提升管理效率。使用设备接入控制台,可以实现对产品的创建、开发、调试,设备的注册、管理、鉴权、软固件升级。在设备接入控制台,可以创建规则引擎,满足用户实现设备联动和数据转发的需求;还可以存储产品和设备数据及生成相应统计报表,方便用户监控设备的各种状态[18-20]。首先注册登录Oceanconnect云平台,在“模型定义”页面,单击“自定义模型”,配置产品的服务,新建服务,其中属性列表主要为终端模块上报数据的字段信息,分别对温度—Temperature、湿度—Humidity、光强—luminance参数进行参数定义及属性配置,如图8所示。

图8 参数配置图

定义获取下位机参数后,根据下位机硬件结构及连接方式在线开发建立物联网模型,设计下位机采集到的温度、湿度及光照参数通过NB-IoT无线传输模块上传至Oceanconnect物联网云平台,上传数据模型如图9所示。

图9 云平台上传数据模型图

定义执行器为电机-Motor和继电器-ralay来控制站内实际执行设备,可根据实际需要由上位机按钮来完成手动操作控制电机和继电器来实现实际设备的开关,以实现上位机远程实时应对处理突发状况,下达命令模型如图10所示。

图10 云平台下发命令模型图

物联网模型建立好以后,输入NB-IoT无线传输模块的唯一序列码(一块NB-IoT无线传输模块的序列码为固定序列,书写在模块上方),上下位机实现无线双工通信,无线通信成功后上位机Oceanconnect物联网云平台显示下位机节点硬件设备在线状态,如图11所示。其中,NB-IoT设备上报数据后为状态为在线,距离上次上报数据25小时内未上报数据,会刷新状态为离线状态。

图11 无线通信成功状态图

5 系统功能测试实验

为了验证系统能否实现上下位机实时通信、系统稳定性,以及在上位机Oceanconnect云平台中新建的模型中是否能够实时接收到数据,系统上位机能否实现对下位机设备的实时控制,做了如下测试。

1)测试系统上下位机能够实现实时数据通信,并能够接收到下位机传感器采集到的温度、湿度及光强数据,并能都实现数据的实时刷新,刷新速度足以显示出数据的变化过程,如图12所示。

图12 上位机接收到实时数据图

2)系统上位机能够实现对下位机真实执行设备的实时控制,如图13所示,Oceanconnect物联网云平台向模型中的“relay”(继电器)发送“ON”指令,则下位机继电器立刻打开,发送“OFF”指令,则下位机继电器立刻关闭。Oceanconnect物联网云平台向模型中的“motor”(继电器)发送“ON”指令,则下位机电机立刻转动,发送“OFF”指令,则下位机电机立刻停止转动。上位机命令发送成功后,还会在Oceanconnect物联网云平台中显示“已发送”字样。

图13 上位机向下位机发送命令测试图

3)系统设计制作完成的基于STM32的铁路运输站内NB-IoT可视化云智能BAS系统设计按照图2建立实验测试电路,光照阈值设置为200~300 Lx,湿度阈值设置为40~60/%rh,温度阈值设置为20~26 ℃,然后进行上下位机无线通信并根据实际自动调节情况进行实验测试,得到其部分参数测量结果如表1所示。

表1 NB-IoT可视化云智能BAS系统测量结果表

测试结果表明,该系统无线传输质量较高、下位机数据能够在云模型上实时显示,上下位机数据显示一致,且数据刷新速度快,能够实现数据的准确实时上报及执行器的自动控制,系统可靠性较高能够满足铁路运输站内现场的需求。

6 结束语

本文以STM32F411单片机微控制器作为控制核心,结合NB-IoT无线通信技 术、传感器技术、Oceanconnect云平台技术和自动控制技术,设计了一种基于STM32的铁路运输站内NB-IoT可视化云BAS系统。本文阐述了系统的组成原理、软硬件设计方法、云平台的搭建方法和无线组网及通信技术,并对该自动监控系统进行了实验验证。实验测试结果表明,系统能够达到预期的设计要求,可以实现在Oceanconnect云平台上实时观测到下位机节点中各传感器采集到的数据,并对下位机节点的执行器进行控制,初次之外,各节点还能够根据预设阈值范围及当前环境数据完成自动控制BAS系统中涉及的真实设备状态,进而实现对环境的自动控制,达到节约能源、远程控制、便捷管理、消除安全隐患的目的。

但该铁路运输站内NB-IoT可视化云BAS系统也存在不足的地方,比如:由于运用到Oceanconnect云平台使得系统对网络依赖度较高等问题,在今后的研究中,需要对系统的网络问题进一步改进,以远程调控系统的功能,并提高系统的数据存储能力,实现在上位机数据的长期累积分析,以达到对系统稳定性的保障。

猜你喜欢
上位温湿度阈值
非平稳声信号下的小波变换去噪方法研究
土石坝坝体失稳破坏降水阈值的确定方法
蛋鸡育雏育成舍环境控制技术
一场史无前例的乐队真人秀
档案库房温湿度记录统计及调控
基础油“上位”
变电站高压配电智能温湿度控制装置的研发与应用
档案库房温湿度调控思考
基于VC的PLC数据采集管理系统