kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> 基于无线传感器技术的实验室监控系统设计
基于无线传感器技术的实验室监控系统设计
2015年微型机与应用第3期
黄小天,吴晓红,吴小强,卿粼波
(四川大学 电子信息学院 图像信息研究所,四川 成都 610064)
摘要:设计了一种基于ZigBee无线传感器技术与嵌入式Linux平台的实验室监控系统。系统通过多种传感器获取实验室的环境信息,并将信息通过ZigBee构建的无线网络发送到嵌入式Linux平台。嵌入式Linux平台作为Web服务器将数据共享给局域网中的用户计算机,达到监控的目的。该系统具有结构灵活、运行稳定、易于扩展等优点。
Abstract:
Key words :

摘 要: 设计了一种基于ZigBee无线传感器技术与嵌入式Linux平台的实验室监控系统。系统通过多种传感器获取实验室的环境信息,并将信息通过ZigBee构建的无线网络发送到嵌入式Linux平台。嵌入式Linux平台作为Web服务器将数据共享给局域网中的用户计算机,达到监控的目的。该系统具有结构灵活、运行稳定、易于扩展等优点。

关键词: 无线传感器技术;嵌入式平台;Linux;安全监控

0 引言

  传统的实验室安全监控系统一般是基于有线专用网络来设计的,需要安装专用的固定线路,这使得系统移动性差,不易扩展,同时系统的维护与更新也很不方便。无线传感器技术恰好能够解决这些问题。无线传感器技术具有较低的系统成本、可靠的数据传输、极强的可扩展性等特点,这些特点均符合实验室安全监控网络的设计要求,而且无线传感器技术具备灵活的网络结构,可以根据不同的应用场合调整网络结构。ZigBee是一种新兴的基于IEEE 802.15.4的无线网络技术,具备网络容量大、功耗低等优点[1]。本文设计的实验室监控系统是以ZigBee技术和嵌入式Linux技术为基础,实现对实验室的安全监控。该系统首先通过传感器实时获取实验室的温度、烟雾等环境数据,然后将这些信息经由ZigBee构建的无线网络发送到嵌入式Linux平台,用户计算机可以通过B/S模式对嵌入式Linux平台进行访问,从而获取监控信息。系统结构如图1所示。

001.jpg

1 ZigBee无线传感器网络

  1.1 ZigBee网络结构

  ZigBee网络是以单独的节点为基础,通过无线通信构成一个协同工作的网络。ZigBee网络中定义了三种功能不同的节点设备类型:协调器(Coordinator)、路由器(Router)和终端设备(End Device)[2]。一个ZigBee网络中必须有一个协调器,它的功能是建立和管理整个网络;路由器的主要功能是在其通信范围内允许其他终端设备或者其他路由器加入网络并转发数据;终端设备与监控传感器连接,实现数据的采集和传送。ZigBee网络可以根据不同的情况构成三种不同的拓扑结构:星型、簇状、网状,如图2所示。根据本系统具体的应用环境,簇状网络是最合适的选择。

002.jpg

1.2 传感器

  传感器位于整个系统的最末端,用于获取实验室的环境信息。系统选用温度、红外和烟雾三种传感器。

  温度传感器用于获取实验室的温度信息,选用DS18B20[3],其内部已经集成了传感器元件及转换电路,其温度测量范围是-55℃~+125℃,满足实验室温度监控的要求。

  红外传感器用于实验室空闲无人的情况下监测是否有人员非法闯入。当检测到有人员位置移动时,红外传感器节点将向协调器发送触发信号并由监控终端发出报警信息。红外传感器由BISS0001[4]热释电红外开关和LHI-778热释电红外传感器组合构成。LHI-778检测到红外辐射时会将其转换为电信号送入BISS0001,BISS0001对输入信号进行处理后会向终端节点输出一个数字信号。

  采用MQ-7气敏传感器作为本系统的烟雾传感器,该传感器对一氧化碳的检测灵敏度较高。一氧化碳的浓度在一般情况下很低,但在火灾发生时其浓度会迅速上升,因此烟雾传感器可以作为检测火灾的传感器。

  1.3 节点硬件设计

  ZigBee网络中的协调器、路由器、终端三种设备的核心电路相同,均由MCU模块、无线通信模块和电源模块构成其最小系统。本文采用TI公司开发的满足一体化ZigBee解决方案的CC2430芯片,它结合了一个高性能的射频收发核心和一颗工业级的8051内核。CC2430功耗低,工作时电流损耗为27 mA,电压范围较宽(2.0~3.6 V),工作频带范围为2.400~2.483 5 GHz,具有较高的灵敏度和较强的抗干扰性能[5]。

  CC2430是无线SoC设计,内部已经集成了大量电路,添加较少的外围电路便可以实现无线收发功能[5]。根据功能的不同,协调器需增加与嵌入式平台通信的串行通信电路,终端传感器节点需增加传感器模块。节点硬件结构如图3所示。

