基于STM32的路灯智能监测控制系统

2020-07-15 05:01王凯鹏姚凯学李路里田旭飞
计算机技术与发展 2020年7期
关键词:上位继电器光照

王凯鹏,姚凯学,任 莎,李路里,田旭飞

(贵州大学 计算机科学与技术学院,贵州 贵阳 550025)

0 引 言

路灯是一个城市基础设施的重要组成部分,也是人类生活中必不可少的工具。但目前国内的路灯设备基本上处于人工监控的状态,需要大量的人力资源进行维护和维修,其次,路灯往往不能在光线发生变化时及时调整开关状态,从而造成了巨大的能源浪费[1-6]。此外,由于路灯的布设环境复杂,布设地域广,在发生故障时往往难以被路灯巡检人员及时发现[7],这就造成了故障路灯难以及时得到修复,为人们的夜间出行带来了安全隐患[8]。

随着物联网的发展,越来越多的物联网技术被运用到各行各业之中[9]。路灯作为城市照明的基础,直接影响着人们的生活质量,所以,使用物联网技术设计一种智能化路灯,在智慧城市的推进过程中有着重要的作用[10-12]。为了解决目前路灯设备存在的智能化程度低、人力资源需求高、能源浪费大、检修效率低等问题,文中设计了一种基于STM32的路灯智能监测控制系统。该系统能够实现光照强度、PM2.5等环境数据的采集,根据光照强度和时间进行自动开关路灯操作,并实时监测路灯的工作状态。此外,该系统能够通过4G无线传输方式与上位机进行信息交互,实现远程数据传输及远程控制。

1 系统总体设计

路灯智能监测控制系统主要由六个部分组成,分别是MCU、环境信息采集模块、路灯控制模块、故障检测模块、无线通信模块和上位机管理模块。其中,MCU为主控制器,是系统的核心模块,环境信息采集模块负责采集各类环境数据,路灯控制模块负责控制路灯的开关,故障检测模块负责对路灯运行状态进行监测,无线通信模块负责实现上位机与下位机之间的数据通信,上位机管理模块是用户可视化的展示与控制界面。系统总体设计框图如图1所示。

图1 系统总体框图

在系统工作时,环境信息采集模块将采集到的环境信息上传到MCU中进行分析处理,然后MCU根据当前的环境参数对是否需要打开或关闭路灯进行判断,并通过路灯控制模块对路灯执行相应的控制操作。故障检测模块对路灯的工作状态进行实时监测,在监测到故障时及时向MCU发送故障信息。MCU将各模块上传的信息进行打包封装后通过无线通信模块上传到上位机端。同时,上位机也可向下位机发送控制指令使下位机完成参数的设置或执行相应的控制操作。

2 路灯监测控制系统硬件设计

系统以STM32F103ZET6单片机作为系统的MCU,外围模块包括环境信息采集模块、路灯控制模块、故障检测模块及无线通信模块。该硬件系统可直接嵌入现有路灯系统,对已有的路灯设备进行升级改造。路灯监测系统实物如图2所示。

图2 系统硬件实物图

2.1 环境参数采集模块的硬件设计

环境参数采集模块包括光照强度传感器和PM2.5传感器。光照强度传感器使用的是BH1750FVI数字光度计,PM2.5传感器使用的是SDS011激光型PM2.5传感器。由于传感器的放置位置与MCU的距离较远,普通的TTL信号容易出现衰减和干扰,为了保证数据传输的准确性及稳定性,系统中对这两种传感器进行了二次开发,即在传感器上设计了数据信号处理模块。

光照传感器的数据信号处理模块的处理器使用的是STC15W404AS,在该模块中使用单片机的串口1进行下载和仿真,串口2通过RS485总线接收STM32所发送的采集指令,并将封装好的传感器数据帧发送给数据处理模块,串口3通过IIC总线接收BH1750传感器采集的光照强度数据。

PM2.5的数据信号处理模块设计与光照类似,主要功能是通过RS485总线接收MCU的采集指令,并对传感器采集的TTL信号进行打包处理后转换为RS485信号发送给MCU。

