APP下载

基于TinyOS的温室环境检测系统研究

2011-02-20吴其洲姚舜才王忠庆

陕西科技大学学报 2011年2期
关键词:传感温室架构

吴其洲, 姚舜才, 王忠庆

(中北大学信息与通信工程学院, 山西 太原 030051)

0 引 言

在农业生产中,温室环境的监控是一个非常重要的内容.温室是农业生产中需要进行采光的建筑,因此,温室的采光性是一项很重要的指标.而与此同时,温室内的温度、湿度的变化也需要加强监控.一般的温室环境监控系统由有线传输并通过工业总线构成网络来实现,这一方法适用于便于敷设传输线的场合.然而,在很多情况下温室现场的情况很难于敷设信号传输线.这样一来,有线传输的监控系统就很难达到系统所要求的目的了[1].近些年来,无线传感网络及其接入技术有了一定的发展,并应用在了很多场合.

本文运用新型的集成传感器(无线传感节点)tmote Sky对温室的环境情况进行采样和检测,构成了小型的无线传感监控网络.在此无线传感检测系统平台上,应用专用无线传感系统TinyOS及其编程语言nesC编写了相应的无线节点模块,并使用LabWindows软件作为用户检测界面,实现了在温室环境监控系统的集成化.

1 系统的硬件平台构成

本温室环境监控系统从本质上来讲是一个无线传感网络的系统,与普通的无线传感网络一样,如果要实现信号在一定距离上能够进行可靠的监控,则整个无线传感网络需要尽可能的降低能量消耗.故而,对于节点的传感器件,以及整个无线网络节点所使用的硬件模块装置必须满足低功耗的要求.基于以上的总体考虑,本文选用了由美国Moteiv Corporation公司所生产的tmote Sky作为本无线传感网络的节点.tmote Sky是工业级,用于无线传感器网络、监控系统等领域的低功耗无线传感节点模块,它使用USB口线并按IEEE 802.15.4标准协议构成.在此模块上包含有微处理器、无线传输/接收、天线、外部闪存以及传感器5大部分,此外还预留了若干扩展连接口线.模块的微处理器部分由TI MSP430构成,具有8通道的外部和内部A/D转换口,使用USB口线与上位计算机通信;无线传输/接收部分使用CC2420芯片,这是一款基于IEEE 802.15.4标准协议的芯片,可以提供PHY和MAC功能,是非常可靠的无线传输芯片;tmote Sky的天线内置,可在室内覆盖50 m的范围以及在室外覆盖125 m的范围;外部闪存使用ST M25P80芯片,这种芯片具有1 M的数据存储空间,与微处理器之间通过SPI总线相连[2].在tmote Sky上还集成了3种传感器SHT11,分别是温度传感器、光传感器以及湿度传感器,用户可以根据不同的系统需要进行选用.根据本系统的现场情况及实际需要,作者选用了温度传感器及光传感器,这两种集成传感器模块可以被外部校准,同时也具有数字量输出的功能,校准参数均被存储在E2PROM中.温度和光传感器的各项指标如表1所示.

表1 传感器的各项参数

系统硬件平台在进行安装调试之前应该首先对传感器进行校准和一些必要的处理,具体的处理方法是采用节点厂家所提供的相关校准程序以及校准参数对传感器进行校准和测试,然后可利用公式(1)对温度传感器所采集和转化后的数字量进行折算,这样便得到了校准后的电压值:

(1)

在进行温度监控和实施数据采样时,该模块规定了采样时间必须大于30μs.由于tmote Sky的光传感器是采用了Hamamatsu公司的传感器,故具体的数据可在http://www.hamamatsu.com网站找到.

进行完上述的工作以后就可以将tmote Sky模块的夹具安装在温室内的需要检测的位置,由于此时还没有对本系统中传感器网络中的各个节点的tmote Sky进行编程,可先安装夹具,并不加装tmote Sky节点.

2 系统的监控软件构成

由于本系统是一个无线传感器网络的系统,因此在系统软件的设计上选用了一种专门针对无线传感网络的操作系统——TinyOS作为软件编程平台.TinyOS嵌入式系统是一个开源的操作系统,它是由美国加州大学伯克莱分校开发的,主要在无线传感网络等方面应用, 整个软件采用了一种基于组件的软件架构方式.TinyOS嵌入式系统在构建一个无线传感网络时需要一个与计算机相连接的基站,以便向各个节点发出信息,控制各个节点的工作状态,并收集和处理各节点所采集到的相关信息.TinyOS软件在控制台基站发出管理和监控的相关信息,然后由各个终端节点通过树形网络以及中继节点进行信息的互相传递.TinyOS嵌入式系统提供了很多编程组件以及应用程序(这些资源主要在tinyos-1.x/apps子目录下),并使用“任务排队,事件驱动”的编程模式[3].

在进行系统编程时,主要使用nesC(network embedded system C)编程语言,这种语言是类C的高级结构化编程语言,是对传统C语言的进一步扩展.nesC语言主要由“架构” (Configuration)和“模块” (Module)组成,此外还有各种相应的“接口”(Interface)和其他的一些组件.

本系统的软件置于TinyOS嵌入式编程软件cygwin/opt/tinyos-1.x/apps的子目录下,共计有3个文件夹文件,其中两个文件夹文件是分别用来进行温度和光照的数据信息采集和进行无线传送的,另外一个文件夹文件是实现无线传送的中继功能的.这是因为在实际的环境参数测试和数据传输过程中,如果单纯使用温度、光照采集单元电路以及无线传送单元电路并不能将所有节点所采集的信息送至基站中控台,必须使用中继节点,以便增强信号的强度和延长其传输的距离.

