1、装 订 线2013-2014学年第一学期 计算机 学院期末考试卷无线传感器网络技术 学号: 姓名: 班级: 物联网班 成绩:评语:(考试题目及要求) 1. 以本学期授课内容为基础,在J9-C501实验室的博创实验箱上完成如下要求:1) 由协调器创建一个网络,PANID末三位为个人学号的末三位。2) 以实验箱的1号ZigBee模块为基础,加入前述网络,完成采集温度信息的过程,并发送给协 调器;3) 抽签抽到的题号是 4 ,以实验箱上的该ZigBee模块为基础,加入前述网络,完成相 关信息的采集并发送给协调器;4) 包括上述两个ZogBee模块在内,至少组织8个ZigBee模块加入前述ZigBee
2、网络,获取各自 节点的网络地址,并发送给协调器;5) 协调器通过串口和PC上位机进行联系,将收集到的传感器信息和网络地址信息发送给上位机6) 根据各节点网络地址信息进行网络拓扑分析; 2. 以上述过程为基础,撰写课程设计论文。参考格式包含论文题目、摘要、关键字、正文和参考文 献等。正文部分包含但不限于问题分析、实现思路、核心数据结构分析、设计与调试过程中遇到的 问题及解决办法等。以上内容要求至少1500字,不得直接以代码充作文字叙述。以WORD软件的 DOC文档格式保存,文件名为个人的姓名或者学号。 2. 除上述内容外,课程设计论文另添加两部分内容:对本学期该课程学习的总结和对教师的教学建 议
3、。 3. 上述各文件,包括实验所用的工程文件和源代码文件,以EMAIL邮件附件的形式,统一发送到 任课教师信箱:suogr。 4.课程论文含本封面打印一份上交任课老师处。 目 录【题目】- 2 -一、题目要求- 2 -二、平台要求- 2 -【摘要】- 2 -【关键字】- 3 -【正文】- 3 -一、实验分析及框架设计- 3 -1、实验分析- 3 -2、逻辑框架- 4 -二、实验设计以及实验步骤- 5 -(1):协调器:- 6 -(2)终端:- 8 -三、运行调试- 11 -【实验总结】- 13 -【参考文献】- 13 -【教学建议】- 13 -【题目】 一、题目要求 1. 以本学期授课内容为基
4、础,在J9-C501实验室的博创实验箱上完成如下要求:a、由协调器创建一个网络,PANID末三位为个人学号的末三位。b、以实验箱的1号ZigBee模块为基础,加入前述网络,完成采集温度信息的过程,并发送给协调器;c、以红外对射传感器模块为基础,加入前述网络,完成相关信息的采集并发送给协调器;d、括上述两个ZogBee模块在内,至少组织8个ZigBee模块加入前述ZigBee网络,获取各自节点的网络地址,并发送给协调器;e、器通过串口和PC上位机进行联系,将收集到的传感器信息和网络地址信息发送给上位机f、各节点网络地址信息进行网络拓扑分析; 2. 以上述过程为基础,撰写课程设计论文。 3.对本学
5、期该课程学习的总结和对教师的教学建议。二、平台要求 1:PC机上安装串口助手,PC的串口与博创物联网试验箱的串口连接好; 2:CC2530上运行zigbee2007协议栈。【摘要】 本实验主要实现的是终端节点采集自己的网络地址,父节点的网络地址以及传感器的数据,发送到协调器上,协调器再通过串口与PC相连接,在PC上通过串口助手向串口发送“gantaoaddr1”可显示当前的网络地址信息,再串口上输入“duanleidata”可显示温度和湿度,在带有干簧门磁开关终端节点的当有磁性物质时,PC上的串口助手会显示“SWITCH1Warning!”;在霍尔开关开关当有磁性物质时,PC上的串口助手会显示
6、“SWITCH2Warning!”。 实验使用的数据结构的定义包括 uint8 type3; uint8 myNWK4; uint8 pNWK4; char mdata14; char ID; 终端节点采集地址信息放到myNWK4; pNWK4;里面,采集的数据信息放到mdata14;里面,自身的设备号放到ID里面。将该数据结构通过无线射频发给协调器,协调器通过对设备号的匹配,选择执行相应的函数。【关键字】 Zigbee 2007协议栈 串口 红外对射 温湿度传感器 协调器【正文】 一、实验分析及框架设计1、实验分析本实验需要实现终端节点采集地址信息和与终端节点相连接的传感器的信息发送到协调器
7、上面,协调器再将这些信息发送到串口上。2、逻辑框架 (协调器) (终端)二、实验设计以及实验步骤在Coordinator.h完成数据结构定义:typedef struct RFTXBUF uint8 type3; uint8 myNWK4; uint8 pNWK4; char mdata14; char ID; RFTX;其中的uint8 type3; 存放模块的类型uint8 myNWK4;存放模块的当前网络地址uint8 pNWK4;存放模块的父节点网络地址char mdata14;存放数据信息;char ID; 存放设备号其中的设备号ID主要是方便后面的协调器的信息处理时选择执行处理函数
8、mdata里面主要采集终端的一些数据整个数据结构包含26个字节。 (1):协调器:主要函数的定义:void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pckt ); 信息反馈函数static void rxCB(uint8 port,uint8 event); 串口的回调函数,主要实现的是当在串口输入“gantaoaddr1”时,串口显示当前的网络地址信息,当输入“duanleidata”时,串口显示温度湿度信息。主要函数分析:1:在void GenericApp_Init( byte task_id )完成串口的配置(波特率为115200
9、),设置回调函数为reXB: halUARTCfg_t uartConfig; uartConfig.configured = TRUE; uartConfig.baudRate = HAL_UART_BR_115200; uartConfig.flowControl = FALSE; uartConfig.callBackFunc = rxCB; HalUARTOpen(0,&uartConfig); 2:在UINT16 GenericApp_ProcessEvent( byte task_id, UINT16 events )函数里面,当事件为AF_INCOMING_MSG_CMD: 执行
10、GenericApp_MessageMSGCB( MSGpkt ); case AF_INCOMING_MSG_CMD: GenericApp_MessageMSGCB( MSGpkt ); break;3:在void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )函数里面,主要完成协调器对接受到的数据进行处理: A: 将从终端接受到的数据放到结构体数组nodeinfo5里面; B: 匹配设备号(温湿度的设备号ID = 1 ,干簧门磁/霍尔开关的设备号为ID = 4), 当ID = 1时,将从终端接受到的数据包的温度放到Temp7,将
11、湿度放到char Humi7; 当ID = 4时,将从终端接受的数据包的中断信息放到char ganhuang1; char huoer1; 并执行相应的动作反馈,当终端的干簧门磁检测到有磁性物质时,与协调器相连的串口上会显示“SWITCH1Warning!”; 当终端的霍尔开关检测到磁性物质时,与协调器相连的串口上会显示“SWITCH2Warning!” if(thisid - 0) = 1) for(i = 0; i 7; i+) Tempi = mybuf.mdatai; Humii = mybuf.mdatai+7; if(thisid - 0) = 4) ganhuang0 = my
12、buf.mdata0; huoer0 = mybuf.mdata 1; if(ganhuang0 - 0) = 1) HalUARTWrite(0, SWITCH1 Warning! ,19); if(ganhuang1 - 0) = 1) HalUARTWrite(0, SWITCH2 Warning! ,19); 4:在回调函数 static void rxCB(uint8 port,uint8 event)里面当在PC上在串口助手输入是“gantaoaddr1”时,串口显示当前的网络地址信息,当输入“duanleidata”时,串口显示温度湿度信息。static void rxCB(ui
13、nt8 port,uint8 event) unsigned char changeline2=0x0A,0x0D;uint8 buf11;int i;HalUARTRead(0,buf,11); if(osal_memcmp(buf,gantaoaddr1,11) / for(i=0; i5; i+) HalUARTWrite(0,nodeinfoi.type,3); HalUARTWrite(0, NWK: ,6); HalUARTWrite(0,nodeinfoi.myNWK,4); HalUARTWrite(0, pNWK: ,7); HalUARTWrite(0,nodeinfoi.
14、pNWK,4); if(osal_memcmp(buf,duanleidata,11) HalUARTWrite(0,the message is from NWK: ,25); HalUARTWrite(0,nodeinfo0.myNWK,4); HalUARTWrite(0,changeline,2); HalUARTWrite(0, Temp: ,7); HalUARTWrite(0,Temp,7); HalUARTWrite(0, Humi: ,7); HalUARTWrite(0,Humi,7); (2)终端:主要函数定义:void GenericApp_SendTheMessage
15、( void ); 发送函数void To_string(uint8 *dest, char *src, uint8 length); 字符转换void Delay(uint n); 延时void InitIrda(void); 初始化终端void LedInit(void); l ed灯的初始化RFTX rftx; 定义了一个结构体变量void GenericApp_Init( byte task_id ) 应用层初始化#pragma vector = P1INT_VECTOR 中断服务程序的申明_interrupt void P1_ISR(void);主要函数分析:1:在void Gene
16、ricApp_Init( byte task_id )完成协议栈应用层的初始化, Sht11Init( ); 完成温湿度传感器的初始化, rftx.mdata0 = 0; 初始化数据包的第一个字节为0; rftx.mdata1 = 0; 初始化数据包的第二个字节为0; LedInit(); 完成LED灯初始化。 2:在UINT16 GenericApp_ProcessEvent( byte task_id, UINT16 events )里面,当终端节点的网络状态,及连接上协调器后,周期(1s一次)会执行GenericApp_SendTheMessage();函数。if(GenericApp_
17、NwkState=DEV_ROUTER)|(GenericApp_NwkState=DEV_END_DEVICE)osal_start_timerEx(GenericApp_TaskID, GENERICAPP_SEND_MSG_EVT, GENERICAPP_SEND_MSG_TIMEOUT ); if ( events & GENERICAPP_SEND_MSG_EVT ) / Send the message GenericApp_SendTheMessage(); osal_start_timerEx( GenericApp_TaskID, GENERICAPP_SEND_MSG_EV
18、T, GENERICAPP_SEND_MSG_TIMEOUT ); return (events GENERICAPP_SEND_MSG_EVT); 3:在void GenericApp_SendTheMessage( void )函数里面,会采集终端节点当前的网络号和父节点的网络号, 如果是温湿度传感器还会采集温湿度,也有干簧门磁/霍尔开关的中断信息,采集好后放到结构体变量rftx中,发送到协调器。void GenericApp_SendTheMessage( void ) /RFTX rftx; uint16 nwk; int i; /*/* 实现霍尔开关和干簧门磁开关中断信息的采集/*
19、InitIrda( ); for(i = 0; i 0) /中断 P1IFG &= (0x0c); Delay(1000); LED1 = !LED1; rftx.mdata0 = 1; if(P1IFG&0X04) 0) P1IFG &= (0x0c); Delay(1000); rftx.mdata1 = 1; LED1 = !LED1; if(P1IFG&0X08) 0) rftx.mdata1 = 0; P1IF = 0; /清中断标志三、运行调试Zigbee建网成功后,在串口助手输入 “gantaoaddr1”,会在串口助手上显示 当前的网络地址信息在串口助手上输入“duanleid
20、ata”,会在串口上显示温度和湿度当干簧门磁开关检测到磁性物质时,串口会显示 “SWITCH1Warning”;当霍尔开关检测到磁性物质时,串口会显示 “SWITCH2Warning”。 整体效果如下: 【实验总结】在本次实验中,以小组形式(段磊和甘涛),调试运行程序,在本次实验中通过对协调器和终端分别设计,组建网络号为1106的网络,以796F,7970,7971,7972,7973作为网络子节点号。在调试运行程序过程中,在获取网络子节点的基础之上,经过本次实验最终对于终端模块及协调器模块的调试,最终完成在终端中通过“gantaoaddr1”命令可以在zigbee网络获取本实验箱五个网络子节
21、点号,通过“duanleidata”命令可以获取1号模块的温湿度信息,在第4个终端,当干簧门磁开关检测到磁性物质时,串口会显示 “SWITCH1Warning”;当霍尔开关检测到磁性物质时,串口会显示 “SWITCH2Warning”。经验总结:1:要完成多个终端与协调器通信,特别是要完成协调器收集终端传感器发送上来的数据,完成不同的处理,可以采用通过设备号标示的方法,吧每个终端节点标示一个设备号ID,再在协调器上匹配设备号,完成相应的处理函数,要完成这一点就需要在整个实验的框架设计时,定义好自己数据包的数据结构,同时在开发中多注意模块化开发,制定统一的标准,方便以后添加硬件。2:在协调器筛选出信息,在串口助手上可以打印数据包(即定义的数据结构),来查看信息是否符合自己的设计和调试查错。【参考文献】 李文仲 Zigbee 无线网络技术入门与实战 北京航天航空大学出版社 【教学建议】 索老师这样的教学模式(在实验室讲解理论,后开展相应的实验)很好,这样我们可以比较深刻的理解教学内容。我觉得应该多配合实验室做一些理论知识的讲解那就更好了。word文档 可自由复制编辑
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922