传感器实验设计.docx
《传感器实验设计.docx》由会员分享,可在线阅读,更多相关《传感器实验设计.docx(10页珍藏版)》请在冰豆网上搜索。
![传感器实验设计.docx](https://file1.bdocx.com/fileroot1/2022-10/29/a6ae3fbb-40b3-4cda-a1fa-35ecf91ff4c0/a6ae3fbb-40b3-4cda-a1fa-35ecf91ff4c01.gif)
传感器实验设计
福建农林大学东方学院
计算机系
实验报告
实验题目:
Mica系列传感器网络的编程实验
专业年级:
09电子信息工程一班
学号:
0950302046
姓名:
陈志国
指导老师:
吉伟明
无线传感器网络实验
(一)、实验名称
Mica系列传感器网络的编程实验
(二)、实验目的
学习安装和使用CrossBow公司的Mica传感器网络,练习传感器网络的基本应用,加深学生对传感器网络基本工作原理和实现方法的理解,强化学生将传感器网络课本知识与工程实践相结合的能力。
具体的实验目标包括:
(1)掌握安装TinyOS操作系统;
(2)事件驱动的传感器数据获取;
(3)发送与接受消息;
(4)PC机显示数据
(三)、实验软件
操作系统:
安装有Cygwin的Windows2000/XP操作系统,或者安装有GCC编译器的Linux操作系统。
下载并安装以下软件:
①Cygwin
②WinAVR
③nesC
④JavaJDK
⑤TinyOS
(四)、实验设备
除了采用普通计算机以外,还需要的实验硬件设备清单如图:
五、实验具体内容及步骤
(一)、安装TinyOS
1、下载与安装
TinyOS操作系统有两种安装方式,一种是使用安装向导自动安装,另一种是全手动安装。
不管使用哪种方式,都需要安装相同的RPM。
RPM就是ReliabilityPerformanceMeasure,是广泛使用的用于交付开源软件的工具,用户可以轻松有效地安装或升级RPM打包的产品。
在Windows平台下自动安装TinyOS。
TinyOS1.1.0安装向导提供的软件包包括如下工具:
TinyOS1.1.0、TinyOSTools1.1.0、NesC1.1.0、Cygwin、SupportTools、Java1.4JDK&JavaCOMM2.0、Graphviz、AVRTools、avr-binutils2.13.2.1、avr-libc20030512cvs、avr-gcc3.3-tinyos、avarice2.0.20030825cvs和avr-insightcvs-pre6.0-tinyos。
用户可以选择“完全”安装和“自定义”安装两种类型之一。
完全安装包括以上所有内容,而自定义安装允许用户选择自己需要的部分。
用户需要选择一个安装目录。
所有选择的模块都会安装在这个目录下。
以下称这个安装目录为INSTALLDIR,通常默认目录为F:
\ProgramFiles\asd\,并假设我们选择完全自动安装的选项。
注意:
TinyOS自动安装向导虽然允许用户可以自己决定选择安装某些部分,也可选择不安装某些部分,但是除非使用者对TinyOS各个不同模块、工具之间的交互及其联合工作的版本完全清楚,强烈建议选择完全安装。
另外,必须以具有管理员权限的用户安装TinyOS,否则安装不可能成功而且还会留下残损的文件。
2、软件与硬件验证
在使用嵌入式设备时,调试应用程序通常比较困难,因此在工作前一定要确保所使用的工具工作正常以及各硬件系统功能完好。
一旦某个部件或工具中存在某些问题而未及时发现,将耗费大量的时间去调试。
下面介绍如何检查各硬件设备和软件系统。
①PC工具验证
如果在Windows平台下使用TinyOS开发环境,“toscheck”是一个专门用来检验这些软件是否正确安装以及相应的环境变量是否设置完好的工具。
在cygwinshell命令行的提示下,转到tinyos-1.x/tools/scripts目录,运行toscheck,输出结果可能会报告环境变量设置不正确,TinyOS运行检查不通过。
⏹根据系统的提示,需要自己设置一下环境变量。
对于TinyOS1.x的环境变量设置问题,可以修改D:
\ProgramFiles\asd\cygwin\etc\profile.d\tinyos.sh文件,内容如下:
⏹#设置TinyOS根路径
⏹exportTOSROOT='/opt/tinyos-1.x'
⏹#设置TinyOS核心组件所在的目录
⏹exportTOSDIR='$TOSROOT/tos'
⏹#classpath的设置需要根据自己的安装路径进行设置
⏹exportCLASSPATH='.;$CLASSPATH;D:
\ProgramFiles\asd\cygwin\opt\tinyos-.x\tools\java\javapath;D:
\ProgramFiles\asd\cygwin\opt\tinyos-1.x\tools\java;'
⏹#设置Make入口点
⏹exportMAKERULES='$TOSROOT/tools/make/Makerules‘
⏹重新启动cygwin之后,再运行toscheck进行验证,系统会报告安装成功。
⏹最后一行报告“toscheckcompletedwithouterror.”,这是十分重要的,只有显式了这一行才表示安装无误;否则如果报告存在什么错误或问题,一定要先修补好。
②硬件验证
TinyOS的apps目录下有一个应用程序“MicaHWVerify”,是专门用来测试mica/mica2/mica2dot系列硬件设备是否功能完好的验证工具。
对于传感器节点在硬件编程时须注意:
若使用配套的电源给编程接口板供电,将传感器节点插到接口板前要保证节点上的电池已取出;
若利用传感器节点上的电池给编程接口板供电,不需再接电源,并保证电池电量大于等于3.0V且节点上开关状态为On。
如果既外接电源,又采用电池供电,很可能会烧毁电路板。
以下步骤以MICA2节点为例,对MICA2DOT节点只需修改相应参数即可。
第一步:
运行cygwin后,在D:
\ProgramFiles\asd\cygwin\opt\tinyos-1.x\apps目录下,键入makemica2来编译MicaHWVerify程序。
在使用MICA2/MICA2DOT平台时,输入如下完整的命令:
PFLAGS=-DCC1K_MANUAL_FREQ=make
其中,可以根据需要在315MHz,433MHz和915MHz中选择一个。
针对Mica2系列的节点,手工设置频率为916.7MHz。
这里的命令格式是:
PFLAGS=-DCC1K_MANUAL_FREQ=916700000makemica2
若编译没问题,将输出一个内存描述,显示如下的类似内容:
compiledMicaHWVerifytobuild/mica2/main.exe
10386bytesinROM
390bytesinRAM
avr-objcopy--output-target=srecbuild/mica2/main.exe
build/mica2/main.srec
如果输出结果与上述描述类似,则说明应用程序已经编译好,下一步就将它加载到节点中。
第二步:
将MICA2节点插到编程接口板上(MIB510),用电池或电源供电,通电后编程接口板上的绿灯亮。
第三步:
将编程接口板连到计算机,将程序装载到MICA2节点,键入命令:
MIB510=COM#makereinstallmica2
其中,COM#表示MIB510连接在计算机端口COM#上,#=1、2、3...。
这里假取为COM1。
reinstall是直接将已编译过的程序装载到指定节点,而不再重新编译程序,因此速度较快。
如果使用命令install代替reinstall,则先对目标平台编译,再将程序装载到节点。
MIB510编程接口板的典型输出如下:
$mib510makereinstallmica2
installingmica2binary
uisp-dprog=mib510-dserial=COM1-dpart=ATmega128--
wr_fuse_e=ff--erase--uploadif=build/mica2/main.srec
FirmwareVersion:
2.1
AtmelAVRATmega128isfound.
Uploading:
flash
FuseExtendedBytesetto0xff
这时可以知道编程接口板和计算机串口工作正常,然后验证传感器节点硬件。
第四步:
键入命令:
make-fjmakefile
然后再键入命令:
MOTECOM=serial@COM1:
57600javahardware_check
这时计算机的输出会出现如下类似内容:
hardware_checkstarted
hardwareverificationsuccessful
NodeSerialID:
16048fb6001d
其中,NodeSerialID是MicaHWVerify程序分配给MICA2节点的序列号。
这个程序检查节点序列号、闪存连通性、UART功能和外部时钟。
当这些状态都正常时,屏幕打印出硬件检测成功的消息。
第五步:
验证传感器节点间的无线通信。
通信时传感器节点间使用统一的频率,即PFLAGS=-DCC1K_MANUAL_FREQ=916700000。
为了操作方便,我们可以在apps/目录下建立一个Makelocal文件来设定参数的默认值,内容如下:
CFLAGS=-DCC1K_DEFAULT_FREQ=CC1K_915_998_MHZ
MIB510=COM1
这样以后就不必每次输入MIB510=...PFLAGS=...之类的参数了。
通信实验需要两个传感器节点,因此先对另一个传感器节点进行硬件检测,再按下述步骤操作,使它充当第一个节点的网关汇聚节点。
第六步:
进入/apps/TOSBase目录键入makemica2编译TOSBase程序。
第七步:
将TOSBase程序装载到插在MIB510编程接口板的传感器节点,并将另一个传感器节点放在附近,该节点装载的是MicaHWVerify程序。
第八步:
键入命令:
MOTECOM=serial@COM1:
57600THjavahardware_check
这是运行hardware_checkjava程序,输出结果类似如下内容:
hardware_checkstarted
Hardwareverificationsuccessful.
NodeSerialID:
16048fb6001e
这里返回远端节点的序列号,表示传感器节点之间进行无线通信已经成功。
如果远端传感器节点关闭或工作不正常,将返回提示信息“Nodetransmissionfailure”。
如果系统通过了上述测试,就可以进行TinyOS的开发工作了。
2、事件驱动的传感器数据获取
为了演示事件驱动的传感器数据获取,这里选用简单的传感器应用示例程序Sense,它从传感器主板的光传感器获取光强度值,并将其低三位值显示在节点的发光二极管。
该应用程序位于apps/Sense目录,配置文件为Sense.nc,实现模块文件为SenseM.nc。
跟前面的例子一样,在D:
\ProgramFiles\asd\cygwin\opt\tinyos-1.x\apps\Sense目录下输入命令:
makemicain