【精品】TinyOS下编写简单的温度检测程序

【精品】TinyOS下编写简单的温度检测程序

ID:39427472

大小:4.34 MB

页数:13页

时间:2019-07-03

【精品】TinyOS下编写简单的温度检测程序_第1页
【精品】TinyOS下编写简单的温度检测程序_第2页
【精品】TinyOS下编写简单的温度检测程序_第3页
【精品】TinyOS下编写简单的温度检测程序_第4页
【精品】TinyOS下编写简单的温度检测程序_第5页
资源描述:

《【精品】TinyOS下编写简单的温度检测程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、TinyOS下编写简单的温度检测程序既然是无线传感器,那它的特性自然是能够感知周围环境,例如温度、湿度、光线或者是声音等,然后利用无线信号将数值返回给用户。我手头上只有TelosB喝MicaZ两种传感器,而MicaZ本身不配有任何感应设备,所以在编写这个例程的时候,还是采用的TelosB传感器。TelosB主要是用在研究领域,本身性能一般,但是可以做的事情并不少,可以感知温度、湿度和光线的变化。这个例程主要包含了两个部分:一是传感器A感知周围环境温度的变化,然后将数值发送给传感器B,传感器B接受到数据以后,再通过USB接口将数据返回给电脑,然

2、后显示在终端内。也就是说有两套小程序要写,一是数据的感知和发送,另一个是数据的接受、处理和返回。按照TinyOS官方手册内的划分,一共包含了三个技术,分别是感知、无线通讯和串口通讯。而我的例程也是在官方例程的基础上修改而来。数据的感知和发送感知数据我们需要使用Read接口,而提供这个接口的组件则根据感应部件的不同而不同。TelosB采用的是SensirionSHT11,所以提供Read接口的组件为SensirionSht11C。至于无线通讯部分,则还需要SplitControl、Packet和AMSend三个接口。SplitControl主要

3、负责启动无线通讯设备,Packet负责处理数据包,而AMSend则负责数据的发送。来看一下模块组件的定义:moduleTempRadioSndC{uses{interfaceBoot;interfaceLeds;interfaceTimer;interfaceRead;interfaceSplitControlasRadioControl;interfacePacket;interfaceAMSend;}}使用Boot接口是毫无疑问的,处理在程序启动时需要做的初始化工作。Leds和Timer两个接口其实并无

4、实际意义,这里只是希望程序开始运行以后,每个2秒钟闪烁一下反光二极管,以表示程序正在运行。然后再看配置组件:configurationTempRadioSndAppC{}implementation{componentsTempRadioSndCasAppC;componentsMainC,LedsC;componentsnewTimerMilliC()asTimer;componentsnewSensirionSht11C()asSense;componentsnewAMSenderC(AM_RADIO_MSG);componentsAct

5、iveMessageC;AppC.Boot->MainC.Boot;AppC.Leds->LedsC.Leds;AppC.Timer->Timer.Timer;AppC.Read->Sense.Temperature;AppC.Packet->AMSenderC.Packet;AppC.AMSend->AMSenderC.AMSend;AppC.RadioControl->ActiveMessageC.SplitControl;}唯一需要注意的就是Sense,这里使用了SensirionSht11C组件来测量数据,这也是TelosB所配备的温

6、度和湿度测量装置。并且为了书写方便,这个组件被重命名为Sense。数据的接受和处理当发送方开始检测、发送数据以后,另一头需要有一个和电脑直接连接的传感器,负责负责接收、处理数据,并且通过串口通讯,将数据发回电脑。moduleTempRadioRcvC{uses{interfaceBoot;interfaceTimer;interfaceLeds;interfaceSplitControlasRadioControl;interfaceSplitControlasSerialControl;interfaceReceive;in

7、terfaceAMSend;interfacePacket;}}这里唯一需要注意的是两个SplitControl接口,他们一个负责启动无线通讯,一个负责启动串口通讯,所以两者被分别重命名为RadioControl和SerialControl。他们一个由ActiveMessageC组件提供,另一个由SerialActiveMessageC提供。和发送端一样,Timer和Leds只是用于定时点亮、熄灭发光二极管。数据的处理从温度传感器返回的数值,称之为RAW值,意为未经任何处理、加工的数值,是“毛坯”。通常这类数值是无法被直接理解的,因为他们只是

8、被简单地从模拟信号传唤成数字信号。例如温度,如果不对感应到的数值进行处理,返回的则是一串奇怪的16进制数值。通过更换环境,我们可以看到这串16进制数值的变化,但是不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。