还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
郑州航空工业管理学院无线传感器网络实验报告(第1版)2022-2023第L学期院系电子通信工程姓名____________________________专业物联网工程_____________学号____________________________电子通信工程系2022年6月制实验一WSNS开发环境的建立
一、实验目的了解基于TI CC2431/CC2530的WSNs基础知识,熟悉WSNs的开发环境,掌握Cygwin、TinyOS、SDCC、SmarlRF Studio7等软件的安装方法
二、实验内容
1.认识并观察WSNs节点模块的电路板
2.WSNs开发环境的建立
(1)Cygwin仿真软件的安装;
(2)TinyOS
2.x操作系统的安装;
(3)SDCC小型设备C编译器的安装
(4)SmarlRF Sludio7编程软件的安装;7AMReceiverC_____________
2.为了得到具有0号,1号,2号ID的hex文件,需要在Cygwin下依次执行以下指令:1make cc2431______________2makccc2431reinstall.3makecc243l reinstall」______4makccc2431rcinstall.2______
3.在BasicMACM.nc源代码中,修改DataMsg.send函数的首个参数event voidPhoto.rcadDonccrror_t rcsult,uintl6_t data{if callDataMsg.sendToAddr,scndmsg,call Packct.payloadLcngth sendmsg==SUCCESS callLeds.led2On;1DalaMsg.send函数的苜个参数为AM_BROADCAST_ADDR,表示V□Broadcast通信□Unicast通信2DataMsg.send函数的苜个参数为特定节点的地址ID,表示□Broadcast通信J□Unicast通信
4.写出实验中观察到的无线通信的运行效果如果打开2个传感器节点的电源,则会看到每隔1秒Green LED和Yellow LED指示灯闪烁此外,一边Yellow LED瞬间闪烁时发送完数据后,通过另一边节点的Red LED发送的数据全都收到后反复打开/关闭,可以确认数据的发送接收运行没有异常
六、遇到的问题及解决办法基本实现了预期目标,就是在运行“makecc2431reinstalls”指令时,忘记更改X的值为0,1,2,而出现错误改变之后就观察到预期的实验现象实验六WSNs节点射频功率及信道控制
一、实验目的掌握CC2431节点模块的射频功率控制,以控制数据的覆盖范围掌握CC2431节点模块的信道控制,以避免不同模块间的传输冲突
二、实验内容
1.理解Power control及Multichannel;
2.了解CC2431上提供的Power级别及信道信息;
3.通过实践掌握CC2431节点模块的power control及multichannel控制
三、预备知识了解TinyOS操作系统程序开发的原理;了解CC2431的功率控制;了解CC2431的多信道切换控制
四、实验设备
1.硬件环境配置计算机ImelRPentiumR及以上;内存IGB及以上;实验设备CC2431无线传感器网络节点模块
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1WSNs开发环境Cygwin.TinyOS、SDCC、SmartRF Studio
7.GCC
五、实验步骤
1.CC2431可以传送从最高
0.6dBm
1.1482mW到最低-
25.2dBm
0.003mW的电波,接收侧接收的电波强度在-94dBm
3.981e7m\V以上时可以接收电波
2.CC2431RF部分支持26个Multichannel中
2.4GHz频带的16个信道各信道的频带由下面的公式定义F=2405+5k-ll MHz,k=11,12…
263.在路径/opl/tinyos-
2.x/comrib/cc243l/MCH_PTRSSI下,MCH_PTRSSIM模块调用了TinyOS操作系统模块MainC、TimerMilliC、BusyWaitMicroC、ActiveMessageC、AMSenderC、ActiveMessageC、HAL CC2430ControlC及SerialActivcMessagcC等8个模块
4.在MCH_PTRSSIM.nc源代码中,修改task voidRF_Configuration_Setting任务中的代码切换RF功率及信道,写出以此执行的编译指令,并观察运行效果附运行时接收的数据图cd/opt/linyos-
2.x/conlrib/cc2431cd MCH.PTRSSI运行结果
六、遇到的问题及解决办法基本完成了预期的现象,了解了SHT11的工作原理及电气接口,熟悉控制SHT11的程序代码,基于TinyOS操作系统编译运行于CC2431节点模块上的温湿数据采集程序,并编译运行上位机程序,以图形化的方式观察了数据实验七多传感器数据测量
一、实验目的了解如何依次采集、处理节点上安装的光敏传感器,温湿一体化传感器,红外线传感器的数值;基于前面实验中使用过的组件和接口,现实依次采集且串行传送节点上安装的4种传感器测量值
二、实验内容
1.了解各传感器的组件和接口;
2.理解依次获得4种传感器的测晟值的方法;
3.尝试通过SerialTest程序,直接确认串行传入的数据
三、预备知识了解TinyOS操作系统程序开发的原理;了解各类型传感器的控制
四、实验设备
1.硬件环境配置计算机IntelR PeniiumR及以上;内存1GB及以上实验设备CC2431无线传感器网络节点模块;
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack I;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio
7.GCC
五、实验步骤
1.将路径切换至/opt/tinyos-
2.x/contrib/cc2431/AHsensors目录下,打开AllsensorsAppC源代码,查看AllsensorsC模块调用了哪些模块?AllsensorsC,MainC,LedsC,TimcrMilliC,SensirionShtl IC,PhotoSensorC,UltraredSensorC,SerialActiveMessageC
2.编译Allsensors工程程序,安装app.hex至节点模块,运行SerilTesl.exe程序,观察并记录采集的传感器数据附图运行cygwin cd/opt/tinyos-
2.x/contrib/cc2431cd Allsensors编译make cc2431首先将下载了Allsensors例题的HBE-Ubi-CC243l节点通过USB连接线与PC连接,使USB MCU开关指向RS232一侧运行SerilTesl.exe文件,可以看到如右图所示画面在ScrilTest上单击Port Configuration,设定Port及Baud值Port是设备管理器中设定的节点的COM编号,Baud值为57600单击Ok按钮单击Ok按钮后,如果单击ScrialTcst程序的Open Port按钮和Binary TypeDisplay,可以得到如右图所示结果上面图中显示的数据是在Allsensors程序中存储的Seq,Temp,Humi.Photo.Ultrared值运行结果如下
六、遇到的问题及解决办法在SerilTest上单击Port Configuration,设定Pori及Baud值时Port是设备管理器中设定的节点的COM编号与PC不一致导致错误,进行重新设定后,再设定Baud值为57600单击0k按钮,即出现预期结果实验八WSNs树形网络的多跳路由
一、实验目的采集节点上的光敏传感器,温湿传感器以及红外线传感器的数值,之后,通过Tree路由构成的多跳网络,将采集的数据传给Sink节点,再由上位机程序显示通过该实践项目,熟悉利用节点的USN编程算法
二、实验内容
1.按顺序调用节点的多个传感器的方法
2.对Tree路由的理解及应用;
3.建立利用多个传感器节点的多跳路由网络
三、预备知识了解TinyOS操作系统程序开发的原理;了解各类型传感器的控制;了解路由算法
四、实验设备
1.硬件环境配置计算机机elR PentiumR及以上;内存IGB及以上;实验设备CC2431无线传感器网络节点模块;
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio7GCC
五、实验步骤
1.切换路径至\opt\tinyos-
2.x\contrib\cc2431\Hanback_TestTree目录,打开应用程序源代码Hanback_TestTreeAppC.nc»杳看Hanback_TestTreeAppM模块调用了哪些模块?Boot,TiinerTMilli,Leds,StdControl,AMSend,Receive
2.Hanback_TrccRouting组件是为了Tree协议的实现而创建的配置文件
3.Tree路由为了周期性地向周围节点报告自身的跳数信息需要传送—Beacon仁hello数据包
4.完成信道设定后,sink节点直接传送Beacon数据包其它节点向周围节点请求Beacona为了构成Tree拓扑,需要以Sink为中心形成拓扑在一般节点上,如果听到了sink发送的beacon数据包,则得知自身周围存在sink,认作是距离sink一填数字跳的节点月.将自身的ID和距离sink为一跳的信息放入到自身的beacon数据包中周期性传送如果虽然不属于sink的传送范围,但从sink一跳内的其它节点听到beacon,则判断此节点为距离sink两填数字跳的节点,并同样周期性传送记录了两跳信息的自身的beacono也就是,号的sink节点直接传送Beacon,非0号节点需要从sink或已经收到sink的beacon的周围节点接收Beacon数据包,才可以参与到tree拓扑中
5.如果节点从其它节点收到了Beacon数据包,则RecvBeacon.receiveO函数会发出Beacon信号通知在此函数中,首先收到的数据包如果不是记入了跳数信息的一般Beacon数据包,检查是否是请求Beacon数据包的BeaconRequest数据包如果是BeaconRequest数据包时,调用TransmilBeaconO任务,传送自身的Beacon数据包如果收到的数据包是一般Beacon时,将此数据包通过updateRoute收bieO函数存储在Neighbor Tabic中
6.程序中为了能在近距离范围内测试多跳环境,设置了0号传送的Beacon只被节点1,2,3,4号收到,4号以下发送的Beacon只被5,6,7,8号节点收到即1,2,3,4号节点作为0号的one hop运行,其余5,6,7,8号作为two hop,剩余节点作为three hop强制形成拓扑
7.processNexAddress函数是比较存储的路由表的值,选择最适的Nexladdress的函数在此函数中,首先以距离Sink的跳数为基准进行比较,跳数相同时,再比较LQL LQI相同时比较RSSI值由于此函数在Timer.fired函数中被周期性地调用,每隔10秒,重新求一次最适的Nextaddresso这个Nextaddress最终是指自身的父节点这样,可以构成能够应付更多适应状况的tree拓扑
8.运行Sensor NetworkTopology-Viewer应用程序,观察Tree型网络及多跳数据传输附图运行cygwin cd/opt/tinyos-
2.x/contrib/cc2431cd HanbackTcstTrcc make cc2431进行编译连接节点和PC,打开其它节点的电源而且,如果执行CD的program\Scnsor NetworkTopology-Viewer_Korean«£#Sensor NetworkTopology-Viewer文件夹内的exe文件,将如右图直观地显示从传感器节点0号进入的数据通信连接输入AVR-ISP的USB端口号,Baud rate设定为57600后,如果按Connect按钮,则会被连接运行如图
六、遇到的问题及解决办法未对AVR-ISP的USB端口号进行设定,以及Baud rate的设定,改正之后基本实现预期目标,掌握了按顺序调用节点的多个传感器的方法,基本对Tree路由的理解及应用有一定把握,建立了利用多个传感器节点的多跳路由网络
二、预备知识了解无线传感器网络的基本概念;熟悉无线传感器网络的结构及开发环境的建立
四、实验设备
1.硬件环境配置计算机ImeKR)Penlium(R)及以上;内存1GB及以上;实验设备CC2431无线传感器网络节点模块;
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1;WSNs开发环境Cygwin、TinyOS、SDCC、SmartRF Studio7o
五、实验分析
1.安装的Cygwin仿真软件时选择口1於311from Internet还是,口Install fromLocal Directoryo(在正确的前面打勾)
2.在安装Cygwin时,需要选择安装包,如卜图所示,在箭头所指向的位置,表示对所有(AH)包的操作,点击循环按钮,观察四种安装方式格式什么?写在下面图I CygwinSetup-Select Package安装方式Default、Install Reinstall、Uninstall
3.安装TinyOS
2.x操作系统时采用了shell脚本自动安装,请在下面写出执行shell脚本的指令
4.在下面写出SDCC默认指定安装在Windows系统中的路径,安装在其它路径编译时会出现错误提示默认指定安装路径C\Progarm Files\SDCC
5.安装TIFlash编程软件SmariRFProgr之后,系统成功安装设备的驱动程序,接着,打开编程软件,发现无法找到CC2431芯片,也就无法下载程序请问,出现这样情况的原因是什么?你是怎么解决的?首先检查接口是否拨到对应位置,进行正确连接无检查无误,需要检查CC243I芯片供电是够正常,不正常需要更换节点电池或者连接电源,如还是不可以使用,检查SmartRFProgr软件版本是否太低,升级至高版本我当时是因为SmariRFProgr版本太低,后来在网上下载了最新的版本,问题自动消失
6.写出删除Cygwin程序的步骤
(1)找到setup-x
86.exe安装包,双击运行,到安装界面.默认选项,下一步.
(2)到Select Packages界面「Category选择Uninstall点击下一步.
(3)等卸载完成.点击“确定”即可
六、遇到的问题及解决方法找不到指定路径,需要建立指定路径的文件夹安装TI Flash编程软件SmailRFProgr之后,系统成功安装设备的驱动程序,接着,打开编程软件,发现无法找到CC2431芯片,也就无法卜载程序首先检查接口是否拨到对应位置,进行正确连接无检查无误,需要检查CC243I芯片供电是够正常,不正常需要更换节点电池或者连接电源,如还是不可以使用,检查SmartRFProgr软件版本是否太低,升级至高版本我当时是因为SmartRFProgr版本太低,后来在网上下载了最新的版本,问题自动消失实验二WSNs节点模块LED灯的控制操作
一、实验目的应用LED控制组件和Timer组件,掌握对节点模块上LED进行开关控制LED的通断时间采用摩尔斯编码,使用灯光输出hello,world信息
二、实验内容
1.使用cd指令将路径切换到\opl\linyos-
2.x\comrib\cc2431\Helloworld\F,查看其中的HelloWorld.nc源码和HelloWorldM.nc源码;
2.切换到/optAinyos-
2.x/con【rib/cc2431/Helloworld路径下,编译HelioWorld「程;
3.下载app.hex到节点模块;
4.观察并记录运行效果
三、预备知识了解WSNs开发软件的相关知识;了解TinyOS操作系统的编程及工程基本的编译方法
四、实验设备
1.硬件环境配置计算机InielR PeniiumR及以上;内存1GB及以上;实验设备CC2431无线传感器网络节点模块
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1;WSNs开发环境Cygwin TinyOS、SDCC、SmartRF Studio7o
五、实验分析
1.HelloWoHd.nc是;HelloWorldM.nc是A模块文件,实现LED程序的运行部分代码B配置文件,用于声明使用的各个组件及相互之间的连接关系
2.HclloWorld.nc源码中声明使用了四个模块,分别是1MainC___________________2HelloWorldM_____________3LcdsC___________________4new TimerMiHiCO________其中,HelloWorldM模块是本工程自定义的程序模块
3.从HeHoWorklM.nc源码可知,LED闪烁的基木时长是一1000ms,其中:111保持2000ms:2常亮1000ms,长闭1000ms:3常亮一300ms,长闭1000ms
4.观察程序的运行效果,对比HelloWorldM.nc源码,试分析1Timer.siarlOneShol函数与Timer.fired函数是事件驱动的么?是2Timer.siariOneSholO函数触发Timer.fired函数的执行么?是3Timer.startOneShot函数与Timer.fired函数是顺序执行的,还是并发执行的?是顺序执行的
六、遇到的问题及解决办法基本没出现什么问题,就是在下载hex文件的时候节点的开关位置得适当调整实验三节点模块的串行通信
一、实验目的熟悉TinyOS操作系统;熟悉message」结构体,并解析实际传输的串行数据;掌握上位机与节点间的串行通信,尝试测试传输数据的获取
二、实验内容
1.理解TinyOS中的串行通信格式--message」结构体;
2.区分串行通信使用的message_t结构体和无线通信使用的message_t结构体的差异;
3.尝试通过实际的串行通信,分析message」结构体传输数据的意义
三、预备知识了解TinyOS操作系统的基本结构;了解基于TinyOS操作系统基本的程序开发方法
四、实验设备
1.硬件环境配置计算机机elR PentiumR及以上;内存1GB及以上;实验设备CC2431无线传感器网络节点模块
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1;WSNs开发环境:Cygwin、TinyOS、SDCC、SmartRF Studio
7.GCCo
五、实验步骤
1.编译节点模块程序在Cygwin环境下,切换至/opt/tinyos-
2.x/contrib/cc2431/Scrial_Echo_Tcst路径,运行makecc2431指令,得到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 runSerial_Echo_PC_Program.c./run
3.将节点模块连接至计算机,同时,在计算机上运行run可执行程序,观察并记录一批串行通信数据2~3组即可,解释这些数据的意义1在TinyOS中想要串行发送的数据:FF FF20270A xx7E xx实际被传送的数据7E4500FF FF20270A xx7D5E xx CRC1CRC27E2在TinyOS中想要串行发送的数据:FF FF20270A xx7D xx实际被传送的数据7E4500FF FF20270A xx7151xxCRC1CRC27E3在TinyOS中想要串行发送的数据FF FF20270A xx7E7D xx实际传送的数据7E4500FF FF20270A xx7D5E7D5D xxCRC1CRC27E在TinyOS中,通过串行通信向PC传送数据时,在数据的开始部分,总是x7E值先被输入,其后没有ACK的数据类型一0x45值被输入在TinyOS LX中,0x42值是没有ACK的数据类型接下来,表示串行消息的DispatchlDOxOO被输入接着,对应TinyOS定义的申行消息格式的数据和2bytes CRC字段被输入最后,作为完成通信的意义,Ox7E被输入
4.在\opl\linyos-
2.x\los\lypes\路径下的message,h源代码中定义了message」结构体,在下面列出该结构体的定义typcdof nxstructserialheador{nx amaddr tdest;nx_am_addr_t src;nxuint8t length;nx_am_group_t group;nx amid ttype;}serial_header_t;第一字段dest字段表示收到串行消息的硬件的地址,一般使用OxFFFFSrc字段写入发送数据包的节点的地址Length字段出现在header字段后表示data区域的长度Group和type字段表示编译时设定的组ID和Seria1ActiveMessageC接口数组中放入的数字在TinyOS
2.X中,串行通信时,不填满group字段,以值0x00传送
六、遇到的问题及解决办法没有调整Scrial_Echo_PC_Program.h文件的ttySX的值后,导致gcc编译出现错误,调整之后能正常编译实验四节点模块温湿数据采集
一、实验目的熟悉温湿一体化传感器SHT11的工作原理,基于TinyOS编程实现温湿数据采集,并利用TinyOS的Oscilloscope程序分析采集的数据
二、实验内容
1.了解SHT1I的工作原理及电气接口;
2.熟悉控制SHTU的程序代码;
3.基于TinyOS操作系统编译运行于CC2431节点模块上的温湿数据采集程序,并编译运行上位机程序,以图形化的方式观察数据
三、预备知识J解TinyOS nesC软件编程了解CC243I节点模块基本的应用方法
四、实验设备
1.硬件环境配置计算机IntelRPemiumR及以上;内存IGB及以上;实验设备CC2431无线传感器网络节点模块;
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1;WSNs开发环境:Cygwin.TinyOS、SDCC、SmartRF Studio
7.GCC、JAVA
五、实验步骤
1.观察并绘制SHT11与CC2431的接口电路
2.TinyOS操作系统中,控制SHT11传感器的源代码分别是1SensirionShtllC.nc_______________________________2SensirionShtlILo^icP.nc__________________________
3.节点模块温湿数据采集应用工程为\opt\ti nyos-
2.x\contrib\cc2431\Osc i1loscopcSHT11路径下的OscilloscopeC组件工程OscilloscopeC组件由以下5个组件组成1MainC___________________2TimerC__________________3SensirionShtl IC___________4Serial AciiveMessageC______5LcdsC___________________
4.切换到/opt/tinyos-
2.x/conlrib/cc2431/OscinoscopeSHTl I路径下,为了编译得到CC2431运行的app.hex,需要执行以下指令Make CC2431使用Java程序启动ScrialForwardcr服务器程序,需要执行以下指令路径/opt/tinyos-
2.x/conlrib/OscilloscoDeiava____________指令______切换到/opl/tinyos-
2.x/conlrib/cc2431/OscilloscopeSHT11Java路径下,分别执行以下指令:1make____________________
2./run_________________显示运行效果
六、遇到的问题及解决办法没有在设备管理器中找到当前节点使用的COM编号,设置好上面的命令根据在设备管理器中找到当前节点使用的实验五基本的无线通信协议
一、实验目的了解无线传感器网络中使用的MAC协议的特性及其应用方法通过简单的无线发送接收实例,熟悉TinyOS中基本的RF无线通信原理
二、实验内容
1.了解节点的基本无线MAC协议一CSMA/CA;
2.理解TinyOS操作系统中提供的无线通信ActiveMessageC,AMSendeiC以及AMReceiverC组件;
3.利用BasicMAC实例了解Broadcast和Unicast无线通信;
三、预备知识解TinyOS操作系统程序开发的原理;了解Broadcast和Unicast无线通信原理
四、实验设备
1.硬件环境配置计算机ImelRPentiumR及以上;内存IGB及以上;实验设备CC2431无线传感器网络节点模块
2.软件环境配置操作系统Microsoft Windows7Professional ServicePack1WSNs开发环境Cygwin.TinyOS、SDCC、SmartRF Studio
7.GCC
五、实验步骤
1.切换路径到\opl\【inyos-
2.x\conlrib\cc243l\BasicMAC目录,打开BasicMACM.nc源程序,观察BasicMACM模块由哪些TinyOS操作系统模块组成?1MainC2TimerMilliC3PhotoSensorC4ActiveMessageC5PhotoSensorC6AMSenderC。