高校教学楼智能控制系统
扫描二维码
随时随地手机看文章
引 言
大学教育在不断发展,相应大学教育的支出也逐年增加, 尤其体现在教室和实验室等公共区域支出等方面,而在这些区域中,照明以及纳凉设施费电量尤为突出。在这些公共区域会经常出现人走灯未关、人空设备未停的现象,多数高校也采用人工管理的方式,由于管理人员并不能及时了解每个教室的实时情况,造成了能源消耗,不符合现代社会绿色节能理念。
随着物联网的发展,人们对无人监管区域有了更好的掌控方法,将物联网和大学结合起来,在大学布置一个物联网型、智能的调控公共区域。本文系统基于 MQTT(Message Queuing Telemetry Transport,MQTT)发布 / 订阅机制具有实现教室信息监控和教室设备控制的功能,MQTT 协议是在计算能力不高、低宽带、网络不可靠的传感器和单片机上实现信息传递的协议,由于其具有开销小、代码开源、可简化开发流程、便于后期维护等优点,在信息高效传输的情况下能够做到减少学校布置开支 [1]。
1 系统总体设计方案
基于 MQTT 协议及时信息传递功能的智能型教学楼实现以下三个功能。系统总体框图如图 1 所示。
(1) 通过 ESP32控制各个传感器读取教室内有用信息, 并发送至服务端,同时接收服务端发来的控制信息,调控教室内设备的状态 ;
(2) 服务端架设 MQTT服务功能,作为信息“中转站”,发送来自教室的信息到各客户端,接收来自管理员的控制信息发送至教室 ;
(3) 普通客户端显示来自教室的实时信息,管理员端除显示信息还可发送控制信息至教室。
2 系统部分软硬件设计
教室部分分为主控芯片、温度传感器、光照强度传感器、红外对射器四部分。服务器以及 PC 端(包括管理员)均为软件设计,搭建 MQTT 协议通道以及观察记录界面 [2]。
2.1 教室部分主控芯片的选择
充分考虑教室过多,成本随教室的增多而增多等问题, 以及考虑到网络环境并非理想网络,同时又要连接三种传感器,所以选择使用 ESP32boards 作为主控芯片,ESP32 可作为独立系统运行应用程序或主机 MCU 的从设备,通过 SPI/ SDIO 或 I2C/UART 接口提供 WiFi 和蓝牙功能,同时其包括精细分辨时钟门控、省电模式和动态电压调整等功能,工作温度在 -40 ~ 125 ℃,能够囊括绝大部分中国地区温度,减少因为温度而引起的主控芯片不稳定、失控现象 [3-5]。
温 度 模 块 选 择 使 用 DS18b20, 该 模 块 测 温 范 围为 -55 ~ 125 ℃,误差为 ±1 ℃,输出为数字信号,体积小、抗干扰能力强、高精度等特点都是测温的最佳选择。光照强度传感器使用 BH1750,其内置数模转换器,可以直接输出一个数字信号,使用 I2C 接口,测量范围为 1 ~ 65 535 lx。
2.2 MQTT协议
MQTT 消息队列遥测传输协议是 IBM 公司采用 TCP/IP进行的即时通信协议,此协议可以运行在所有平台,并且在单片机这样不可靠的网络中也能高效地传输信息。它通过发布 / 订阅机制实现一对多的消息传输,减少了信息传递的开销,消息头部采用 2 B,协议交换最小化,降低了信息流量 [6-7]。MQTT 消息头见表 1 所列。
同时,对于一些较长信息,MQTT 也可实现变长报头。
MQTT 发布 / 订阅机制实现消息一对多的传输中,服务器不需要对每个客户端都开通一个 TCP 连接,其通过消息代理机制中的主题作为通信中介。MQTT 协议就像一个有多入口的箱子,放东西的人可以往箱子里放进东西,多个取东西的人也都有入口取东西,取东西和放东西的人,以及取东西和取东西的人之间并不会妨碍到对方。
2.3 软硬件实现通信
在教学楼布置温湿度传感器、光照强度传感器、红外对射传感器等,将 ESP32board 作为每间教室的信息处理中心, 温湿度传感器感应室内温度湿度,以此作为教室内部控温设备开关的依据,每个门口放置两个红外对射传感器,判断教室门口进出的人数。根据教室内部的人数和光照强度传感器读到的数据判断室内光照情况,即判断白天或夜晚,是否阴天光强不足。当判断白天光照充足时,教室内部电灯不开, 当夜晚或光照不足,且教室内部人数多于一个人时,自动打开灯,当人走空时,关闭灯光。收集传感器信息、教室人数信息和设备状态信息,通过 ESP32 模块使用 MQTT 协议发送至总服务器,为实现信息校内外的共享,本文将服务器位置设置在阿里云外网 [8]。
在 PC 端连接阿里云 MQTT 服务,订阅查看教室信息, 服务器会定时将数据发送至 PC 端。在教学楼管理员 PC 端, 多增加订阅控制教室设备消息,发送控制消息至服务器,服务器将控制消息发送至教室 ESP32board,再由 ESP32board 控制教室设备开关 [9]。系统信息传递示意如图 2 所示。
传感器块、服务器块、PC 端功能明确,能够降低程序的耦合性,每个模块注重自己功能的实现,消息通过 MQTT 协议传递在各个部分之间。
3 具体实现过程
3.1 教室部分
中心处理板使用 ESP32 实现信息的收集和发送,ESP32 板有多种固件选择,既可以采用 Arduino 式编程,也可采用MicroPython 编程,板子本身提供 3.3 V 和 5 V 两种电压,为不同传感器提供实现条件。官方提供多种传感器库,在开源社区也有 MQTT 在 ESP32 上实现的库,方便制作者开发。
教室端收集信息,每隔一定时间将数据发送到服务器, 多次测试,调整发送格式,方便客户端接受。同时订阅由管理员发来的控制信息,读取信息,若为电灯关闭信号,则关闭教室内电灯。同理,读取其他设备控制信号,做出相应的改变。
3.2 服务器部分
租用阿里云服务器搭建 MQTT 环境,将服务器作为一个消息中介,教室模块以及 PC 端模块都可连接到服务器发布 / 订阅消息。在 Windows 中通过网页形式访问服务器 MQTT 连接发送情况。Windows 中访问页面形式如图 3 所示。
3.3 PC部分
实际采用方案前,先通过第三方软件连接服务器进行测试,包括 IP、端口号、MQTT 账户、密码、订阅机制、发布机制。同时测试服务器端发送的数据和 PC 测试软件收到的数据是否一致,发送时间是否有延迟,多个连接是否会造成拥挤堵塞、有信息收不到或服务器有信息发送不出去的情况。
通过软件测试,调整教室部分发送数据的格式,便于读取接收。通信测试如图 4 所示。
图 4 通信测试
通过测试后,做一个 PC 自己可用的客户端,专门用于接收数据和输出数据,便于师生查看。若 PC 为管理员,再发布控制消息,最终实现远程控制。PC 端显示界面如图 5 所示。
图 5 PC 端显示界面
4 结 语
MQTT 协议应用于类似单片机这样通信功能不强,但又需要远程显示、收集信息的场景。同时,MQTT 为了应对不同场景的应用,也拥有三种不同形式的通信质量服务,可以根据自己单片机和周边网络环境选择使用通信质量服务类型,不仅增加了服务质量,还有效减少了通信流量。师生可以在第一时间了解教室的使用情况,管理员也可以远程管理教室,有助于改善资源浪费的情况。