中南大学刘伟荣物联网-《无线传感器网络》实验报告 - 图文

更新时间:2024-03-09 08:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中南大学

信息科学与工程学院 物联网无线传感器网络 实验报告

班 级: 物联网 学 号: 姓 名:

指导老师: 刘伟荣 实验时间: 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 -

- 1 -

实验一 基础实验(LED实验)

1.1实验目的

? 通过 I/O控制小灯闪烁的过程。

? 在 ZX2530A 型 CC2530 节点板上运行自己的程序。

1.2实验设备及工具

? 硬件:ZX2530A 型底板及CC2530 节点板一块,USB 接口仿真器,PC 机

? 软件: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 同理) :

- 2 -

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。

- 3 -

程序源码 //引入头文件 #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; j<10000; j++) ; } void main(void) { P1SEL = 0x00; //设置P1 为普通 I/O 口 P1DIR |= 0x05; //设置P1.0 P1.2 为输出 led1 = 1; //初始化,2 个led灯全熄 led2 = 1; while(1) //开始循环 - 4 -

{ led1 = 0; //led1 闪烁 Delay(10); led1 = 1; Delay(10); led2 = 0; //led2 闪烁 Delay(10); led2 = 1; Delay(10); } 1.4 实验步骤及结果

1.4.1 正确连接下载线和 ZX2530A 型 CC2530 节点板,打开 ZX2530A 型 CC2530 节点板电源。

1.4.2 在文件夹“基础实验\\2 LED”下打开工程 led,编译工程,并下载到 CC2530 节点板。 1.4.3 观察LED 的闪烁情况。

1.4.4 修改延时函数,可以改变 LED 小灯的闪烁间隔时间。

1.4.5 重新编译,并下载程序到 CC2530 节点板,观察 LED 的闪烁情况。

- 5 -

实验二 射频实验

2.1 实验目的

? 在 ZX2530A 型 CC2530 节点板上运行相应实验程序。 ? 熟悉通过射频通信的基本方法。 ? 练习使用状态机实现收发功能。

2.2 实验内容

接收节点上电后进行初始化,然后通过指令 ISRXON 开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据

- 6 -

输出到 TXFIFO 中,再调用指令 ISTXONCCA 通过射频前端发送数据。

2.3 实验设备及工具

? 硬件:ZX2530A 型 CC2530 节点板2 块、USB 接口的仿真器,PC 机Pentium100 以上。

? 软件:PC 机操作系统 WinXP、IAR 集成开发环境、串口监控程序。

2.4 实验原理

发送节点通过串口接收用户的输入数据然后通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后, 通过串口发送到 pc 在串口调试助手中显示出来。如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。以下为发送节点程序流程图:

- 7 -

以下为接收节点流程图

2.5 实验步骤

2.5.1打开光盘“无线射频实验\\2.点对点通信”双击 p2p.eww打开本实验工程文件。

2.5.2打开 main.c 文件下面对一些定义进行介绍 RF_CHANNEL 此宏定义了无线射频通信时使用的信道,在多个小组同时进行实验是建议每组选择不同时信道。但同一组实验中两个节点需要保证在同一信道,才能正确通信。 PAN_ID 个域网 ID 标示,用来表示不同在网

- 8 -

络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。 SEND_ADDR 发送节点的地址 RECV_ADDR 接收节点的地址

NODE_TYPE 节点类型:0接收节点,1:发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。

2.5.3 修改 NODE_TYPE 的值为 0,并编译下载到节点板。此节以下称为接收节点。

2.5.4 修改 NODE_TYPE 的值为 1,并编译下载到另外一个节点板。此节点板以下称为发送节点。

2.5.5 将接收节点的串口与 pc 的串口相连,并在 pc 端打开串口调试助手,配置波特率为 115200。

2.5.6 先将接收节点上电,然后将发送节点上电。 2.5.7 从串口调试助手观察接收节点收到的数据。

2.5.8 修改发送数据的内容, 然后编译并下载程序到发送节点, 然后从串口调试助手观察收到的数据。

2.5.9 修改接收节点的地址, 然后重新编译并下载程序到接收节点, 然后从发送节点发送数据观察接收节点能否正确接收数据。

2.6 实验数据分析及结论

发送节点将数据发送出去后,接收节点接收到数据,并通过串口

- 9 -

调试助手打印输出。发送数据的最大长度为 125 (加上发送的数据长度和校验,实际发送的数据长度为 128 字节) 。

实验三 Zstack组网实验

3.1 实验目的

? 理解 zigbee 协议及相关知识。

? 在 ZX2530A 型 CC2530 节点板上实现自组织的组 ? 在 ZStack 协议栈中实现单播通信。

3.2 实验内容

先启动协调器节点,协调器节点上电后进行组网操作,再启动路

- 10 -

由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点 ID 封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给 PC,从PC 上的串口监控程序查看组网情况。 发送数据格式为(16 进制):

FF 源节点(16bit)父节点(16bit) 节点编号 ID(8bit) 例如FF 4B 00 00 00 01,表示01 号节点的网络地址为 004B,发送数据到父节点,其网络地址为 00 00(协调器)。

3.3 预备知识

3.3.1 了解 CC2530 应用程序的框架结构。 3.3.2 了解并安装 zstack 协议栈。 3.3.3 了解 ZigBee 协议进行组网的过程。

3.4 实验设备及工具

? 硬件:DZ2530 型CC2530节点板、USB接口的仿真器,PC机 Pentium100 以上。

? 软件:PC 机操作系统 WinXP、IAR 集成开发环境、ZTOOL 程序。

3.5 实验原理

程序执行的流程图如图 5-4 所示,在进行一系列的初始化操作后程序就进入事件轮询 状态。

对于终端节点,若没有事件发生且定义了编译选项 POWER_SAVING,

- 11 -

则节点进入休眠状态。

协调器是 Zigbee 三种设备中最重要的一种。它负责网络的建立,包括信道选择,确定唯一的PAN 地址并把信息向网络中广播,为加入网络的路由器和终端设备分配地址,维护路由表等。Z-Stack 中打开编译选项 ZDO_COORDINATOR,也就是在 IAR 开发环境中选择协调器,然后编译出的文件就能启动协调器。具体工作流程是:操作系统初始化函数osal_start_system调用DAppInit 初始化函数,ZDAppInit 调用ZDOInitDevice函数,ZDOInitDevice 调用 ZDApp_NetworkInit 函数,在此函数中设置ZDO_NETWORK_INIT事件,在 ZDApp_event_loop任务中对其进行处理。由 第 一 步 先 调 用 ZDO_StartDevice 启动网络中的设备,再调用

NLME_NetworkFormationRequest 函数进行组网,这一部分涉及网络层细节,无法看到源代码,在库中处理。

ZDO_NetworkFormationConfirmCB 和 nwk_Status 函数有申请结果的处理。如果成功则 ZDO_NetworkFormationConfirmCB 先执行,不成功则 nwk_Status 先执行。接着,在

ZDO_NetworkFormationConfirmCB 函数中会设置ZDO_NETWORK_START 事件。由于第三步,ZDApp_event_loop 任务中会处理

ZDO_NETWORK_START 事件,调用 ZDApp_NetworkStartEvt函数, 此函数会返回申请的结果。如果不成功能量阈值会按 ENERGY_SCAN_INCREMENT 增加,并将 App_event_loop 任务中的事件 ID 置为 ZDO_NETWORK_INIT 然后跳回第二步执行;如果成功则设

- 12 -

置 ZDO_STATE_CHANGE_EVT 事件让 ZDApp_event_loop 任务处理。 对 于 终 端 或 路 由 节 点 , 调 用 ZDO_StartDevice 后 将 调 用 函 数 NLME_NetworkDiscoveryRequest 进行信道扫描启动发现网络的过程,这一部分涉及网络层 细节,无法看到源代码,在库中处理,NLME_NetworkDiscoveryRequest 函 数 执 行 的 结 果 将 会 返 回 到 函 数ZDO_NetworkDiscoveryConfirmCB 中,该函数将会返回选择的网络,并设置 事件 ZDO_NWK_DISC_CNF ,在 ZDApp_ProcessOSALMsg 中对该事件进行处理,调用 NLME_JoinRequest 加入指定的网络, 若加入失败, 则重新初始化网络, 若加入成功则调用 ZDApp_ProcessNetworkJoin 函数设置 ZDO_STATE_CHANGE_EVT,在对该事件的处理过程 中将调用 ZDO_UpdateNwkStatus 函数,此函数会向用户自定义任务发送事件 ZDO_STATE_CHANGE 。

本实验在 Zstack 的事例代码 simpleApp 修改而来。首先介绍任务初始化的概念,由于自定义任务需要确定对应的端点和簇等信息,并且将这些信息在 AF 层中注册, 所以每个任务都要初始化然后才会进入 OSAL 系统循环。在 Z-Stack 流程图中,上层的初始 化集中在 OSAL 初始化(osal_init_system)函数中。包括了存储空间、定时器、电源管理和 各任务初始化。其中用户任务初始化的流程如下:

- 13 -

任务 ID(taskID)的分配是 OSAL 要求的,为后续调用事件函数、定时器函数提供了参数。

网络状态在启动的时候需要指定,之后才能触发 ZDO_STATE_CHANGE 事件,确定设备的类型。目的地址分配包括寻址方式,端点号和地址的指定,本实验中数据的发送使用单播方式。之后设置应用对象的属性,这是非常关键的。由于涉及很多参数,Z-Stack 专门设计了SimpleDescriptionFormat_t 这一结构来方便设置,其中的成员如下:

EndPoint,该节点应用的端点,值在 1-240 之间,用来接收数据。 AppProfId, 该域是确定这个端点支持的应用 profile 标识符, 从 Zigbee 联盟获取具体的 标识符。

AppNumInClusters,指示这个端点所支持的输入簇的数目。

- 14 -

pAppInClusterList,指向输入簇标识符列表的指针。 AppNumOutClusters,指示这个端点所支持的输出簇的数目。 pAppOutClusterList,指向输出簇标识符列表的指针。 本实验profile 标识符采用默认设置, 输入输出簇设置为相同 MY_PROFILE_ID, 设 置完成后,调用 afRegister 函数将应用信息在 AF 层中注册,使设备知晓该应用的存在,初 始化完毕。一旦初始化完成,在进入 OSAL 轮询后 zb_HandleOsalEvent 一有事件被触发, 就会得到及时的处理。事件号是一个以宏定义描述的数字。系统事件(SYS_EVENT_MSG)是强制的,其中包括了几个子事件的处理。ZDO_CB_MSG 事件是处理 ZDO 的响应,KEY_CHANGE 事件 处理按键(针对 TI 官方的开发板) , AF_DATA_CONFIRM_CMD 则是作为发送一个数据包 后的确认, AF_INCOMING_MSG_CMD 是接收到一个数据包会产生的事件,协调器在收到 该事件后调用函数 p2p_test_MessageMSGCB,将接收到的数据通过 HalUARTWrite 向串口 打印输出。ZDO_STATE_CHANGE 和网络状态的改变相关在此事件中若为终端或路由节点 则发送用户自定义的数据帧:FF 源节点短地址(16bit,调用NLME_GetShortAddr()获得)、父节点短地址(16bit,调用 NLME_GetCoordShortAddr())、节点编号 ID(8bit,为长地址的最低字节,调用 NLME_GetExtAddr() 获得,在启动节点前应先用 RF Programmer 将非 0XFFFFFFFFFFFFFFFF 的长地址写到 CC2530 芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。终端和路由节点在用户自定义的事件 MY_REPORT_EVT中 发 送

- 15 -

数 据 并 启 动 定 时 器 来 触 发 下 一 次 的MY_REPORT_EVT 事件, 实现周期性的发送数据(发送数据的周期由宏定义 REPORT_DELAY 确定) 。

3.6 实验步骤及结果

3.6.1打开工程文件夹协议栈实验\\2.多点自组网\\Projects\\zstack\\Samples\\SimpleApp\\CC2530DB下的工程文件 SimpleApp.eww。 3.6.2 选择工程

编译,生成协

调器代码, 并下载到 ZX2530A开发板。此节点为协调器节点。 3.6.3 选择工程

编译,生成终

端节点代码,并下载到 ZX2530开发板。此节点为终端节点。

3.6.4 选择工程编译, 生成

路由器节点代码,并下载到 ZX2530开发板,此节点为路由器节点。 3.6.5 用串口线将协调器节点与 pc 连接起来,在 pc 端打开 ZTOOL 程序。(ZTOOL 程序在 zstack 安装后自动安装) 3.6.6 开启ZX2530A 型 CC2530 节点板电源。 3.6.7 在ZTOOL 程序中观察组网结果。

- 16 -

3.7 实验数据分析及结论

由接收数据的 DebugString 可以看出图中有两个节点加入了网了,其中一个节点的 DEVID 是21,网络地址:4f07,父节点地址是 0 即协调器。另外一个节点的 DEVID是 11,网络地址:A6F7,父节点地址是 4f07 即上一节点。

实验四 综合实验(传感器网络)

3G 智能物联网综合系统工作框架如下:

- 17 -

4.1 智能网关程序设计

智能网关程序是连接 android 系统与 zigbee 无线网络的桥梁,运行在 android 系统服务层,智能网关程序同过 3G、Wifi 或以太网与Android 用户控制程序相连,然后将用户控制程序发过来的指令通过串口发给 zigbee 网络协调器,Zigbee 网络协调器解析相应的指令然后发给各个传感器节点实现控制。 智能网关程序流程如下

- 18 -

4.2 Android 用户控制程序设计

4.2.1 Android 用户控制程序框架

用户控制程序运行于 android 系统应用层,采用 JAVA 开发。用户控制程序通过接收用户的输入操作,生成相应的控制指令然后通过 3G、wifi 或以太网发送到智能网关系统。同时,用户控制程序还接收智能网关程序发送过来的告警指令,并生成相应的告警信息,产生

- 19 -

告警。

Android 用户控制程序框架如下:

下面以 Zigbee 网络拓扑结构生成模块,和温度传感器控制模块为例介绍其实现,其它模块类同可参考源代码。

当用户第一次打开程序,或是从菜单中选择搜索的时候,Zigbee 网络 TOP图生成模块首先检查网络连接,当网络正常连接到 Zigbee 智能网关后,首先发送获取协调器节点信息指令,获取到协调器节点信息。之后将协调器节点通过绘图子程序在屏幕上把协调器显示出来。相关实现代码在 ZbThread.java,下面进行初步讲解具体见源码。 获取协调器节点信息

byte[] ninfo = mProx.syncRequestSYS_APP_MSG( 2, new byte[] { (byte) (0>>8), (byte) 0, //addr 0x00, 0x01, // cmd

0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 });

当 syncRequestSYS_APP_MSG 返回后,如果 ninfo!=null,则 ninfo 中保存获取到的协调器信息,否则获取协调器信息失败,

- 20 -

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; i

byte[] ninfo = mProx.syncRequestSYS_APP_MSG( 2, new byte[] { (byte) (cli[i]>>8), (byte) cli[i], //addr 0x00, 0x01, // cmd 0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 }); if (ninfo==null || ninfo.length<29) { Log.d(TAG, \ continue; } int tmp, off=0; tmp = Tool.builduInt(ninfo[off], ninfo[off+1]); // addr if (tmp != cli[i]) { Log.d(TAG, \ continue; } off += 2; tmp = Tool.builduInt(ninfo[off], ninfo[off+1]); //cmd if (tmp != 0x8001) { Log.d(TAG, \ continue; } off += 2; - 22 -

if (ninfo[off] != 0) { //read status Log.d(TAG, \ continue; } off += 1; Node nd = new Node(cli[i], Node.ZB_NODE_TYPE_ENDDEVICE); int[] childs = {}; while (off < ninfo.length) { tmp = Tool.builduInt(ninfo[off], ninfo[off+1]); off += 2; switch (tmp) { case 0x0001: // hard ver nd.mHardVer = Tool.builduInt(ninfo[off], ninfo[off+1]); off += 2; break; case 0x0002: nd.mSoftVer = Tool.builduInt(ninfo[off], ninfo[off+1]); off += 2; break; case 0x0005: nd.mDevType = ninfo[off]; - 23 -

off += 1; break; case 0x0014: for (int j=0; j<8; j++) { nd.mIEEEAddr[j] = ninfo[off+j]; } off += 8; break; case 0x0015: int assocCnt = ninfo[off]; off += 1; break; case 0x0014: for (int j=0; j<8; j++) { nd.mIEEEAddr[j] = ninfo[off+j]; } off += 8; break; case 0x0015: int assocCnt = ninfo[off]; - 24 -

off += 1; if (assocCnt != 0) { nd.mNodeType = Node.ZB_NODE_TYPE_ROUTER; int[] nli = new int[assocCnt]; for (int j=0; j

} 4.2.2 Android 用户控制程序编译与安装

要编译 Android 用户控制程序,先必须在 PC 上搭建好 Android 应用程序开发环境,具体搭建方法参考“精盛手机平台开发光盘\\02_Documents\\Andoird 应用开发实验指导书.pdf” 。

1)将“物联网光盘\\综合实验\\Android 用户控制程序”复制到本地磁盘。

2)打开 eclipse 选择“File -> New -> Android Project”出现如下对话框

- 26 -

其中红线标示出来是要填充的:Location:指定 Android 用户控制程序源代码的存放位置。填写好后点击“Finish”按钮。建立工程后工程结构如下图:

- 27 -

3) 选择菜单“Project”确保Build Automaticall 被选中,如下图:

4) 选择菜单“Project -> Clean?”出现如下对话框

- 28 -

点击“Ok”按钮

5) 点击 eclipse 上的运行按钮序了,第一次运行程序会出现

如下对话框,请选择 Android Application。然后点击“OK”按钮。

就可以在模拟器上运行程

6)如果在执行第 5 步时,将物联网网关实验箱与 pc 用 usb 连接起来了,那么程序将会自动

