姜阔胜,王敏敏,卢振连,章 力
(1.安徽理工大学 机械工程学院,安徽 淮南 232001;2.陕汽淮南专用汽车有限公司博士后工作站,安徽 淮南 232001)
建设低碳校园,空调的远程集控成为必须[1]。当前,教室和实验室对于空调的控制大多数仍然是通过普通的遥控器,仅仅能够实现近距离控制,智能化程度较低,尤其是不能杜绝因空教室空调运行或者空调温度设置过高而造成用电浪费的现象[2]。因此如何实现对学校教室、实验室多分布空调的集成远程控制成为当前亟待解决的问题。
分析同类的校园空调控制系统[3],可看出空调远程集控系统的主要问题是通信问题[4],采用物联网卡的传输成本高[5]、采用大功率ZigBee节点[6]等通信方式(大功率ZigBee节点最高可以实现3 km长距离通信)名为节能减排,实则增加成本,并且测控系统自身功耗并不低[7]。因此,本文以建设“低碳”校园为目标,依托校园实验室、教室空闲网口,利用现有的校园局域网实现数据传输,不再铺设专用通信通道,构建了校园空调测控系统,有效解决了“信息孤岛”的问题。系统使用者可以随时随地在校园局域网下通过浏览器访问网页来对校园内的空调进行相关控制。本文方法也为其他外设的集控提供了借鉴的方法和思路。
本文的校园空调测控系统的总体设计框架如图1所示,主要由自主研发的物联网下位机和局域网平台上位机组成。
图1 系统总体框架
物联网模块下位机以单个教室或实验室为单位进行部署,分为嵌入式模块和中转站模块。嵌入式模块安装在空调内部,与空调面板相连接,以获得或设置当前空调温度,由串口转2.4G无线模块和STM32主控组成。中转站模块由以太网转串口模块、串口转2.4G无线模块和STM32主控三个部分组成,一个中转站可以匹配多个嵌入式系统模块,以解决“一室多空调”的监测问题。
局域网平台上位机由EMQ消息服务器、Node.js后端服务器和Vue前端服务器组成。管理员在局域网下用任意设备浏览器访问网页,登录后,在网页界面可以查看到空调的开关状态和当前的室内温度。管理员可以通过点击网页上的开关按钮去关闭或开启指定教室的指定空调,也可以在每日的指定时间关闭所有教室的空调,从而解决校园空调在使用上造成的能源浪费问题。
当管理员通过网页发送关闭指定空调的命令时,数据通过搭建的局域网平台以MQTT协议的形式发送给以太网转串口模块(事先让以太网转串口模块与以太网端口相连),继而通过串口传送到中转站模块的STM32主控当中,再通过串口转2.4G无线模块和空调内部嵌入式模块的串口转2.4G无线模块相连接,将数据再次传到嵌入式模块的STM32主控当中,MCU控制空调主控面板关闭空调。
下位机:每一个教室或实验室内的子单元。该子单元由一个或多个空调嵌入式模块和一个中转站模块组成。
空调嵌入式模块硬件由STM32主控模块、2.4G无线模块和空调面板组成;中转站模块由太网转串口模块、2.4G无线模块和STM32主控模块组成。其中太网转串口模块负责局域网平台和底层物联网模块的数据交互,2.4G无线模块负责中转站模块和嵌入式模块之间的数据交互,STM32模块负责数据的分析及处理。
嵌入式模块STM32的USART1与2.4G无线模块相连接,PE8通过继电器与空调面板的按键相连接,PA5与空调温度传感器的信号端相连接,PE9通过RC滤波电路和开关状态指示灯相连接。
当嵌入式模块中的串口转2.4G无线模块接收到中转站模块中的串口转2.4G无线模块发送来的空调开关命令时,MCU通过USART1接收到相关数据之后对数据进行解析处理,判断是对空调进行开启还是关闭,再操作相关I/O口开启或者关闭空调。
MCU每隔1 min通过相关I/O口对空调状态和室内温度数据进行采集,并将采集到的数据转发给USART1,串口转2.4G无线模块再将数据通过无线传输的方式发送给相对应从中转站模块的串口转2.4G无线模块。
嵌入式模块图如图2所示。
图2 嵌入式系统模块图
中转站模块STM32的USART1与以太网转串口模块相连,采用MQTT协议进行通信,USART3与串口转2.4G无线模块相连接。
当中转站模块的以太网转串口模块收到局域网平台传输过来的对空调的操作命令时,MCU通过USART1接收到相关数据之后对数据进行解析,判断是对哪台空调进行开关操作,并将关闭或开启空调的命令发送给USART3,串口转2.4G无线模块再将数据通过无线传输的方式发送给相对应嵌入式模块的串口转2.4G无线模块。
当中转站模块的串口转2.4G无线模块接收到嵌入式模块的串口转2.4G无线模块发送来的空调相关数据时,MCU对数据进行解析处理,再将处理后的数据发送给USART3,与USART3相连的以太网转串口模块再将数据上传到局域网平台。
中转站模块如图3所示。
图3 中转站模块图
局域网平台上位机主要由MQTT Broker、Node.js后端服务器和Vue前端服务器构成。其中:MQTT Broker采用的是EMQ消息服务器,用于实现基于MQTT协议的订阅与发布服务;Node.js后端服务器用于订阅空调状态相关信息;Vue前端服务器用于展示相关用户界面。系统工作时,主模块向EMQ消息服务器订阅主题为“air_status”的服务。
EMQ是一个百万级分布式开源物联网MQTT消息服务器,其基于高并发的Erlang/OTP语言平台而设计,支持百万级连接和分布式集群,其完整支持MQTT V3.1/V3.1.1协议规范,广泛应用于物联网、移动推送、移动即时消息、智能硬件、车联网、智能家居等应用场景中[8]。
本系统采用Emqx-Windows-v4.1.2版本的EMQ服务器,通过命令行启动服务器后,局域网内可以通过浏览器访问图形化管理界面,如图4所示。该图形化管理界面实现基本的连接、会话、主题、订阅等模块的监控功能。中转站模块接入以太网口后,将自动作为客户端连接到EMQ消息服务器上,并自动订阅相应主题,通过控制台可以对每个教室的中转站模块进行管理。
图4 控制台图片
Web后端服务器采用的编程语言是Node.js。Node.js是基于Chrome的V8引擎执行的事件驱动I/O服务端的JavaScript环境,相比Tomcat等成熟的服务器容器,Node.js设计出的服务器容器更加轻量、快捷和稳定[9]。
Vue是一个构建用户界面的框架,该框架是一个轻量级的MVVM(Model-View-View Model),其原理就是数据的双向绑定,数据驱动加组件化的前端开发。Vue.js使用基于HTML的模板语法,通过简单的API就能实现响应式的数据绑定和组合的视图组件[10]。
管理员在局域网下通过浏览器访问该平台,可以查看当前所有在线的空调的状态以及校园教室或实验室的温度,并且可以对每台空调进行开关控制。
系统主要功能分为检测空调和环境温度状态及控制空调开关状态。测试时,对学校多个教室的6台空调进行控制。将局域网平台服务器布置在学校局域网下的一台主机上,在多个教室部署硬件设备。在每个教室的以太网端口接入一个中转站模块,再对教室的两台空调进行改造,接上嵌入式模块,分别完成系统的两大功能测试。
测试开始时,空调处于关闭状态,登录EMQ消息服务器网页后台,查看3个教室的主模块是否在线,是否成功订阅相关主题。EMQ控制台测试界面如图5所示。
图5 控制台测试界面
测试系统监测功能时候,登录Vue前端网页界面,查看网页上当前空调状态与教室实际温度是否和教室实际情况一致。接着打开空调、调节温度,观察网页页面数据是否随实际情况发生改变。测试系统控制功能时,在Vue前端网页界面对空调的开关进行控制,在网页打开或关闭空调,观察空调状态是否随之发生变化。Vue网页前端测试界面如图6所示。
图6 网页前端测试界面
本系统经过多次测试改进,已经可以实现局域网下监控多个教室多台空调设备的功能,且系统时效性高,稳定性强,可以满足对校园内空调的同一控制,为校园空调低碳节能减排提供了一套解决方案。本文方法也为其他外设的集控提供了借鉴的方法和思路。