




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学信息科学与工程学院物联网无线传感器网络 实验报告 班 级: 物联网 学 号: 姓 名: 指导老师: 刘伟荣 实验时间: 2014年4月11日 目录实验一 基础实验(LED实验)- 2 -1.1实验目的- 2 -1.2实验设备及工具- 2 -1.3实验原理- 2 -1.4 实验步骤及结果- 5 -实验二 射频实验- 6 -2.1 实验目的- 6 -2.2 实验内容- 6 -2.3 实验设备及工具- 7 -2.4 实验原理- 7 -2.5 实验步骤- 8 -2.6 实验数据分析及结论- 9 -实验三 Zstack组网实验- 10 -3.1 实验目的- 10 -3.2 实验内容- 10 -3.3 预备知识- 11 -3.4 实验设备及工具- 11 -3.5 实验原理- 11 -3.6 实验步骤- 16 -3.7 实验数据分析及结论- 17 -实验四 综合实验(传感器网络)- 17 -4.1 智能网关程序设计- 18 -4.2 Android 用户控制程序设计- 19 -4.3 Zigbee 节点控制程序设计- 30 -4.4 平台控制操作- 34 -实验一 基础实验(LED实验)1.1实验目的u 通过 I/O控制小灯闪烁的过程。 u 在 ZX2530A 型 CC2530 节点板上运行自己的程序。1.2实验设备及工具u 硬件:ZX2530A 型底板及CC2530 节点板一块,USB 接口仿真器,PC 机 u 软件:PC 机操作系统 WinXP,IAR 集成开发环境。 1.3实验原理通过 CC2530 的 I/O 引脚,输出高低电平来控制 LED 的亮与灭。 本实验选择 P2_0 I/O 引脚,将P2_0 置成高电平即点亮 LED。 如图 为 LED 小灯驱 动电路,DS1 为 LED 小灯,P2_0引脚使用 CC2430/1 的内置电源驱动LED 小灯。 CC2530的 I/O 控制口一共有21个,分成3组,分别是P0、P1和P2;由上面的对照表可以看出 LED1所对应的I/O 口为P1_0,LED2所对应的I/O口为P1_2。 下面我们来看一下本次实验所用到的控制寄存器中每一位的取值所对应的意义: P1DIR(P1 方向寄存器,P0DIR 同理) :P1SEL(P1 功能选择寄存器,P0SEL 同理) :寄存器的设置: 将控制寄存器的某一位置 1: 例:P1DIR |= 0X02; 解释:”|=“表示按位或运算,0X02 为十六进制数,转换成二进制数为 0000 0010,若 P1DIR 原来的值为 0011 0000,或运算后 P1DIR的值为 0011 0010。根据上面给出的取值表可知,按位与运算后 P1_1 的方向改为输出,其他 I/O 口方向保持不变。 将控制寄存器某一位清 0:例:P1DIR &= 0X02; 解释:”&=“表示按位与运算,”“运算符表示取反, 0X02为0000 0010, 即0X02 为1111 1101。若 P1DIR 原来的值为 0011 0010,与运算后 P1DIR 的值为0011 0000。程序源码 /引入头文件 #include /引入 CC2530所对应的头文件(包含各 SFR 的定义) /定义LED引脚 #define led1 P1_0 /定义 LED1 为P1_0 口控制 #define led2 P1_2 /定义 LED2 为P1_1 口控制 void Delay(unsigned char n) unsigned char i; unsigned int j; for(i = 0; i n; i+) for(j = 1; j8), (byte) 0, /addr 0x00, 0x01, / cmd 0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 ); 当 syncRequestSYS_APP_MSG 返回后,如果 ninfo!=null,则 ninfo 中保存获取到的协调器信息,否则获取协调器信息失败,zigbee 网络搜索结束。获取到协调器信息后通过以下代码 Top.DrawTop(mTree); Message msg = Message.obtain(); msg.what = MSG_NEW_NETWORK; msg.arg1 = 1; mMainHandler.sendMessage(msg); 生成协调器节点并通知主线程在屏幕上显示出来。 当找到协调器后,程序通过查找与协调器直接连接的相关节点,然后递归搜索,最终搜索完整个网络并绘制出 Zigbee 网络的 TOP结构。 具体实现代码如下private void buildNetWork(Node pa, int cli) for (int i=0; i8), (byte) clii, /addr 0x00, 0x01, / cmd 0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 ); if (ninfo=null | ninfo.length29) Log.d(TAG, * get node +clii+ info fail.); continue; int tmp, off=0; tmp = Tool.builduInt(ninfooff, ninfooff+1); / addr if (tmp != clii) Log.d(TAG, net add is not equl.); continue; off += 2; tmp = Tool.builduInt(ninfooff, ninfooff+1); /cmd if (tmp != 0x8001) Log.d(TAG, response cmd not euql.); continue; off += 2; if (ninfooff != 0) /read status Log.d(TAG, read status is not 0); continue; off += 1; Node nd = new Node(clii, Node.ZB_NODE_TYPE_ENDDEVICE); int childs = ; while (off ninfo.length) tmp = Tool.builduInt(ninfooff, ninfooff+1); off += 2; switch (tmp) case 0x0001: / hard vernd.mHardVer = Tool.builduInt(ninfooff, ninfooff+1); off += 2; break; case 0x0002: nd.mSoftVer = Tool.builduInt(ninfooff, ninfooff+1); off += 2; break; case 0x0005: nd.mDevType = ninfooff; off += 1; break; case 0x0014: for (int j=0; j8; j+) nd.mIEEEAddrj = ninfooff+j; off += 8; break; case 0x0015: int assocCnt = ninfooff;off += 1; break; case 0x0014: for (int j=0; j8; j+) nd.mIEEEAddrj = ninfooff+j; off += 8; break; case 0x0015: int assocCnt = ninfooff; off += 1; if (assocCnt != 0) nd.mNodeType = Node.ZB_NODE_TYPE_ROUTER; int nli = new intassocCnt; for (int j=0; j New - Android Project”出现如下对话框其中红线标示出来是要填充的:Location:指定 Android 用户控制程序源代码的存放位置。填写好后点击“Finish”按钮。建立工程后工程结构如下图:3) 选择菜单“Project”确保Build Automaticall 被选中,如下图:4) 选择菜单“Project - Clean”出现如下对话框点击“Ok”按钮5) 点击 eclipse 上的运行按钮就可以在模拟器上运行程序了,第一次运行程序会出现如下对话框,请选择 Android Application。然后点击“OK”按钮。6)如果在执行第 5 步时,将物联网网关实验箱与 pc 用 usb 连接起来了,那么程序将会自动下载到实验箱上。就可以在实验箱上运行程序了4.3 Zigbee 节点控制程序设计Zigbee 节点控制程序运行在每个传感器节点上,根据不同的传感器类型,设计不同的传感器控制程序。所有节点控制程序都是基于 Zstack 协议栈的,并且都是在 SampleApp 的基础上修改而来。 下面对各个传感器工程进行介绍:先将“物联网光盘综合实验Zigbee 节点控制程序”复制到本地磁盘。 打开工程文件“ProjectszstackSamplesSimpleAppCC2530DB SimpleApp.eww”1) 协调器节点工程 SimpleCoordinator即协调器工程,如下图协调器的应用功能代码实现文件是 SimpleCoordinator.c 在工程文件夹 App 目录下具体实现可参考源码。按下键盘上的 F7 即个编译协调器工程,编译好之后可将代码下载到协调器节点板。 2) 继电器节点工程 SimpleLight即继电器节点工程,如下图 程序中实现了一个继电器的控制, 具体实现代码可参考源文件工程目录 App 下 SimpleLight.C 3) 气体传感器工程 SimpleCo2Sensor即气体传感器节点工程,如下图气体传感器的控制代码请参考工程 App 目录下 SimpleCo2Sensor.c4)温度传感器工程 SimpleTempSensor即温度传感器工程如下图 温度传感器节点用用控制代码可参考工程目录 App 下 SimpleTempSensor.c 文件 5)人体红外传感器节点工程 SimpleInfrared 即人体红外传感器工程,如下图 人体红外传感器节点应用控制代码可参考工程目录 App 下SimpleInfrared.c 6)超声波距离传感器节点工程 SimpleDistanceSensor 即超声波距离传感器工程,如下图超声波距离传感器节点实现代码可参考工程目录 App 下 SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。7)湿度传感器节点工程 SimpleHumiditySensor 即湿度传感器节点工程,如下图 湿度传感器应用控制代码可参考工程目录 App 下 SimpleHumiditySensor.c 文件,其湿度的测量驱动可参考温湿度传感器驱动 dht11.c 文件 8)开关传感器节点工程 SimpleSwitch 即开关传感器工程,如下图开关传感器应用控制实现代码可参考工程目录 App 下 SimpleSwitch.c 文件。4.4 平台控制操作4.4.1 启动程序 1)安装好程序后,打开 android 应用程序面板,找到图标,点击进入程序。 2)直接点击登录按钮,进入到系统主界面。第一次进入是系统会自动连接到 zigbee 网关然后去搜索 zigbee 网络,默认的 zigbee网关地址为本机 IP 地址,即 127.0.0.1。 3)如果你的zigbee 网关地址不是本机,则需要修改默认网关地址。通过按下系统菜单按键,会出现如下菜单选择设置菜单,可以设置默认的 zigbee 网关。如下图:4)设置好网关后,下次启动程序就不用再次设置了。4.4.2 搜索网络如果 zigbee网关设置好,通过菜单选择搜索网络就可以搜索 zigbee 网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论