下载到实验箱上。就可以在实验箱上运行程序了

- 29 -

4.3 Zigbee 节点控制程序设计

Zigbee 节点控制程序运行在每个传感器节点上,根据不同的传感器类型,设计不同的传感器控制程序。所有节点控制程序都是基于 Zstack 协议栈的,并且都是在 SampleApp 的基础上修改而 来。 下面对各个传感器工程进行介绍:先将“物联网光盘\\综合实验\\Zigbee 节点控制程序”复制到本地磁盘。

打开工程文件“Projects\\zstack\\Samples\\SimpleApp\\CC2530DB\\ SimpleApp.eww” 1) 协调器节点工程

SimpleCoordinator即协调器工程,如下图

协调器的应用功能代码实现文件是 SimpleCoordinator.c 在工程文件夹 App 目录下具体实现可参考源码。按下键盘上的 F7 即个编译协调器工程,编译好之后可将代码下载到协调器节点板。 2) 继电器节点工程

SimpleLight即继电器节点工程,如下图

- 30 -

程序中实现了一个继电器的控制, 具体实现代码可参考源文件工

程目录 App 下 SimpleLight.C

3) 气体传感器工程

SimpleCo2Sensor即气体传感器节点工程,如下图

气体传感器的控制代码请参考工程 App 目录下 SimpleCo2Sensor.c 4)温度传感器工程

