物联网实验报告1

时间:2024.5.13

湖北民族学院信息工程学院

物联网实验报告

                    (实验一)

 

姓    名吴传伟          

班    级 K0312418        

            学    号 K031241826      

            指导老师 邱老师         

   

       


一、实验目的

1、用户第一次使用感知RF2-CC2530-WSN

2、节点测试

二、实验原理

1、安装必要软件

2、确定各程序成功下载至各节点,并修改物理地址使其各不相同。把下载CoordinatorEB-Pro程序的ZigBee模块安插到节点底板上当作网关使用,网关通过USB连接线把计算机与网关连接起来。

三、实验步骤

安装必要软件

1)安装ZigBee开发集成环境IAR7.51A,详细请参考“\C51RF-CC2530-WSN使用说明书\”目录下的“IAR安装与使用”。

    2)安装传感器网络PC显示软件环境,软件位于“\C51RF-CC2530-WSN开发软件\C51RF-CC2530-WSN监控软件”目录下的“Framework Version 2.0.exe”

    3)安装网关与计算机USB连接驱动,驱动位于“\C51RF-CC2530-WSN开发软件\”目录下的“CP2102”。

    4)安装ZigBee开发辅助软件,软件位于“\C51RF-CC2530-WSN开发软件\”目录下的(程序下载软件)“Setup_SmartRF04Progr_1.3.0.exe”与(物理地址读写工具软件) “Setup_IEEE_Address_Prog_1.0.0.exe”。

    5)安装其它辅助开发软件,如位于“\C51RF-CC2530-WSN开发软件\”目录下的“串口调试助手.exe”。或且其它用户以为对开发有帮助的软件。

节点测试

1)温度/光敏节点

为安装温度/光敏传感器模块的节点安装电池或外接电源,打开电源开关,一会儿,ZigBee模块的右侧LED灯亮起表示节点成功加入由网关创建的ZigBee无线传感网,液晶上显示传感器模块的类型。

2)振动节点

为安装振动传感器模块的节点安装电池或外接电源,打开电源开关,一会儿,ZigBee模块的右侧LED灯亮起表示节点成功加入由网关创建的ZigBee无线传感网,液晶上显示传感器模块的类型。

3)三维加速度节点

为安装三维加速度传感器模块的节点安装电池或外接电源,打开电源开关,一会儿,ZigBee模块的右侧LED灯亮起表示节点成功加入由网关创建的ZigBee无线传感网,液晶上显示传感器模块的类型。

四、实验结果及分析

IAR 变异环境的安装

Framework Version 2.0安装

第二步

节点的测试


第二篇:物联网实验报告-实验二


 


实验名称   利用LEDHelloWorld实例 

课程名称   无线传感器网络实验   

院 系 部: 电气与电子工程学院 

专业班级:电网1101班

学生姓名:张雪垠 赵炳强 张鸣祚 

学    号: 1111600130 1111600132 1111600129

指导教师:武昕      

成    绩:

    实验日期: 20##-4-8

华北电力大学(北京)

一、实验目的及要求:

本章将应用前面所学习的LED控制组件及Timer组件,对安装在ZigbeX上的LED的On/Off进行摩尔斯编码并输出单词“hello, world”的实例进行学习。

二、仪器用具:

主电脑、1个Mote设备、ISP工具、打印机连接线、USB连接线

三、实验原理:

HelloWorld应用程序是把“hello, world”文字转换为摩尔斯电码并显示在LED中的程序。

在HelloWorld实例中,设置Timer并按指定的时间打开/关闭LED,可以用摩尔斯电码表示所需的英文单词。为了控制时间设置和LED的On/Off,在HelloWorld.nc文件中声明TimerC组件及LedsC组件,与自身的模块HelloWorldM组件进行连接。

在HelloWorld实例中使用的各组件的声明及连接结构,可以在配置文件HelloWorld.nc中进行确认。

Helloworld为了能够运行一个完整的应用程序,把必需的Main组件放在下层组件中,对其它组件及自身的模块部分进行连接。

通过Main组件最先运行的是HelloWorldM的StdControl.Init()函数。在该函数中执行对LED的初始化及有关Off的指令。在此之后调用的函数为StdControl. Start函数,通过Timer组件,设置为每秒(1000)只调用一次警报(TIMER_ONE_SHOT)。Timer组件按设置,在1秒后通过Signal,调用HelloWorldM内的Timer.fired()函数。在Timer.fired()函数中,根据保存在static指针变量morse中的“helloes, world"摩尔斯值,命令RED LED的On/Off。例如,在摩尔斯电码空格“ ”中,在2*MORSE_ UNIT期间内LED无任何变化,摩尔斯电码“.”中,在MORSE_ UNIT期间内打开RED LED后,然后在MORSE_ UNIT期间内关闭RED LED,通过current++跳到下一个摩尔斯电码。摩尔斯电码“-”中 ,  3*MORSE_ UNIT期间内打开RED LED后,同样在MORSE_ UNIT期间内关闭RED LED,通过current++跳到下一个摩尔斯电码。通过这样的计算方法,安装了Helloworld程序的ZigbeX传感器节点,通过RED LED输出“Hello, world”摩尔斯电码。

