基于ZigBee的室内空气环境监控系统设计*

2015-03-16 05:29朱恒军张玉龙刘文礼
电子技术应用 2015年2期
关键词:串口甲醛燃气

朱恒军,张玉龙,靳 展,刘文礼

(齐齐哈尔大学 通信与电子工程学院,黑龙江 齐齐哈尔161006)

0 引言

甲醛是一种致癌、致畸物质,但其作为重要的有机原料以其低廉的价格在家装建材中的应用却无处不在,而且室内装修材料中的甲醛释放期通常在3~15年左右[1]。天然气、液化气作为燃气以其经济实用、即开即用、省时方便等优点,近年来在人们的生产和生活中也得到了广泛的应用[2]。然而,人们在享受科技带来便利的同时,也承担着潜在的难以估量的风险。

近年来由室内甲醛含量超标和天然气、液化气泄露爆炸引起的人身伤害案例枚不胜举,甲醛超标和燃气泄露俨然成为危害人们生命财产安全的隐形杀手。因此,针对室内空气环境安全的监控变得愈发重要,相应研究也在各研究机构逐渐展开[3-5]。ZigBee技术作为短距离无线通信技术[6-7],以其低成本、低功耗、自组网等优点在工业监控领域的应用越来越广,尤其伴随着ZigBee 2007协议的逐渐成熟,其在智能家居和商业楼宇自动化方面的应用前景越来越大[8-10]。本文基于此提出并设计了一套室内空气环境监测控制系统,用以检测燃气泄露和甲醛浓度超标等安全隐患,旨在保障人民人身及财产安全。

1 系统概述

系统设计主要由中控中心、终端传感器节点及控制部分、显示输出及声光报警部分组成。系统整体构架如图1所示。

图1 系统组成框图

附载有燃气传感器和甲醛传感器的端节点在采集到有燃气泄露或甲醛超标的情况下,通过本节点的CC2530控制器控制燃气阀门的关闭、排风扇的开启,同时将燃气泄露或甲醛超标这一事件以自定义的帧格式通过Z-Stack协议栈无线发送给协调器端的CC2530;然后其通过串口发送给STM32,STM32经过分析帧格式做出相应处理,通过LCD液晶显示燃气泄露、甲醛超标等信息并产生声光报警。另外,协调器端可以通过按键向端节点广播发送数据或控制信息,像遥控器一样控制天然气阀门及排风扇的开启和关闭。

2 硬件设计

2.1 控制系统模块硬件设计

系统中控中心采用STM32F103C8T6为主控制器,STM32F103增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为 72 MHz,具有丰富的片上资源和多种标准通信I/O接口。

作为协调器端的主控制器,STM32F103C8T6主要担负着协调控制整个系统的职责,同时驱动蜂鸣器和液晶显示。STM32F103C8T6与ZigBee无线传感网络通过PA9与PA10引脚与作为协调器的CC2530芯片的P0_1和P0_2端口相连,在实际编程操作时,需通过配置相应函数及寄存器设置PA9与PA10为串口模式。LCD液晶显示端口采用STM32的PB组IO驱动。

2.2 端节点模块硬件设计

系统端节点和协调器端都采用CC2530F256芯片作为控制器,其是用于 2.4 GHz IEEE 802.15.4、ZigBee的一个真正的片上系统(SoC)解决方案[11]。整合了全集成的高效射频收发机及业界标准的增强型8051微控制器、8 KB的RAM和其他强大的支持功能和外设,具有18个中断源、两个Uart串口收发器,内置ADC并支持7到12位的分辨率,能够以非常低的材料成本建立强大的网络节点。CC2530的最小系统如图2所示。

2.3 传感器模块设计

端节点模块的设计采用MQ-2气敏传感器、MQ-138甲醛传感器采集数据,MQ系列传感器以其高灵敏度特性、价格低廉及驱动电路简单等特点广泛适用于家庭和工厂的气体监测。其驱动电路如图3所示。