2.2 路灯控制模块的硬件设计

路灯控制模块通过MCU的IO口控制固态继电器的通断来实现路灯的开关操作。因为目前大多数路灯使用电源为220 V的交流电,工作电流在3 A以内,所以该系统选取了控制电压为3~32 VDC,控制电流为5~20 mA,负载电压为12~480 VAC,输出电流为10 A的直流控交流固态继电器作为控制器,经测试,该固态继电器能够满足实际应用场景的要求。

由于单片机引脚输出电流的限制,直接输出电平“1”时无法正常驱动固态继电器,所以系统使用一个5 V电源引脚和一个STM32F103ZET6的PD12引脚作为固态继电器的输入引脚。当PD12引脚输出高电平时,固态继电器控制端的两个引脚都为高电平,无电流通过,继电器负载端断开,路灯供电电路形成断路,路灯处于关闭状态;反之,PD12输出低电平时,继电器负载端连通,路灯供电电路闭合,路灯开启。

2.3 故障检测模块的硬件设计

故障检测模块的主要功能为检测路灯是否能够正常打开或关闭,并在路灯出现故障时,及时将故障信息上传到上位机端,以便检修人员及时进行修复。当路灯正常点亮时,路灯供电电路的电流在2 A~3 A之间,所以该模块使用了电流互感器和电磁继电器对路灯电路中的电流是否达到了正常范围进行检测。电流互感器感应到路灯电路中的电流后,经过1 000倍的缩小后驱动电磁继电器闭合,从而使电磁继电器负载端输出一个5 V高电平,STM32的PD13引脚只需检测该电平的高低状态即可判定当前路灯的开关状态。通过系统软件中的路灯开关灯标志与实际路灯开关状态的比较,即可对路灯设备是否出现故障进行准确的判断。

2.4 数据通信模块的硬件设计

数据通信模块采用了4G无线通信方式来保证路灯设备下位机与上位机的数据通信,4G模块选取了USR-G770 DTU,MCU与4G DTU之间设计了数据通信接口电路,用以进行不同信号类型之间的转换。MCU在与4G DTU进行通信时,首先通过SP3232芯片将串口的TTL信号转换为RS232信号,然后发送给4G DTU,最后由4G DTU将数据转发到上位机端。4G DTU在工作时使用透传模式,传输遵循TCP协议。数据通信接口电路原理如图3所示。

图3 数据通信接口原理

2.5 处理器模块的硬件设计

处理器模块采用基于Cortex-M3内核的STM32F103ZET6单片机作为MCU,它的最高工作频率为72 MHz,SRAM可达64 KB,有5个串口、4个通用定时器、2个IIC、3个ADC(12位)、3个SPI、2个DMA控制器等资源[13-15]。

该模块作为路灯故障监测及智能控制系统的核心,主要用来实现任务调度、接收与传输数据、发送控制指令等操作。该模块设计时使用了一个64K的非易失性铁电随机存储器FM24CL64,该芯片可以用总线速度进行读写,用于保存用户设置的参数数据,以便在重启后能够快速自动恢复断电之前的工作状态。另外,在与传感器连接的接口电路中,使用了MAX485芯片进行TTL信号到RS485信号的转换,然后通过RS485总线与光照强度传感器和PM2.5传感器的数据信号处理模块相连接,用于发送采集指令和获取传感器返回的数据。

3 路灯监测控制系统软件设计

文中路灯智能监测控制系统软件设计主要以下位机的软件设计为主,其中包括环境参数采集程序、路灯智能控制程序、故障检测程序和数据通信程序四部分。

3.1 核心处理器程序设计

