2015无线传感器网络实验报告.docx_第1页
2015无线传感器网络实验报告.docx_第2页
2015无线传感器网络实验报告.docx_第3页
2015无线传感器网络实验报告.docx_第4页
2015无线传感器网络实验报告.docx_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

郑州航空工业管理学院无线传感器网络实验报告(第1版)20 14 2015 第2学期赵成 编著院系:电子通信工程姓名: 专业:物联网工程 学号: 电子通信工程系2015年6月制实验一WSNs开发环境的建立一、实验目的了解基于TI CC2431/CC2530的WSNs基础知识,熟悉WSNs的开发环境,掌握Cygwin、TinyOS、SDCC、SmartRF Studio 7等软件的安装方法。二、实验内容1认识并观察WSNs节点模块的电路板;2WSNs开发环境的建立:(1)Cygwin仿真软件的安装;(2)TinyOS 2.x操作系统的安装;(3)SDCC小型设备C编译器的安装;(4)SmartRF Studio 7编程软件的安装;三、预备知识了解无线传感器网络的基本概念;熟悉无线传感器网络的结构及开发环境的建立。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7。五、实验分析1安装的Cygwin仿真软件时选择Install from Internet还是Install from Local Directory。(在正确的前面打勾)2在安装Cygwin时,需要选择安装包,如下图所示,在箭头所指向的位置,表示对所有(All)包的操作,点击循环按钮,观察四种安装方式格式什么?写在下面。图1 Cygwin Setup Select Package安装方式:Default、Install、Reinstall、Uninstall。 3安装TinyOS 2.x操作系统时采用了shell脚本自动安装,请在下面写出执行shell脚本的指令。运行指令:./Install_TinyOS2.x.sh 4在下面写出SDCC默认指定安装在Windows系统中的路径,安装在其它路径编译时会出现错误提示。 默认指定安装路径:C:Progarm FilesSDCC 5安装TI Flash编程软件SmartRFProgr之后,系统成功安装设备的驱动程序,接着,打开编程软件,发现无法找到CC2431芯片,也就无法下载程序。请问,出现这样情况的原因是什么?你是怎么解决的?首先检查接口是否拨到对应位置,进行正确连接。无检查无误,需要检查cc2431芯片供电是够正常,不正常需要更换节点电池或者连接电源,如还是不可以使用,检查SmartRFProgr软件版本是否太低,升级至高版本。我当时是因为SmartRFProgr版本太低,后来在网上下载了最新的版本,问题自动消失。 6写出删除Cygwin程序的步骤。(1)找到setup-x86.exe安装包,双击运行,到安装界面.默认选项,下一步.(2) 到Select Packages界面,Category 选择Uninstall点击下一步. (3)等卸载完成.点击确定即可 六、遇到的问题及解决方法 找不到指定路径,需要建立指定路径的文件夹。安装TI Flash编程软件SmartRFProgr之后,系统成功安装设备的驱动程序,接着,打开编程软件,发现无法找到CC2431芯片,也就无法下载程序。首先检查接口是否拨到对应位置,进行正确连接。无检查无误,需要检查cc2431芯片供电是够正常,不正常需要更换节点电池或者连接电源,如还是不可以使用,检查SmartRFProgr软件版本是否太低,升级至高版本。我当时是因为SmartRFProgr版本太低,后来在网上下载了最新的版本,问题自动消失。 实验二WSNs节点模块LED灯的控制操作一、实验目的应用LED控制组件和Timer组件,掌握对节点模块上LED进行开关控制。LED的通断时间采用摩尔斯编码,使用灯光输出“hello, world”信息。二、实验内容1使用cd指令将路径切换到opttinyos-2.xcontribcc2431Helloworld下,查看其中的HelloWorld.nc源码和HelloWorldM.nc源码;2切换到/opt/tinyos-2.x/contrib/cc2431/Helloworld路径下,编译HelloWorld工程;3下载app.hex到节点模块;4观察并记录运行效果。三、预备知识了解WSNs开发软件的相关知识;了解TinyOS操作系统的编程及工程基本的编译方法。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7。五、实验分析1HelloWorld.nc是( );HelloWorldM.nc是( )。(A) 模块文件,实现LED程序的运行部分代码。 (B) 配置文件,用于声明使用的各个组件及相互之间的连接关系。 2HelloWorld.nc源码中声明使用了四个模块,分别是:(1)MainC(2)HelloWorldM(3)LedsC(4)new TimerMilliC()其中,HelloWorldM模块是本工程自定义的程序模块。3从HelloWorldM.nc源码可知,LED闪烁的基本时长是1000ms,其中:(1) 保持2000ms;(2).常亮1000ms,长闭1000ms;(3)-常亮3000ms,长闭1000ms。4观察程序的运行效果,对比HelloWorldM.nc源码,试分析:(1)Timer.startOneShot()函数与Timer.fired()函数是事件驱动的么? 是(2) Timer.startOneShot()函数触发Timer.fired()函数的执行么? 是 (3)Timer.startOneShot()函数与Timer.fired()函数是顺序执行的,还是并发执行的? 是顺序执行的 六、遇到的问题及解决办法 基本没出现什么问题,就是在下载hex文件的时候 节点的开关位置得适当调整 实验三 节点模块的串行通信一、实验目的熟悉TinyOS操作系统;熟悉message_t结构体,并解析实际传输的串行数据;掌握上位机与节点间的串行通信,尝试测试传输数据的获取。二、实验内容1. 理解TinyOS中的串行通信格式-message_t结构体;2. 区分串行通信使用的message_t结构体和无线通信使用的message_t结构体的差异;3. 尝试通过实际的串行通信,分析message_t结构体传输数据的意义。三、预备知识了解TinyOS操作系统的基本结构;了解基于TinyOS操作系统基本的程序开发方法。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7、GCC。五、实验步骤1编译节点模块程序在Cygwin环境下,切换至/opt/tinyos-2.x/contrib/cc2431/Serial_Echo_Test路径,运行make cc2431指令,得到hex文件,将其下载到节点模块。2在/opt/tinyos-2.x/contrib/cc2431/Serial_Echo_Test路径下,按实际使用的串口号调整Serial_Echo_PC_Program.h源代码中的ttySX值(X用实际数字替代)后,编译上位机的串行通信源代码“Serial_Echo_PC_Program.c”,可以得到可执行的run程序。输入的编译指令为:gcc o run Serial_Echo_PC_Program.c./run3 将节点模块连接至计算机,同时,在计算机上运行run可执行程序,观察并记录一批串行通信数据(23组即可),解释这些数据的意义。(1)在TinyOS中想要串行发送的数据: FF FF 20 27 0A xx 7E xx实际被传送的数据: 7E 45 00 FF FF 20 27 0A xx 7D 5E xx CRC1 CRC2 7E(2)在TinyOS中想要串行发送的数据: FF FF 20 27 0A xx 7D xx实际被传送的数据: 7E 45 00 FF FF 20 27 0A xx 7D 5D xx CRC1 CRC2 7E(3)在TinyOS中想要串行发送的数据: FF FF 20 27 0A xx 7E 7D xx实际传送的数据: 7E 45 00 FF FF 20 27 0A xx 7D 5E 7D 5D xx CRC1 CRC2 7E在TinyOS中,通过串行通信向PC传送数据时,在数据的开始部分,总是0x7E值先被输入,其后没有ACK的数据类型 0x45值被输入。(在TinyOS 1.X中,0x42值是没有ACK的数据类型。)接下来,表示串行消息的DispatchID 0x00被输入。接着,对应TinyOS定义的串行消息格式的数据和2bytes CRC字段被输入。最后, 作为完成通信的意义,0x7E被输入4. 在opttinyos-2.xtostypes路径下的message.h源代码中定义了message_t结构体,在下面列出该结构体的定义。typedef nx_struct serial_header nx_am_addr_t dest; nx_am_addr_t src; nx_uint8_t length; nx_am_group_t group; nx_am_id_t type;serial_header_t;第一字段dest字段表示收到串行消息的硬件的地址,一般使用0xFFFF。Src字段写入发送数据包的节点的地址。Length字段出现在header 字段后表示data区域的长度。Group和type字段表示编译时设定的组ID和SerialActiveMessageC接口数组中放入的数字。(在TinyOS 2.X中,串行通信时,不填满group字段,以值0x00传送。)6、 遇到的问题及解决办法没有调整Serial_Echo_PC_Program.h 文件的ttySX的值后,导致gcc编译出现错误,调整之后能正常编译。 实验四节点模块温湿数据采集一、实验目的熟悉温湿一体化传感器SHT11的工作原理,基于TinyOS编程实现温湿数据采集,并利用TinyOS的Oscilloscope程序分析采集的数据。二、实验内容1. 了解SHT11的工作原理及电气接口;2. 熟悉控制SHT11的程序代码;3. 基于TinyOS操作系统编译运行于CC2431节点模块上的温湿数据采集程序,并编译运行上位机程序,以图形化的方式观察数据。三、预备知识了解TinyOS nesC软件编程;了解CC2431节点模块基本的应用方法。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7、GCC、JAVA。五、实验步骤1观察并绘制SHT11与CC2431的接口电路。2TinyOS操作系统中,控制SHT11传感器的源代码分别是:(1)SensirionSht11C.nc(2)SensirionSht11LogicP.nc3节点模块温湿数据采集应用工程为opttinyos-2.xcontribcc2431OscilloscopeSHT11路径下的OscilloscopeC组件工程。OscilloscopeC组件由以下5个组件组成:(1)MainC(2)TimerC(3)SensirionSht11C(4)SerialActiveMessageC(5)LedsC4切换到/opt/tinyos-2.x/contrib/cc2431/OscilloscopeSHT11路径下,为了编译得到CC2431运行的app.hex,需要执行以下指令:Make CC2431使用Java程序启动SerialForwarder服务器程序,需要执行以下指令:路径:/opt/tinyos2.x/contrib/Oscilloscope/java指令:java net.tinyos.sf.SerialForwarder -comm serialCOMX:57600切换到/opt/tinyos-2.x/contrib/cc2431/OscilloscopeSHT11/java路径下,分别执行以下指令:(1)make(2)./run显示运行效果:六、遇到的问题及解决办法没有在设备管理器中找到当前节点使用的COM编号,设置好上面的命令。根据在设备管理器中找到当前节点使用的COM编号并在命令java net.tinyos.sf.SerialForwarder -comm serialCOMX:57600更改好X的值,就能编译成功。 实验五 基本的无线通信协议一、实验目的了解无线传感器网络中使用的MAC协议的特性及其应用方法;通过简单的无线发送接收实例,熟悉TinyOS中基本的RF无线通信原理。二、实验内容1. 了解节点的基本无线MAC协议 CSMA/CA;2. 理解TinyOS操作系统中提供的无线通信ActiveMessageC,AMSenderC以及AMReceiverC组件;3. 利用BasicMAC实例了解Broadcast和Unicast无线通信;三、预备知识了解TinyOS操作系统程序开发的原理;了解Broadcast和Unicast无线通信原理。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7、GCC。五、实验步骤1切换路径到opttinyos-2.xcontribcc2431BasicMAC目录,打开BasicMACM.nc源程序,观察BasicMACM模块由哪些TinyOS操作系统模块组成?(1)MainC(2)TimerMilliC(3)PhotoSensorC(4)ActiveMessageC (5)PhotoSensorC(6)AMSenderC(7)AMReceiverC2为了得到具有0号,1号,2号ID的hex文件,需要在Cygwin下依次执行以下指令:(1)make cc2431 (2)make cc2431 reinstall.0(3)make cc2431 reinstall.1(4)make cc2431 reinstall.23在BasicMACM.nc源代码中,修改DataMsg.send函数的首个参数:event void Photo.readDone(error_t result,uint16_t data) if (call DataMsg.send ( ToAddr , &sendmsg,call Packet.payloadLength (&sendmsg) = SUCCESS)call Leds.led2On();(1)DataMsg.send函数的首个参数为AM_BROADCAST_ADDR,表示:Broadcast通信Unicast通信(2)DataMsg.send函数的首个参数为特定节点的地址(ID),表示:Broadcast通信Unicast通信4写出实验中观察到的无线通信的运行效果。 如果打开2个传感器节点的电源,则会看到每隔1秒Green LED和Yellow LED指示灯闪烁。此外,一边Yellow LED瞬间闪烁时(发送完数据后),通过另一边节点的Red LED (发送的数据全都收到后)反复打开/关闭,可以确认数据的发送接收运行没有异常。六、遇到的问题及解决办法基本实现了预期目标,就是在运行“make cc2431 reinstall.X” 指令时,忘记更改X的值为0,1,2,而出现错误。改变之后就观察到预期的实验现象。 实验六 WSNs节点射频功率及信道控制一、实验目的掌握CC2431节点模块的射频功率控制,以控制数据的覆盖范围;掌握CC2431节点模块的信道控制,以避免不同模块间的传输冲突。二、实验内容1. 理解Power control 及 Multichannel;2. 了解CC2431上提供的Power 级别及信道信息;3. 通过实践掌握CC2431节点模块的power control及multichannel控制。三、预备知识了解TinyOS操作系统程序开发的原理;了解CC2431的功率控制;了解CC2431的多信道切换控制。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7、GCC。五、实验步骤1CC2431可以传送从最高0.6dBm(1.1482mW)到最低-25.2dBm(0.003mW)的电波,接收侧接收的电波强度在-94dBm(3.981e-10mW)以上时可以接收电波。2CC2431 RF部分支持26个Multichannel中2.4 GHz频带的16个信道。各信道的频带由下面的公式定义:F = 2405 +5(k-11) MHz, k = 11, 12 263在路径/opt/tinyos-2.x/contrib/cc2431/MCH_PTRSSI下,MCH_PTRSSIM模块调用了TinyOS操作系统模块: MainC、 TimerMilliC、BusyWaitMicroC、ActiveMessageC、AMSenderC、ActiveMessageC、HAL_CC2430ControlC及SerialActiveMessageC等8个模块。4在MCH_PTRSSIM.nc源代码中,修改task void RF_Configuration_Setting () 任务中的代码切换RF功率及信道,写出以此执行的编译指令,并观察运行效果(附运行时接收的数据图)。cd /opt/tinyos-2.x/contrib/cc2431cd MCH_PTRSSI运行结果:六、遇到的问题及解决办法基本完成了预期的现象,了解了SHT11的工作原理及电气接口, 熟悉控制SHT11的程序代码, 基于TinyOS操作系统编译运行于CC2431节点模块上的温湿数据采集程序,并编译运行上位机程序,以图形化的方式观察了数据。 实验七 多传感器数据测量一、实验目的了解如何依次采集、处理节点上安装的光敏传感器,温湿一体化传感器,红外线传感器的数值;基于前面实验中使用过的组件和接口,现实依次采集且串行传送节点上安装的4种传感器测量值。二、实验内容1. 了解各传感器的组件和接口;2. 理解依次获得4种传感器的测量值的方法;3. 尝试通过SerialTest程序,直接确认串行传入的数据。三、预备知识了解TinyOS操作系统程序开发的原理;了解各类型传感器的控制。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7、GCC。五、实验步骤1将路径切换至/opt/tinyos-2.x/contrib/cc2431/Allsensors目录下,打开AllsensorsAppC源代码,查看AllsensorsC模块调用了哪些模块?AllsensorsC, MainC, LedsC,TimerMilliC,SensirionSht11C, PhotoSensorC,UltraredSensorC,SerialActiveMessageC2编译Allsensors工程程序,安装app.hex至节点模块,运行SerilTest.exe程序,观察并记录采集的传感器数据(附图)。运行cygwincd /opt/tinyos-2.x/contrib/cc2431cd Allsensors编译make cc2431首先将下载了Allsensors例题的HBE-Ubi-CC2431节点通过USB连接线与PC连接,使USB MCU开关指向RS232一侧。运行SerilTest.exe文件,可以看到如右图所示画面。在SerilTest上单击 Port Configuration,设定Port 及Baud 值。Port是设备管理器中设定的节点的COM编号,Baud值为57600。单击Ok按钮。单击Ok按钮后,如果单击SerialTest程序的Open Port按钮和Binary Type Display,可以得到如右图所示结果。上面图中显示的数据是在Allsensors 程序中存储的Seq, Temp, Humi, Photo, Ultrared 值。运行结果如下:六、遇到的问题及解决办法在SerilTest上单击 Port Configuration,设定Port 及Baud 值时。Port是设备管理器中设定的节点的COM编号与PC不一致导致错误,进行重新设定后,再设定Baud值为57600。单击Ok按钮,即出现预期结果。 实验八 WSNs树形网络的多跳路由一、实验目的采集节点上的光敏传感器,温湿传感器以及红外线传感器的数值,之后,通过Tree路由构成的多跳网络,将采集的数据传给Sink节点,再由上位机程序显示。通过该实践项目,熟悉利用节点的USN编程算法。二、实验内容1. 按顺序调用节点的多个传感器的方法;2. 对Tree路由的理解及应用;3. 建立利用多个传感器节点的多跳路由网络。三、预备知识了解TinyOS操作系统程序开发的原理;了解各类型传感器的控制;了解路由算法。四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:CC2431无线传感器网络节点模块;2. 软件环境配置操作系统:Microsoft Windows 7 Professional Service Pack 1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio 7、GCC。5、 实验步骤1切换路径至opttinyos-2.xcontribcc2431Hanback_TestTree目录,打开应用程序源代码Hanback_TestTreeAppC.nc,查看Hanback_TestTreeAppM模块调用了哪些模块?Boot,Timer, Leds,StdControl ,AMSend, Receive 2Hanback_TreeRouting组件是为了Tree协议的实现而创建的配置文件。3Tree 路由为了周期性地向周围节点报告自身的跳数信息需要传送Beacon(= hello)数据包。4完成信道设定后, sink节点直接传送Beacon数据包。其它节点向周围节点请求Beacon。为了构成Tree拓扑,需要以Sink为中心形成拓扑。在一般节点上,如果听到了sink发送的beacon数据包,则得知自身周围存在sink,认作是距离sink一(填数字)跳的节点。且将自身的ID和距离sink为一跳的信息放入到自身的beacon数据包中周期性传送。如果虽然不属于sink的传送范围,但从sink一跳内的其它节点听到beacon,则判断此节点为距离sink两(填数字)跳的节点,并同样周期性传送记录了两跳信息的自身的beacon。也就是,0号的sink节点直接传送Beacon,非0号节点需要从sink

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论