如图所示,MQ-X传感器可以直接输出模拟信号,经过LM393双电压比较器之后输出数字信号,可以直接与CC2530芯片I/O引脚相连,通过调节电位器R调节传感器灵敏度,通过检测端口电平实现气体预警检测。如需检测较高精度的浓度信息,可以使用模拟输出,通过配置CC2530的APCCFG寄存器配置P0口为模拟输入口,同时配置ADCCON1、ADCCON2和ADCCON3相应寄存器,便可以实现高达12位分辨率的高精度A/D转换。本设计中,端节点的传感器检测信号采用DOUT与CC2530的P2_0端口相连。

图2 CC2530的最小系统

图3 MQ-X传感器驱动电路

3 系统软件设计

ZigBee芯片CC2530的开发采用软件IAR Embedded Workbench IDE,系统设计基于TI ZStack-CC2530-2.5.1a版本协议栈,综合考量室内环境的空间布局,系统采用星型网络拓扑结构来构建WSN(Wireless Sensor Networks)网络[12]。

3.1 Z-Stack协议栈开发概述

Z-Stack协议栈利用操作系统的思想来构建,采用事件轮询机制,当各层初始化之后,系统进入低功耗模式。当事件发生时唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。协议栈程序流程图如图4所示。

图4 Z-Stack协议栈程序流程图

Z-Stack协议栈中有 3个变量至关重要:(1)taskCnt变量,保存了任务的总个数;(2)taskEvent指针变量,指向事件表的首地址;(3)taskArr数组变量,该数组的每一项都是一个函数指针,指向事件处理函数。在针对Z-stack协议栈进行开发时,要理解协议栈中每个文件夹的功能,同时需要对3个变量的意义有清楚的认知,学会调用协议栈提供的一些函数接口,能够在协议栈相应文件中的合适位置添加或改动程序。

针对Z-Stack协议栈的开发步骤是:(1)在osalInitTasks()函数中添加任务号;(2)将事件处理函数指针添加到pTaskEventHandlerFn tasksArr[]的最后,因为 tasksEvents和tasksArr[]里的顺序是一一对应的,tasksArr[]中的第 i个事件处理函数对应于tasksEvents中的第i个任务的事件;(3)根据系统设计需要编写事件处理函数,处理硬件设置与事件逻辑。

节点上电以后,协议栈通过HalDriverInit()和osal_init_system()等函数对软硬件初始化,然后进入函数osal_start_system()中,程序不会再返回。在此函数中检测是否有事件发生,并在 SampleApp_ProcessEvent(uint8 task_id,uint16 events)函数中处理事件。

本设计按实际需要在协议栈中修改的函数主要有:(1)MT层串口初始化函数 MT_UartInit(),在该函数中自定义了串口接受数据协议、串口数据控制方式和波特率,通过函数 osal_set_event(SampleApp_TaskID,UART_RX_CB_EVT)设置了触发事件,并把串口回调函数指针传递给uartConfig.callBackFunc调用;(2)任务处理函数SampleApp_ProcessEvent(uint8 task_id,uint16 events),通过不同事件的标志,做出相应的逻辑处理。(3)自定义函数Sample-App_SPI_SendData(uint8*buf,uint8 len),处理来自 STM32的串口信息,广播发送信息至终端,使终端做出相应控制。

3.2 终端节点软件设计

终端节点的主要功能有:(1)加入监控网络;(2)采集传感器数据将数据传送至协调器;(3)接收来自协调器的控制指令,完成相应任务。本设计中终端节点全部设置为路由,当路由不再转发信息时将自动退化为终端节点。终端节点的软件设计流程如图5所示。

图5 终端节点软件设计流程

端节点作为一个独立的系统,通过CC2530可以实现相应控制,包括通过控制机械手臂关闭燃气阀门和排风扇的开关等,无需协调器的干预。