将HelloWorldM中使用的多个组件的连接结构以图形结构显示如下:

四、实验步骤(包括原理图、实验结果与数据处理)

<利用Ponyprog工SP程序下载到ZigbeX中>

首先运行Cygwin。如下输入命令,进入实例文件夹。

cd /opt/tinyos-1.x/contrib/zigbex/helloworld

接下来,输入“Make Zigbex”进行编译。

<利用USB工SP板下载到ZigbeX中>

①运行AVR Studio

②在AVR Studio中选择Tools->Program AVR->Auto Connect菜单,连接到USB-ISP上。

③连接完成后,出现如下下载画面。

④点击“…”按钮,选择所需的Hex文件后,点击“Program”按钮运行程序。

⑥按相应功能进行适当设置后,点击“Program”按钮。

在进行上述步骤之前,与ZigbeX连接的USB工SP板上的开关必须设为“ISP ”模式,而且己通过USB连接线与计算机进行连接。

<在例程基础上修改程序为实验要求的程序>

修改后的程序如下:加粗出为修改处

#define MORSE_WPM 1 /* speed, in words per minute */

/* we'd like to say 1000 * 60 / 50 / MORSE_WPM here, but that generates   

   compiler warnings when producing 16-bit code */

#define MORSE_UNIT ( 1000000 / MORSE_WPM ) /* milliseconds per unit */修改比例,让小灯闪烁变慢

。。。。。。

implementation {

            int m=0,t,tt=800,ttt=300;//m为绿灯状态变量,m=0表示等灭;tt控制‘-’和‘.’时的周期;ttt控制‘ ’时的快闪周期

    command result_t StdControl.init() {

    call Leds.init();

    /* The TinyOS code tries to turn off the LEDs in the init routine,

       but TOSSIM doesn't seem to clear them unless we reset them

       explicitly: */

    call Leds.redOff();

    call Leds.yellowOff();

    call Leds.greenOff();

    return SUCCESS;

}

。。。。。。

    event result_t Timer.fired() {

    /* A nesC compiler bug prevents us from declaring

       static char morse[], so we need static char *morse. */

    static char *morse = "--.. .... . - -. --."

        "-..- .. - ."

        "-.-- .. -.";//‘张雪垠’对应的莫斯码

。。。。。。

    switch( *current ) {

    case ' ': /* pause: off for two units */

        dbg( DBG_USR1, "Morse: pause\n" );

        call Leds.redOn();

          

   for(t=0;t<ttt;t++)

   {

     TOSH_uwait(1000);

   }//红灯点亮周期800ms

        call Leds.redOff();

          

   for(t=0;t<ttt;t++)

   {

     TOSH_uwait(1000);

   }//红灯熄灭周期800ms

        call Leds.redOn();

          

   for(t=0;t<ttt;t++)

   {

     TOSH_uwait(1000);

   }

        call Leds.redOff();

         

   for(t=0;t<ttt;t++)

   {

     TOSH_uwait(1000);

   }

        call Timer.start( TIMER_ONE_SHOT, 0 );//已用for循环延时,此处跳转延时设置为0

        current++;

        break;

       

    case '.': /* dot: on for one unit, off for one unit */

        if( m==0 ) {

        dbg( DBG_USR1, "Morse: dot\n" );

        call Leds.greenOn();

        m=1;//用m=0时点亮绿灯,m=1时熄灭绿灯

          

   for(t=0;t<tt;t++)

   {

     TOSH_uwait(1000);

   }

        call Timer.start( TIMER_ONE_SHOT, 0);

        }

        else {

        dbg( DBG_USR1, "Morse: dot\n" );

        call Leds.greenOff();

          

   for(t=0;t<tt;t++)

   {

     TOSH_uwait(1000);

   }

        m=0;

        call Timer.start( TIMER_ONE_SHOT, 0 );

        }

        current++;

        break;

//下面程序思路和之前的思路相近

    case '-': /* dash: on for three units, off for one unit */

        dbg( DBG_USR1, "Morse: dash\n" );

        call Leds.yellowOn();

      

   for(t=0;t<tt;t++)

   {

     TOSH_uwait(1000);

   }//call Timer.start( TIMER_ONE_SHOT, MORSE_UNIT );

        call Leds.yellowOff();

         

   for(t=0;t<tt;t++)

   {

     TOSH_uwait(1000);

   }

        call Timer.start( TIMER_ONE_SHOT, 0);

        current++;

        break;

    default: /* illegal character: ignore */

        dbg( DBG_USR1, "Morse: illegal character!\n" );

        break;

    }

    /* wrap around string if end reached */

    if( !*current )

        current = morse;

    return SUCCESS;

    }

}