SimpleTempSensor即温度传感器工程如下图

- 31 -

温度传感器节点用用控制代码可参考工程目录 App 下 SimpleTempSensor.c 文件

5)人体红外传感器节点工程

SimpleInfrared 即人体红外传感器工程,如下图

人体红外传感器节点应用控制代码可参考工程目录 App 下SimpleInfrared.c

6)超声波距离传感器节点工程

SimpleDistanceSensor 即超声波距离传感器工程,如下图

- 32 -

超声波距离传感器节点实现代码可参考工程目录 App 下 SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。

7)湿度传感器节点工程

SimpleHumiditySensor 即湿度传感器节点工程,如下图

湿度传感器应用控制代码可参考工程目录 App 下

SimpleHumiditySensor.c 文件,其湿度的测量驱动可参考温湿度传感器驱动 dht11.c 文件 8)开关传感器节点工程

SimpleSwitch 即开关传感器工程,如下图

- 33 -

开关传感器应用控制实现代码可参考工程目录 App 下 SimpleSwitch.c 文件。

4.4 平台控制操作

4.4.1 启动程序

1)安装好程序后,打开 android 应用程序面板,找到图标

,点击进入程序。

2)直接点击登录按钮,进入到系统主界面。第一次进入是系统会自动连接到 zigbee 网关然后去搜索 zigbee 网络,默认的 zigbee网关地址为本机 IP 地址,即 127.0.0.1。

3)如果你的zigbee 网关地址不是本机,则需要修改默认网关地址。通过按下系统‘菜单’按键,会出现如下菜单

选择‘设置’菜单,可以设置默认的 zigbee 网关。如下图:

- 34 -

4)设置好网关后,下次启动程序就不用再次设置了。 4.4.2 搜索网络

如果 zigbee网关设置好,通过菜单选择‘搜索网络’就可以搜索 zigbee 网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确连接。如果 zigbee 网络上还有其它节点,可以在网络 TOP 图上一起显示出来。如下,是一个zigbee 网络TOP 图:

图中共有 7 个节点,其中最上面那个是协调器节点,其它为传感器节点,其中地址为 58229的灯光设备带有路由功能,属路由器节点,

- 35 -

它下面有两个子节点,分别为人体传感器和温度传感器。 4.4.3 传感器节点操作

通过搜索到的 zigbee 网络 TOP 图,可以了解整个 zigbee 网络的节点分布情况。通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。

下图为温度传感器的监控界面:

- 36 -

本文来源:https://www.bwwdw.com/article/383a.html

Top