003.jpg

 1.4 节点软件设计

  ZigBee网络中节点之间通信遵循ZigBee协议栈。ZigBee协议栈的基础是IEEE802.15.4,具体由物理层(PHY)、媒体接入控制层(MAC)、网络层(NWK)和应用层(APL)4个子层构成。本系统中网络节点的程序均是基于TI公司的Z-Stack协议栈开发的,为了实现各节点的功能,需要在ZigBee协议栈中添加特定的任务事件处理函数。

  协调器一方面组建和管理ZigBee网络,并与ZigBee网络中其他路由器和终端节点通信,接收其发来的数据;另一方面通过串行通信接口与嵌入式Linux平台通信。

004.jpg

Coordinator_ProcessEvent()是协调器的任务事件处理函数,程序流程如图4所示。协调器开始运行后,首先初始化硬件和ZigBee协议栈并建立网络,然后运行Coordinator_ProcessEvent()函数。本系统中协调器的任务事件函数只需处理网络状态事件和数据接收事件。网络构建成功后便会触发网络状态事件,指示灯闪烁用以示意网络建立成功;如果待处理事件是接收到的数据,则从数据中提取出传感器的类型、数值等信息并将这些数据打包,然后通过串口将数据发送给嵌入式平台。

005.jpg

  终端设备将采集到的传感器数据发送给路由器,其任务事件处理函数为End_ProcessEvent(),程序流程如图5所示。终端设备开始运行后,首先初始化硬件和ZigBee协议栈,然后寻找并加入已经建立的网络,成功加入网络后触发网络状态事件,在End_ProcessEvent()中设置定时器从而周期性地触发传感器采集事件,定时器设定为1 s。

  Coordinator_ProcessEvent()是路由器的任务事件处理函数,负责将终端设备的数据转发给协调器,其流程图与终端设备相似。

2 嵌入式Linux平台

  嵌入式Linux平台在本系统起到信息枢纽的作用,一方面通过串口接收协调器设备发来的数据,另一方面通过局域网将数据共享给用户计算机。

 2.1 嵌入式平台硬件设计

  嵌入式平台主控芯片选用Samsung公司的S3C2440A微处理器,该处理器具有功耗低、性能高等特点。S3C2440A是以ARM920T为核心,具备16 KB的数据缓存和16 KB的指令缓存以及MMU[6]。该芯片集成了外部存储控制器、LCD控制器、4通道DMA、3通道UART等片上资源。本系统构建的嵌入式平台硬件结构如图6所示。系统主要由处理器、32 MB SDRAM、32 MB Nand Flash、串口、网络接口等模块组成。