五、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。)

把HelloWorld程序下载到设备后,可以看到设备通过三个LED反复显示“Hello, world"摩尔斯电码。实验过程中主要问题是延时上的问题,之前一直想用call Timer.start( TIMER_ONE_SHOT, MORSE_UNIT )这条语句中的MORSE_UNIT来延时,后来发现call Timer.start( TIMER_ONE_SHOT, MORSE_UNIT )语句是一条跳转语句,执行完后就跳到程序开始event result_t Timer.fired()处去了,没法执行下一行程序,故改用TOSH_uwait(1000);语句延时,但是该语句以us为单位,所以只能用for循环延长周期。本想自己定义一个delay()函数。但是发现编译器不允许。所以只能for(t=0;t<tt;t++){TOSH_uwait(1000);}反复粘贴此语句,程序显得繁琐。

更多相关推荐:
物联网技术实训报告

信息工程学院物联网技术实训报告专业班级物联网A1201学号0408120xx6姓名组号实验室成绩评定老师签名20xx年06月10日一实训目的0理解智能家居网络架构及综合应用1掌握无线传感器网络节点开发调试环境搭...

物联网实习报告

河南科技大学认识实习报告学号141404050112姓名沈成龙专业班级物联网1414班学院20xx年3月实习报告诚信承诺书本人沈成龙保证本次认识实习报告是自己独立完成的认识实习报告不会有三分之一以上的内容与其他...

物联网认识实习报告

洛阳理工学院认识实习专业班级学号姓名完成日期报告洛阳理工学院实习报告目录第1章物联网知识概述及发展111物联网的概念112物联网的前世今生2第2章物联网的技术321无线传感技术322云计算423RFID技术5第...

物联网专业见习报告

物联网专业见习报告1.物联中国大讲堂《物联中国大讲堂》是一个科普公益性节目,由中国物联网第一门户物联中国创建,联合各大专业物联网媒体、物联网产业会员单位等,该节目实现深化认识“物联网”丰富的产业内涵,旨在解读广…

关于嵌入式与物联网的认识实习报告

认识实习报告学院计算机科学与信息学院专业网络工程姓名学号实习性质认识实习指导教师班级实习地点成绩一实习目的通过专题讲座学习和现场观摩使学生了解嵌入式系统的原理与应用以及物联网的基本原理并通过相关演示实验使学生对...

物联网工程实训报告

yyzh信息工程学院物联网工程实训报告专业班级物联网A1201学号0408120xx6姓名王强组号实验室成绩评定老师签名20xx年06月10日yyzh实训一温湿度传感器调试实训一实训目的11学习和掌握工业温湿度...

物联网工程认识实习报告

120xx120樊逸杰认识实习报告作为物联网工程专业的学生已经有一年的时间了虽说还没有真正开始学习物联网的相关知识但通过上学期的物联网导论课与这学期的认识实习多少对物联网有了一定的了解现作此报告以总结自己对物联...

物联网技术实训报告_食堂餐卡系统

郑州轻工业学院实训报告实训名称物联网感知和网络传输技能实训姓名院系计算机与通信工程学院专业班级物联网技术1001学号指导教师成绩时间20xx年6月25日至20xx年9月14日目录1需求说明食堂餐卡系统需求说明2...

第7学期 物联网技术工程实践 校外实习报告-物联网技术12

物联网技术工程实践物联网技术1201班郑州轻工业学院校外实习报告实习名称物联网技术工程实践院系计算机与通信工程学院专业班级物联网技术121指导教师主要实习单位此页为装订封面同一实习单位的同学胶装在一起时间年月日...

物联网导论课程报告

姓名李杨第十六章智能交通一智能交通概述二三智能交通应用一智能交通概述智能交通是一个基于现代电子信息技术面向交通运输的服务系统它的突出特点是以信息的收集处理发布交换分析利用为主线为交通参与者提供多样性的服务在该系...

网络调查(物联网认知)报告

江苏经贸职业技术学院网络调查报告20xx20xx学年第二学期系部信息技术系课程名称岗位认知网络调查学生姓名邱红燕学号1006010214班级10电子商务2班指导教师冯宪伟二00九年二月制信息技术系实验报告1信息...

物联网认知实习计划

认知实习安排一实习目的1了解物联网的起源背景及其战略意义2掌握物联网的概念与组成3熟悉物联网的典型应用4掌握物联网的体系架构与关键技术5熟悉了解物联网发展的机遇与挑战二实习内容1物联网应用了解每人从智能电网智能...

物联网实习报告(20篇)