在环境参数测试采集和信息无线传送的文件中,包含了一个“架构” (Configuration)和一个“模块” (Module),另外还有相应的硬件支持平台文件、系统的配置文件以及相应的自述文件.在系统总的“架构”下,温度监控总共使用了6个子“架构”、3个“模块”和5个“接口”.整个无线传感网络系统的“架构”及“模块” 之间的关系如图1所示.

图1 温度采集与传送文件的结构图

在将系统及其各模块之间相互关系进行合理的安排后,还必须对该系统的各个模块进行基于nesC语言的编程.这些编程工作主要集中在“模块”—SenseToRfmYM上,这个模块的核心任务主要是完成温度检测、越限报警以及进行无线传输上.其核心指令语句如下:

……

task void TempRfmTask (){

uint16_t TValue;

atomic{

TValue = Stadvl;

}

async event result_t ADCY.dataReady(uint16_t data) {

atomic{

Stadvl = data;

}

post TempRfmTask ();

return SUCCESS;

}……

这段nesC程序中设置了温度采集和传输的“任务”——task void TempRfmTask (),并没有带回任何返回值,程序中使用了“接口”IntOutputY中的“指令”output和ADCY的“事件” dataReady.首先,系统要进行数据采集和节点地址的确认,在确认成功基础上,将相应的检测值以及节点的地址发送出去.在系统中,无线射频输入输出模块相应的软件子目录:cygwin/opt/tinyos-1.x/tos/lib/counters的IntMsg.h文件必须按照系统的网络构成方式进行相应的修改[4].

图2 光采集与传送文件的结构图

在光的强度采集及其无线射频传送的文件中,同样也包含了一个“架构” (Configuration)以及一个“模块” (Module),此外还有硬件平台支持文件、系统配置文件以及自述文件.在系统的总架构下,光强度监控文件共应用了5个子“架构”、2个“模块”以及6个“接口”.整个无线传感网络系统的“架构”及“模块” 之间的关系如图2所示.

在光强度监控的这部分软件程序中,需要调用包含在tos/platform/telos子目录下Hamamatsu.h的头文件,而其他的软件程序构建大致与温度监控部分的软件程序相似[5].

系统中,无线射频传送的中继功能文件仅包含一个“架构”的硬件平台文件、系统配置文件以及自述文件.在总的系统架构下,本监控系统共应用了3个子“架构”、2个“接口”.整个系统的“架构”及“模块” 之间的关系如图3所示.

这部分的软件指令相对来讲都比较简单,兹不赘述.

图3 中继文件的结构图

3 系统的温度监控实验与结论

在整个系统的初步编程和调试进行完称后,须进行仿真模拟实验.本文所采用的仿真工具是TinyOS的专用仿真模拟工具Tossim,这种仿真工具具有准确、完备以及适于连接和仿真、模拟大规模无线传感网络等特点.本系统应用这种仿真工具对系统的运行情况进行了仿真模拟.仿真试验结果表明,整个系统运行正常.

在系统的仿真试验进行完毕以后,就投入了整个系统的现场实际调试,系统总共投入20个节点,分布于受测温室的不同位置.TinyOS是一种非图形化的嵌入式系统,它本身只提供检查采集信号的相关指令,而对于采集回来的信号是不能够直接直观地表示出来的.为了使技术及管理人员对于温室环境的总体情况有一个清晰的了解,在接收相应的信号后,本系统采用由LabWindows软件进行编程,并提供了友好的用户界面.该人机接口界面是基于串口通信的一种图形化界面.进行监控操作时,首先须在一个tmote Sky的节点上下载opt/tinyos-1.x/apps/TOSBase的程序,并将改程序载入上位计算机的USB口,将上位机作为通信基站[6].由于LabWindows软件提供了一种串口通信界面,因此系统在进行信号采集时应首先将基站的USB接口口虚拟为一个串行通信的接口.将系统所要求的波特率、采样时间等参数按照系统的相关要求设定完全以后,开启系统界面,就可读出由无线传感网络的各节点送回的温室中温度的实时信息,如图4所示.同时,也可以显示出接收到网络各节点送回的光强度实时信息,如图5所示.

图4 基站收到的某节点的温度信号

图5 基站收到的某节点的光照信号

在本系统中,tmote Sky的硬件平台上虽然提供了湿度检测单元,但由于目前在TinyOS中仍没有相应的调理电路模块,因此本系统没有对湿度进行相应的监控.在整个试验的过程中,无线传感网络监控系统运行稳定、正常、可靠,达到了用户所要求的各项指标.

参考文献

[1] M. Rabbat and R. Nowak. Distributed Optimization in Sensor Networks[Z]. IPSN, Berkeley, CA, 2004.

[2] http://www.moteiv.com[EB/OL],2010-09-20.

[3] http://www.crossbow.com[EB/OL],2010-11-17.

[4] R. Willett, A. Martin, R. Nowak. Backcasting: Adaptive Sampling for Sensor Networks[R]. Proceedings of IPSN, 2004.

[5] J. Aldrich, C. Chambers, D. Notkin. Architectural Reasoning in ArchJava[R].European Conference on Object Oriented Programming (ECOOP),2002.

[6] R. Szewczyk, A. Mainwaring, J. Polastre,etal. An Analysis of a Large Scale Habitat Monitoring Application[R]. Proc. of SenSys ′04, 2004.

猜你喜欢

传感温室架构
基于FPGA的RNN硬件加速架构
《传感技术学报》期刊征订
新型无酶便携式传感平台 两秒内测出果蔬农药残留
现代温室羊肚菌栽培技术
苍松温室 苍松灌溉
苍松温室 苍松灌溉
功能架构在电子电气架构开发中的应用和实践
可以避免一个温室化的地球吗?
IPv6与ZigBee无线传感网互联网关的研究
WebGIS架构下的地理信息系统构建研究