系统上电后,进行初始化操作,读取铁电存储器的特定地址,检测用户是否已经设置了起止时间、光照阈值等参数,若未检测到参数信息,则将系统默认参数写入铁电存储器的相应地址中。若系统已经设置了预设参数并处于自动工作模式时,系统等待到达采集时间的时钟信号,当到达采集时间时,MCU向光照强度传感器和PM2.5传感器发送采集指令,并将传感器返回的数据进行解析和存储,之后系统进入休眠状态,等待下一次时钟中断唤醒。为了能够得到更加准确的环境信息,系统在采集完12次信息之后,对本组数据进行平均值、最大值、最小值和总值的计算,并以光照的平均值作为本组光照数据的代表值与之前设置的光照阈值进行比较,当光照均值小于光照阈值时,系统认为光照度不足,随后将PD12引脚置为0,使继电器负载端导通,从而打开路灯,当光照均值大于光照阈值时,系统认为光照度充足,随后将PD12引脚置为1,使继电器负载端断开,从而关闭路灯。在12组数据采集完毕后,最后将计算处理后本组环境数据与路灯开关状态标志通过4G DTU上传到上位机端,然后等待下一次的时钟中断唤醒。自动控制程序流程如图4所示。

图4 自动控制程序流程

在故障检测方面,当MCU控制路灯的开关状态发生变化后或达到数据发送时间时,系统都会读取与电流互感器相连接的PD13的引脚状态,若为高电平时则代表路灯电路中存在足够的电流,路灯处于正常打开状态,反之,则路灯处于熄灭状态。用该引脚的高低电平状态与系统的设置状态相比较,即可判断出路灯是否出现了故障,若出现故障,则将故障标志置为1,随后将路灯电路状态及是否有故障标志发送到上位机端。故障检测程序流程如图5所示。

图5 故障检测程序流程

当系统处于手动工作模式时,系统工作流程与自动模式大致相同,不同点在于手动模式下系统不会根据环境数据自动打开和关闭路灯,而是一直等待上位机的指令,按照上位机所发送的指令进行开关路灯的操作。

3.2 通信协议设计

路灯智能监测控制系统中通信协议涉及到前端数据采集控制器与上位机的通信。采集的环境参数有光照强度和PM2.5两种,设置操作包括模式选择、手动开关控制、光照阈值设置、时间段设置等,读取操作包括当前传感器数据读取、工作模式读取、已设置光照阈值读取、已设置时间段读取、当前路灯实际状态(路灯开关)等。

字节的串行传送格式:1位起始位;8位数据位;1位停止位,无奇偶校验。字节存放顺序采用小端模式,即低字节存放于低位地址,低字节在前,高字节在后。

帧是传送信息的基本单元,在该系统中,每帧由帧起始符、地址域、控制域、数据长度域、数据域、帧信息校验域及帧结束符等7个域组成。帧格式如表1所示。

表1 通信协议中的帧格式

STA表示帧起始符,用作标识一帧信息的开始。AD表示地址域,标识当前收(发)设备的地址。C表示控制域,代表要求执行的操作。LEN表示长度,代表数据域中的字节总数。DATA表示数据域,代表需要传输的数据。CRC表示校验码,采用CRC-16循环冗余校验,校验内容为AD、C、LEN和DATA。END表示帧结束符,标识一帧信息的结束。

4 结束语

经试验,系统采集数据准确,路灯控制及时有效,未出现误操作现象,所以系统具有良好的稳定性。上位机光照数据查询界面如图6所示。

图6 光照强度查询界面

重点介绍了基于STM32的路灯智能监测控制系统的下位机部分,该系统以STM32F103ZET6单片机作为核心处理器,功能模块主要包括环境参数采集模块、路灯智能控制模块、故障检测模块和数据通模块四个部分,可以实时采集光照强度和PM2.5数据,并根据光照强度的强弱来自动开关路灯,此外,在路灯发生故障时能够及时向上位机端自动发送故障报警信号。系统实现了路灯的智能化控制,节省了大量的人力资源和电力资源,具有良好的实用价值。

猜你喜欢
上位继电器光照
肉种鸡的光照不应性对养殖生产的不良影响分析
总装车间继电器安装自动化的应用
隐蔽的力量
一场史无前例的乐队真人秀
关于汽车继电器的解析
继电器在电气工程自动化低压电器中的应用探讨
基础油“上位”
水禽舍的光照及其控制
蛋鸭的光照管理
电磁继电器示教板