3.3 协调器端软件设计

协调器的主要功能是:(1)组建网络;(2)向串口发送或从串口接收数据。(3)广播消息。协调器端软件设计流程如图6所示。

3.4 程序下载配置与验证

打开IAR Embedded Workbench IDE可以发现,在workspace功能框上有一个下拉三角按钮,点开可以看到有DemoEB、Coordinator、RouterEB 和EndDeviceEB等选项,每一项对应一种设备类型属性,通过选择不同的设备类型选项来编译下载程序到CC2530芯片中,这样就锁定了该片芯片的设备类型。

在相应的设备类型下通过option选项里设置COORDINATOR=0或者1,然后在程序内部通过在相应程序段或数据前使用#ifdefZDO_COORDINATOR或者#ifndef ZDO_COORDINATOR宏定义来使能不同设备类型的处理函数。

配置好option对话框中C/C++compiler菜单中的preprocessor中的Defined sysmbol后,点击菜单栏中的make图标 ,进行编译,之后使用SmartRF04EB下载器连接CC2530,点击快捷图标Download and Debug 进行下载。之后把终端节点的装置连接好,并在厨房内进行了燃气传感器的模拟测试,用刨花板、胶合板制作了简易盒子对甲醛传感器进行验证测试。

图6 协调器端软件设计流程

4 结束语

本文研究的是室内空气环境的安全监测系统设计,可以有效预防燃气泄露和甲醛超标造成的人身财产损害,具有一定的推广价值,经济潜力巨大。目前系统通过若干结点实现了对室内空气中可能出现的主要危害进行了监测,并没有充分发挥ZigBee技术的强大功能,还有更多值得被监测的信息需要被监测,需要更多的传感器结点加入进来。下一步将对传感器结点的数量和协调器的处理算法进行扩展和优化,实现低功耗、全方位、安全高效的目标。

[1]韩愈.室内甲醛污染与防治对策探究.科技信息[J].科技信息,2014(7):262-263.

[2]贾承造,张永峰,赵霞.中国天然气工业发展前景与挑战[J].天然气工业,2014,34(2):1-11.

[3]李成祥.智能型室内空气质量检测与控制系统[D].北京:北京交通大学,2011.

[4]谢跃东.基于MSP430的室内甲醛检测仪的设计[D].太原:太原理工大学,2012.

[5]方熙坤.室内空气质量监测的探讨[J].资源节约与环保,2013(8):166-167.

[6]闫沫.ZigBee协议栈的分析与设计[D].厦门:厦门大学,2007.

[7]Hu Xiangdong,Xu Hongru,Han Kaimin.Design and implementation of secure nodes in the based-Internet-of-Things intelligent household[J].Journal of Computer and Communications,2014,2(7):1-7.

[8]蔡利婷,陈平华,罗彬,等.基于 CC2530的 ZigBee数据采集系统设计[J].计算机技术与发展,2012,22(11):197-200.

[9]纪丽猛.基于ZigBee技术的无线数据采集系统研究与设计[D].秦皇岛:燕山大学,2013.

[10]王娟.基于ZigBee无线传感网络的智能家居系统设计与实现[D].南昌:东华理工大学,2013.

[11]王小强,欧阳俊,黄宁淋.ZigBee无线传感器网络设计与实现[M].北京:化学工业出版社,2012:180-212.

[12]黄真.基于ZStack的 WSN节点中断程序设计[J].单片机与嵌入式系统应用,2011(7):79-81.

猜你喜欢
串口甲醛燃气
教材《燃气工程施工》于2022年1月出版
近期实施的燃气国家标准
探讨燃气工程的造价控制及跟踪审计
微生物降解甲醛的研究概述
浅谈AB PLC串口跟RFID传感器的通讯应用
燃气,让千家万户用得上、用得起、用得安全——解读《河北省燃气管理条例》
如何确定“甲醛”临界量
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信