物联网实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

物联网课程设计

实验成员:

指导教师:

日期:2014/7/3

实验一 LED组件

一、实验内容

LED组件:绿灯一直处于熄灭的状态,红灯不停闪烁

二、实验步骤

1) 将基站同电脑用烧录线连接好,打开基站的开关,同时将基站的烧录开关拨上去。

2) 打开 Cygwin 开发环境。

3) 在 Cygwin 界面中执行 cd apps/Demos/Basic/Led,进入到 LED 实验目录下。

4) 在 LED 实验目录下执行 make antc5 install 进行编译和烧录。

5) 可以看到实验现象为基站上的绿灯一直处于熄灭的状态,红灯不停闪烁。

三、实验代码

/**

LED 示例程序的实现模块,简单的点亮3个LED灯

@date 2010-1

*/

module LedM

{

uses interface Boot;

}

implementation

{

/** LED灯演示

*/

task void DemoLed()

{

/** 目前节点上提供两个LED灯

LED_BLUE -> 蓝灯

LED_YELLOW -> 黄灯

*/

int i,j;

while(1)

{

LED_YELLOW_ON; //熄灭黄色LED灯

for(i=0;i<1000;i++)

for(j=0;j<500;j++);

LED_BLUE_OFF; //点亮蓝色LED灯

for(i=0;i<1000;i++)

for(j=0;j<500;j++);

LED_BLUE_ON; //熄灭蓝色LED灯

}

}

/** 启动事件处理函数,在LED.nc已经关联到MainC.Boot接口系统启动后会调用此函数

*/

event void Boot.booted()

{

post DemoLed();

}

}

实验二定时器组件

一、实验内容

通过定时器让绿色灯闪烁,并且闪烁三次后停止闪烁。

二、实验步骤

1) 将基站同电脑用烧录线连接好,打开基站的开关,同时将基站

的烧录开关拨

上去。

2) 打开 Cygwin 开发环境。

3) 在Cygwin 界面中执行 cd apps/Demos/Basic/ Timer,进入到

定时器实验目录下。

4) 在定时器代码目录下执行 make antc5 install,进行编译和烧

录。

5) 实验现象为基站上绿色灯闪烁,并且闪烁三次后停止闪烁。

三、实验代码

#define DBG_LEV 5

module TimerLedM

{

uses interface Boot;

/* Timer为系统接口TMilli指明了定时器的精度为毫秒 */

uses interface Timer as Timer1; /* as关键字为接口别名 */

uses interface Timer as Timer2;

}

implementation

{

/** 任务: 切换黄色LED灯 */

task void ToggleLedYellow()

{

LED_YELLOW_TOGGLE;

}

/** 启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot 接口

系统启动后会调用此函数

*/

event void Boot.booted()

{

LED_BLUE_ON;

call Timer2.startPeriodic(1000);

/** 定时器1: 持续工作,每隔1s触发一次 */

call Timer1.startPeriodic(6000);

/** 定时器2: 持续工作,每隔3s触发一次*/

//call Timer2.startPeriodic(5000);

}

/** 定时器1的事件处理函数 */

event void Timer1.fired()

{

/** 事件处理中直接切换蓝色LED灯 */

ADBG(5, "led blue toggle.\r\n");

//LED_BLUE_TOGGLE;

LED_YELLOW_ON;

call Timer2.stop();/**停止定时器触发*/

call Timer1.stop();

}

/** 定时器2的事件处理函数 */

event void Timer2.fired()

{

ADBG(5, "led yellow toggle.\r\n");

post ToggleLedYellow();

}

}

实验三串口调试

一、实验内容

通过级别控制,使得某些调试语句没有被输出到串口。

二、实验步骤

1) 将基站同电脑用烧录线连接好,打开基站的开关,同时将基站的烧录开关拨上去。

2) 用串口线将基站和 PC 机器连接起来。

3) 打开串口助手。

4) 打开 Cygwin 开发环境。

5) 在 Cygwin 界面中执行 cd apps/Demos/Basic/ SerialDebug,进入到串口调试实验目录下。

6) 在串口调试代码目录下执行 make antc5 install,进行编译和烧录。

7) 烧录成功后,实验现象为串口有内容输出,输出内容如下:

三、实验代码

/**

串口调试程序的实现模块

@date

*/

/* 定义调试级别,参加Makefile的ADBG_LEVEL定义,设置大于等于ADBG_LEVEL */

#define DBG_LEV 3000

#define DBG_LEV2 2000

module SerialDebugM

{

uses interface Boot;

}

implementation

{

/** 任务: 通过串口打印信息来调试 */

task void DebugSerial()

相关文档
最新文档