基于ZigBee的校园宿舍环境安全监测系统
2019-09-20
(上海工程技术大学 电子电气工程学院,上海 201620)
2008年11月14日上海商学院、2011年11月03日清华大学的宿舍失火以及2015年8月12日天津仓库爆炸等事件造成了严重的生命伤害和的财产损失。为提高安全管理水平,有效监测环境安全,避免火灾发生,本文研发一款基于ZigBee的环境安全监测系统。该系统可对人群、物品比较集中,容易引发危险的宿舍以及仓库等类似的空间进行温度、湿度、可燃性气体浓度、用电功率等一系列监测。
该系统采用多种传感器模块来采集监测地点的环境数据,利用单片机控制器将采集到的环境数据进行处理与整合,并通过ZigBee传输协议将数据发送给上位机,上位机的“智能监控”客户端基于Visual Basic 6.0 编写,其采用的数据库技术能直观、方便地对环境数据进行管理与分析。
该系统经实验可以对预期的监测地点的温度、湿度、可燃性气体浓度和用电功率等参数进行监测,若环境处在危险情况下,该系统可报警通知管理人员且具有自动排除危险的功能。
1 系统工作原理及硬件结构
该系统由三大部分组成:下位机系统、上位机系统和通信转接板,系统总体结构框图如图1所示。下位机系统主要负责检测环境数据和OLED液晶显示,并通过ZigBee无线传输技术经由通信转接板与上位机通信。上位机系统主要负责接收下位机系统传输的数据、数据分析以及环境监测数据的远程显示和图表展示。该系统对监测地点分有人管理和无人管理两种情况进行不同的报警模式。在有人管理的模式下仅触发语音报警,不触发宿管处的蜂鸣器报警;而在无人管理的情况下语音和蜂鸣器两种报警模式同时触发,并且会以短信形式通知管理人员。系统在必要时还可以实现对危险因素的自动排除功能,例如自动切断回路的总电源。
图1 监控系统总体设计框图
1.1 硬件主控制器
在下位机主控芯片的选型上,本系统采用了STC(宏晶科技)公司的1T增强系列8051单片机STC12LE5A60S2作为主控芯片,速度较传统8051快8~12倍,但完全兼容8051传统单片机的汇编指令代码;采用了新型的哈佛结构,将输入的程序和存储的数据分开来增加数据的吞吐和运行的效率,使得数据吞吐率较以前增加了一倍左右。STC12LE5A60S2还具有足够大的片上内存,包括FLASHROM(60 KB)、RAM(1280 B)[1],足够容纳供OLED显示用的常用字库以及图片取模字库;还拥有充足的I/O口引脚,能够对各种环境监测传感器进行扩展连接。
在自主设计硬件PCB板时为其预留了较多的I/O接口,不仅很大程度上展现出了STC12LE5A60S2的多I/O口综合控制能力,同时还为使用者进行二次研发提供了很大的拓展空间。
1.2 ZigBee网络
系统采用ZigBee技术,其是一种近距离、低功耗、低数据速率的双向无线通信技术,主要基于IEEE 802.15.4标准,支持最高3300 B/s的数据传输速率,使用2.4 GHz的频段进行通信,可以快速组建局域网络。
该系统使用了“深联创新”所研发的无线ZigBee模块DL-20,其无需学习复杂的Zigbee协议栈[2],也无需ZigBee协调器和路由节点,终端节点就可以完成组网和转发。其采用CC2530作为系统芯片,集成了工业级的增强型8051控制器,在提高性能的基础上,也满足了以ZigBee为基础的2.4 GHz ISM波段[3]。该模块功率约为100 mW,PCB板内置天线,有效传输距离在无干扰情况下可达约200 m。
1.3 传感器模块
环境数据的采样和存储在环境监测过程中是非常重要的部分。该系统可对可燃性气体、温度、湿度、用电功率和有/无人状态进行实时采集。DHT22温湿度传感器负责温度和湿度的检测、HC-SR501红外传感器负责对有/无人状态的检测,二者通过单片机普通I/O口传递环境参数。MQ-2烟雾传感器负责可燃性气体浓度的检测,HBC05PS3.3霍尔传感器负责用电功率的检测,二者通过单片机A/D转换口传递环境参数。
系统设定单片机定时器每10 s进入1次中断,并发出轮询事件,周期性地更新各个传感器所采集的实时环境数据,由此完成整个环境数据采集和处理任务。
1.4 报警子系统
报警子系统能播报环境异常语音广播。语音播报电路采用语音解码芯片QJ004-16S,其集成了MP3、WMV的硬解码能力,其原理图如图2所示。
图2 解码芯片与TF卡相连原理图
该语音解码芯片与TF卡直接相连接,并通过SPI串口协议传输,获取到预置在SD卡中的语音报警音频文件,解码后的数据流会通过LM4890音频功放芯片进行功率放大,通过外接扬声器播放输出[4],电路原理图如图3所示。
图3 功放芯片外围电路原理图
其中DACL和DACR分别为经过QJ004-16S音频解码后的左声道数据流和右声道数据流,引脚8输出的ROUT与引脚5输出的LOUT即可外接扬声器。报警时硬件实物图如图4所示。
图4 下位机硬件报警实物图
该报警子系统能够智能识别导致当前环境异常的原因,自选择储存在SD卡中相应的音频文件进行播放,提升系统的智能性。相关代码如下。
//将各报警标志位移位后或运算,赋给一个报警变量
tempmode=(u8)((Temp_Mode<<3)|(Humi_Mode<<2)|
(Gas_Mode<<1)|Pow_Mode);
switch(tempmode){
case 0x08:
//语音播报子程序,播放温度异常语音
Music_Pointplay(Temp_Alarm); break;
case 0x04:
//语音播报子程序,播放温度异常语音
关羽的忠义一直以来被人们传诵。他去世以后,老百姓就在各地建庙供奉,称他为“商界保护神”“医药神”“战神”。历代朝廷也都对他进行褒封,如“关圣帝君”“武圣”等,与“文圣”的孔子齐名。千年以来,关帝庙香火不断,表现了人们对关羽的敬仰和崇拜之情。
Music_Pointplay(Humi_Alarm); break;
case 0x02:
//检测到可燃性气体超过20秒自动断电
if(Gas_Offpow_Delay==2){
Music_Pointplay(Gas_Offpower_Alarm);
Power_Off();//切断回路电源子程序
Gas_Offpow_Delay=0;//时间标志位清零
}else Music_Pointplay(Gas_Alarm);
break;
case 0x01:
//检测到功率异常超过60秒自动断电
if(Cur_Offpow_Delay==6){
Music_Pointplay(Cur_Offpower_Alarm);
Power_Off();//切断回路电源子程序
Cur_Offpow_Delay=0;//时间标志位清零
}else Music_Pointplay(Power_Alarm); break;
default://若存在多个环境异常
Mul_Mode();//多异常处理子程序
//播报多异常语音
Music_Pointplay(Mul_Alarm);
}
2 软件部分设计
本系统的软件部分由下位机STC单片机程序、上位机VB6.0客户端程序和数据库存储3部分组成。
2.1 下位机STC单片机程序
该系统使用Keil C软件对STC单片机进行开发。Keil C51是一款软件开发系统,其为51系列并兼容单片机C语言,由美国Keil Software公司出品[5]。
程序设计思路如下:当系统上电后,首先检查硬件系统的完整性和对相关事件进行初始化,当与上位机ZigBee网络建立成功后,开始采集并展示环境数据,保证系统有条不紊地运行。若监测过程中遇到环境危险的情况,则调用相应的事件处理函数并进行报警。过程中时刻保持与楼层ZigBee管理器的通信畅通。
位于各个寝室的ZigBee终端将采集到的室内环境数据周期性地发送至每层的楼层ZigBee管理器,楼层ZigBee管理器按楼层由高向低汇总至1楼ZigBee管理器,1楼ZigBee管理器负责将所有寝室的环境数据传输给上位机。ZigBee数据通信协议如表1所示。
表1 数据通信协议
注:校验位根据程序算法得出
2.2 上位机VB6.0客户端程序
本系统上位机客户端基于Visual Basic 6.0 平台建立,其主要用于将各项环境数据通过图形化界面展示,方便宿管及时了解各个寝室的环境问题。其工作流程图如图5所示。
图5 “智能监控”工作流程图
上位机监控软件通过MSComm串口控件的comEvReceive事件接收到转接板发送的环境数据后根据通信协议对数据进行校验和提取[6],若校验通过则将各项环境数据展示在客户端界面上并存入数据库。若检测到环境数据异常,则会弹出如图6所示的报警提示框并驱动USB转接板上的蜂鸣器来提醒宿管。
图6 客户端报警界面
2.3 MySQL数据库存储
MySQL数据库技术的引用方便了对环境数据的存储和读取。上位机VB客户端通过引用Microsoft Activex Data Objects 2.0 Library具备连接到MySQL数据库并对数据库内存储的环境数据进行读取和写入的能力。数据库共有6个字段,分别是时间(TIME)、寝室号(DORM)、温度(TEMPERATURE)、湿度(HUMID)、是否有人状态(PEOPLE)以及异常标志位(STATUS)。当每次上位机客户端获取到环境数据并解码完成后,无论数据是否在安全阈值内,都会在第一时间将当前的环境数据以ADODB.Recordset.AddNew语句存入MySQL数据库[7]。具体数据储存如图7所示。
图7 环境历史数据
3 基于ZigBee的校园宿舍环境安全监测系统的应用
上述环境安全监测系统在上海松江大学城某宿舍区以及上海松江大学城某校实训楼两个地点分别进行了实验,分别于2017年9月23日和2017年9月29日对上述两个区域做了环境监测的测试工作。
在测试中,系统能够准确地对环境参数进行采集,并无误地将收集到的数据存入数据库。在宿舍楼区,下位机硬件系统安装在一楼和二楼各宿舍的天花板上,各楼层的ZigBee终端信号能够顺利穿过水泥墙和门板传输到各楼层的ZigBee管理器,宿管处的上位机ZigBee能顺利地接收到各个寝室的环境数据,宿管能够非常及时地通过电脑上的“智能监控”客户端了解当前寝室的有/无人状态和温湿度等情况,使得管理效率提高;在实训楼的测试中,将下位机硬件平台安置在一实验室中,采用了瓦斯模拟了可燃性气体,该系统能够在瓦斯浓度较低的情况下及时报警并主动切断电源回路,以防用电器电火花引爆可燃性气体,同时无延时地通知了位于办公室的实验室管理员前来处理,防止危害继续扩大。
通过上述测试,该监控系统能够有效地检测到环境异常并通过报警功能及时通知相关人员进行处理,相关电路设计和传感器选型能够胜任环境安全监测的需求。
4 结束语
基于ZigBee的校园宿舍环境安全监测系统是一种先进的环境监测系统,在同类产品中具有高智能性、成本低、低功耗、低误报警率、报警及时、数据准确等特点,其监测地点不仅限于宿舍,可以运用在任何对环境监测具有高安全要求的地方,如仓库等。本监控系统操作简单,用户几乎不需要专业知识即可使用。
环境监测是一项长期工程,该系统只考虑了部分的指标,在后期的改造和再设计过程中,可考虑加入更多因素,比如大气压强、PM2.5监测等,为用户带来更加全面的环境监测。