TinyOS Programming
图3.2 telosb节点的反面
接下来针对Telosb平台拥有的资源中比较常用的可编程部分,结合TinyOS中提供的对应的组件及接口进行介绍。
3.1 Led
3.1.1 Telosb硬件平台上的Led器件展示
Led可以说是TinyOS编程中最常用的可编程器件之一。其编程也比较简单,一般只是令其亮、熄灭等。在Telosb节点中其所在位置如图3.3所示:
图 3.3 LED
3.1.2 TinyOS中Led编程组件介绍
1) 接口
关于LED的接口仅有一个,该接口文件在以下目录:tinyos-2.x\\tos\\interfaces,文件名为Leds.nc。其内容如下:
Page 22 of 94
TinyOS Programming
interface Leds {
async command result_t init(); //初始化LED(接口) async command result_t redOn(); //令红色LED亮 async command result_t redOff(); //令红色LED熄灭 async command result_t redToggle(); //令红色LED改变状态 //若亮则熄灭,反之亦然 async command result_t greenOn(); async command result_t greenOff(); async command result_t greenToggle(); async command result_t yellowOn(); async command result_t yellowOff(); async command result_t yellowToggle();
async command uint8_t get(); //获取LED当前状态,即哪个Led亮还是熄灭 async command result_t set(uint8_t value);//设置LED的状态(0~7) }
2) 组件
提供Leds接口的组件有两个,一个是模块LedsC,另一个是模块NoLedsC。这两个模块的文件都是在tinyos-2.x\\tos\\system 目录下,对应文件名分别是LedsC.nc和NoLedsC.nc。
其中,NoLeds模块并非真正控制LED器件,LedsC才是实实在在地控制LED器件。LED可以说是Telosb节点的唯一“界面”,很多编程人员都用其来调试程序。
3.2 传感器
传感器可以说是无线传感器网络的重头戏之一,几乎所有的应用都会涉及到此器件。
3.2.1 Telosb硬件平台上的传感器展示
一般而言,Telosb平台上的传感器有四个,也可能只有内部的两个,传感器数量不同,节点的价格有所区别:
? 内部电压传感器 ? 内部温度传感器 ? 外置的数字温湿度传感器 ? 外置的光电传感器
其中,内部电压、内部温度传感器表面上不可见,外置的传感器则如图3.4所示。
图 3.4 光、数字温湿度传感器
Page 23 of 94
TinyOS Programming
3.2.2 TinyOS中传感器编程组件介绍
1) 接口
Telosb平台中,传感器数据的读取是通过ADC的,故传感器方面的编程“实际上”是对ADC的