006.jpg

  硬件系统搭建完成后,将Bootloader和Linux内核烧写到Flash中,上电后Bootloader完成系统初始化,将Linux拷贝并解压到SDRAMD中适当的位置,然后直接跳到Linux的入口点即可使系统运行起来[7]。

  2.2 Linux应用程序设计

  为了通过B/S模式实现数据在局域网中的共享,需要在嵌入式平台上搭建Web服务器。Boa是一种小型的Web服务器,源代码开放,所需运行空间小,在嵌入式开发中很常见。Boa是单任务的Web服务器,工作时依次完成用户的请求,但Boa能够为CGI程序创建新进程。Boa处理速度快,占用资源少,符合本系统的需求。可以从网站www.boa.org获取Boa的源码,然后将其解压并移植[8]到嵌入式平台,完成Web服务器的搭建。

  嵌入式Linux平台上还需要运行两个进程:串口数据接收进程和CGI进程。这两个进程通过共享内存的方式实现通信,使用信号量实现各个进程对共享内存的互斥访问。

  串口接收进程的程序流程如图7所示。首先创建键值为sem_key的共享内存和键值为shm_key的信号量,然后进程开始监听串口数据;接收到数据后,获取shm_key信号量,保证进程对共享内存的互斥访问,然后将数据写入到共享内存中,释放shm_key信号量,之后继续监听串口。

  嵌入式平台的Web服务器运行起来后,便开始等待客户端的请求。服务器收到请求后,调用fork()创建一个子进程,在子进程上下文中调用execve()运行CGI进程。CGI流程如图8所示,首先将串口接收进程创建的共享内存映射到自己的地址空间,获取串口接收进程创建的信号量,然后读取环境变量QUERY_STRING中的参数,对参数据进行判断,若参数为“Start_Monitoring”,则在获取到共享内存资源后读出所需信息。如果发现有任何数据超过阈值,则设置报警信息,接着更新浏览器页面,显示监控数据和报警信息。显示完成之后调用sleep()函数,将进程挂起1 s,然后重复上述过程。

3 系统测试

  系统测试以三个实验室为例进行,每个实验室配备温度、红外、烟雾三种传感器终端节点。系统搭建完成并运行起来后,打开用户计算机上的浏览器,在URL中输入嵌入式Linux平台的IP地址,即可访问本系统的Web监控页面,如图9所示。

009.jpg

  浏览器页面中显示实验室的状态信息,每隔1 s刷新一次数据。在各个实验室中,采用人工干预的方式依次触发温度、红外、烟雾传感器后,监控页面刷新之后便会用红色字体显示出异常信息。经过大量测试,系统工作正常,满足设计需求。

4 结论

  本文以ZigBee无线传感器技术为基础,并结合嵌入式Linux平台,设计了实验室监控系统,克服了传统安全监控系统自由度低,不易扩展、维护与更新等缺点。同时,系统还具有网络结构灵活、低功耗、易于扩展等特点,采用B/S模式使得局域网中的计算机用户都能实时掌握传感器网络采集的数据,从而大大提高了系统的监控性能。本系统虽然是以实验室为背景设计的,但是同样适用于其他需要安全监控的场合。

参考文献

  [1] 钟勇锋,刘永俊.ZigBee无线传感器网络[M].北京:北京邮电大学出版社,2011.

  [2] 贺志楠,宋旭文,沈冬冬,等.ZigBee家庭组网技术研究与实现[J].电子科技,2014,27(8):36-39.

  [3] 汤锴杰,栗灿,王迪,等.基于DS18B20的数字式温度采集报警系统设计[J].传感器与微系统,2014,33(3):99-102.

  [4] 陈文星,付继宗,魏建英.基于BISS0001信号放大电路的人体红外感应开关设计[J].电脑开发与应用,2013,26(2):66-68.

  [5] 李文仲,段朝玉.ZigBee2006无线网络与无线定位实战[M].北京:北京航空航天大学出版社,2008.

  [6] Samsung Electronics Co., Ltd. S3C2440A 32-bit RISC Microprocessor User′s Manual(Preliminary) Revison 0.12[S]. 2004.

  [7] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

  [8] 王建敏,魏海波.基于Linux3.0.1和S3C6410的智能家居控制系统的嵌入式Web服务器的移植和应用[J].江西科技师范大学学报,2013(6):95-99.


此内容为AET网站原创,未经授权禁止转载。
Baidu
map