




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.武汉华夏理工学院信息工程课程设计报告书课程名称物联网应用系统设计课程设计总评成绩学生姓名学号学生专业班级指导教师.课程设计起止日期 8.6.11 8.7.15一、课程设计项目名称基于 ZigBee 协议栈的智能家居控制灯系统二、项目设计目的及技术要求2.1 项目设计目的通过物联网应用系统设计课程设计,使学生能够掌握物联网应用系统设计的开发流程、设计方法,使学生能够综合应用无线传感器网络技术、嵌入式技术、JAVA WEB程序设计 Andriod 程序设计、物联网应用系统设计等物联网工程专业课程的知识。 要求学生经过课程设计的教学环节进一步理解物联网应用系统总体架构,掌握物联网应用系统的基本设计
2、方法,程序开发流程,从而使学生对物联网应用系统设计能力有较大提高。2.2 项目的主要任务1设计内容:课程设计题目一般由指导教师提供,也可以在老师的同意下学生自己题;4 人一组,每组完成的内容不能雷同。设计参考题目如下:1)智能家居环境监测系统2)智能家居控制灯系统3)智能农业区 - 自动灌溉系统2.基本要求:1)学会单片机的应用方法,开发环境;2)结合任务要求,完成系统设计和调试,鼓励功能扩展和创新;3)会应用 protues 工具,根据设计的电路, 画电路图,并利用 protues 进行验证仿真;4)熟悉汇编或 C51 语言,用 C51 完成系统的软件编程;5)按规范撰写课程设计说明书。3.
3、 项目分工.上位机:李永红、夏智君下位机:陈建、李元毅.4、课程设计步骤及时间进度和场地安排1)指导老师下达课程设计任务书;2)完成物联网应用系统设计;3)完成系统制作和调试;4)绘制系统框图和电路图、或程序代码;5)撰写课程设计说明书时间进度和场地安排:16 月 11 日,下达课程设计任务书, 介绍物联网应用系统设计, 查阅相关资料,确定设计方案,给团队分工合作。26 月 11 日 14 日,审查设计方案,确定自己在团队的里面要完成的任务,开始相关代码的编写及调试。3. 6 月 15 日,撰写课程设计报告书,并准备答辩。5、实验室( 423)开放时间周次星期一星期二星期三星期四星期五地点第
4、1第5-8节第5-8节第5-8节第5-8节第5-8节周实 验 室实验室 423实 验 室实 验 室实 验 室4234234234236、课程设计考核及评分标准1.设计说明书要求课程设计说明书要求逻辑清晰、层次分明、书写整洁。说明书格式包括标题 (中英文 )、提要、正文(包括设计项目要求与说明。电路原理分析。软件流程分析。调试分析。实验数据分析。答辩。成绩评定。 )、附录 (图纸 .程序清单或软盘 ) 。课程设计说明书须每人一份,独立完成。2.图纸要求系统结构框图、 protel 电路图.三、项目设计方案论证3.1 基于 ZigBee 协议栈的智能家居控制灯系统设计的整体方案对 ZigBee 协
5、议框架结构进行分析,然后通过论述协议的应用层、网络层、数据链路层、物理层和 MAC 层的功能,将无线传感器网络与 ZigBee 技术相结合, 阐述无线传感器网络节点的硬件和软件设计方法。在本设计中,选用功耗较小的 CC2530 芯片作为通信芯片来设计节点。 通过编写协议栈程序, 进行包含汇聚节点及传感器节点的组网通信实验。利用 VC+ 编写上位机程序,通过串口进行数据交互,从而控制小灯。此系统的组成框图如图 3-1 所示:发送无线模块接收块0块0模模333455e2e2eC eCbbCgC giiZZ图 3-1基于 ZigBee 协议栈的智能家居控制灯系统设计的整体方案3.2 系统实现原理3.
6、2.1 硬件原理图本实验使用的是CC2530 芯片, CC2530 具有一个 IEEE 802.15.4 兼容无线收发器。RF 内核控制模拟无线模块。另外,它提供了MCU 和无线设备之间的一个接口,这使得可以发出命令, 读取状态,自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。本系统主要涉及LED、RS485 模块、USB 转串口电路、 CC2530 典型应用电路。如下图所示:.图 3-2-1 CC2530的 LED模块图 3-2-2小灯 模块图 3-2-3 USB 转串口电路3.2.2节能灯模块本实验用的节能灯传感器为12V 供电,接通电源后节能灯亮,该节能灯可
7、以通过继电器控制其开关,通过控制四路继电器P1 的吸合与断开,控制节能灯的打开与关闭。.图 3.2.2 节能灯传感器接线说明节能灯模块信号DC12VGND-四路继电器端子电源板 + J1电源板 -P1机柜面板-IO(绿色)表 3.2 节能灯模块连线说明通信协议设计SOFSensor typeSensor indexCmd idDataExten DataEND2Byte1Byte1Byte1Byte6Byte2Byte1Byte说明:SOF:固定为 0xEE 0xCC,标志一帧的开始。Sensor type:见附表一传感器说明。Sensor index: 固定为 0x01。Cmd id :固定
8、为 0x01。Data:为 6Byte 传感器数据域,见附表一传感器说明。Exten Data:为 2Byte 扩展数据域END:固定为 0xFF,标志一帧的结束。开灯指令: EE CC 01 01 01 00 00 00 00 00 01 00 00 FF关灯指令: EE CC 01 01 01 00 00 00 00 00 00 00 00 FF3.2.3实验连线说明1.首先将节能灯模块下方的信号孔(绿色香蕉孔)与香蕉线相连。2.将 zibgee 模块下方的绿色香蕉孔 (P1_4)与风扇的香蕉线相连接。然后将红黄蓝三根信号线分别插到对应颜色的香蕉孔。Zigbee Debuger USB 仿
9、真器连接到 ZigBee模块下方的 20PIN 插孔上。.3.通过上位机软件给 ZigBee 下载本实验程序(路径:家居农业综合实训区 传感层工程 实验九 节能灯模块) ,具体下载方法详见 IAR 软件下载说明文档 。用 IARMCS-51 8.10.3 软件,打开光盘源码目录中的人体传感器工程并下载。4.将无线通讯节点的三根信号线分别接在智能网关上,设备上电(注意:红黄两根线一定要交叉!)。5.打开网关端的 SensorDemo 软件,配置好串口波特率115200 并连接。6.点击界面上的开关按键进行控制。当DATA 数据区打印 00 00 00 00 00 00 :表示关闭状态,打印00
10、00 00 00 00 01 :时表示打开状态(具体协议详见CBT 模块通讯协议 V2.5文档)。风扇上电后 ZigBee 模块上的 LED1 红灯会亮。四、软件流程分析开始开始点击上位机中的按钮终端接收是是串口发送是否等于00是否等于01协调器接收协调器广播发送节能灯灭节能灯亮终端组播发送应协调器接收答指令通过串口发送至上位机显示在上位机的编辑框中.结束4.1 硬件部分功能程序实现4.1.1终端程序voidSampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) uint16flashTime;switch ( pkt-clusterId )c
11、ase SAMPLEAPP_PERIODIC_CLUSTERID:/ 接收广播消息 HalLedBlink( HAL_LED_1, 4, 50,1000 ); if(pkt-cmd.Data0=0xEE)&(pkt-cmd.Data1=0xCC)HalLedBlink( HAL_LED_2, 4, 50, 500 );if(pkt-cmd.Data10=0x01) P1_4=0x01;HalLedBlink( HAL_LED_2, 4, 50, 500 );if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc, SAM
12、PLEAPP_FLASH_CLUSTERID, 14,xzj,&SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afStatus_SUCCESS ) if(pkt-cmd.Data10=0x00) P1_4=0x00;HalLedBlink( HAL_LED_2, 4, 50, 500 );if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc,SAMPLEAPP_FLASH_CLUSTERID, 14,xzz,&SampleApp_TransID,AF_
13、DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afStatus_SUCCESS ) HalLedBlink( HAL_LED_1, 4, 50,1000 );break;4.1.2 串口的使用经过 CC2530 芯片处理无线传输到协调器节点,串口调试助手在PC 机上显示。在 Z_Stack协议栈中,利用串口回调函数进行发送和接收。 UART 操作由 USART控制和状态寄存器 UxCSR以及 UART 控制寄存器 UxUCR 来控制。寄存器 UxBAUD 用于设置波特率,寄存器 UxBUF是 USART接收 / 传送数据缓存。uint8RX_BUFFER20; /接收缓
14、冲区;void UartCallBackFunction(uint8 port , uint8 event); / 回调函数声明,定义在最后面; Uart_Config(); / 配置串口HalUARTOpen(0 , &uartConfig); / 打开串口/*配置串口*/halUARTCfg_tuartConfig; / 定义串口配置结构体变量; void Uart_Config(void); / 函数声明;void Uart_Config(void)/ 函数定义;.uartConfig.configured= TRUE; / 允许配置;uartConfig.baudRate= HAL_U
15、ART_BR_9600;/波特率;uartConfig.flowControl= FALSE;uartConfig.flowControlThreshold= 64; /dont care - see uart driver.uartConfig.rx.maxBufSize= 128;/ 串口接收缓冲区大小uartConfig.tx.maxBufSize= 128;/ 串口发送缓冲区大小uartConfig.idleTimeout= 6;/dont care - see uart driver.uartCEnable= TRUE; /使能中断uartConfig.callBa
16、ckFunc= UartCallBackFunction; static void UartCallBackFunction(uint8 port , uint8 event)uint8 RX_Length = 0; / 接收到字符串大小;RX_Length = Hal_UART_RxBufLen(0); /读取接收字符串大小; if(RX_Length != 0)HalUARTRead(0 , RX_BUFFER , RX_Length); if(RX_BUFFER0=0xEE)&(RX_BUFFER1=0xCC) SampleApp_SendPeriodicMessage();delay_
17、ms(100); HalLedBlink( HAL_LED_1, 4, 50,500 ); 4.1.3 处理组播消息voidSampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )uint16flashTime;switch ( pkt-clusterId )case SAMPLEAPP_PERIODIC_CLUSTERID:/ 接收广播消息/ HalUARTWrite(0 ,pkt-cmd.Data,12 );/ HalLedBlink( HAL_LED_1, 4, 50,1000 );/ HalUARTWrite(0 ,pkt-cmd.Dat
18、a ,14 );break; case SAMPLEAPP_FLASH_CLUSTERID: HalLedBlink( HAL_LED_2, 2, 50,500 ); HalUARTWrite(0 , pkt-cmd.Data , 14);/ flashTime = BUILD_UINT16(pkt-cmd.Data1, pkt-cmd.Data2 );/ HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );break; 4.2 软件部分功能程序实现4.2.1 串口发送查询指令void CCMonitorList:Onon()UpdateData(
19、TRUE);/读取编辑框内容int Count=14; int j=0;int TxData14=0xee,0xcc,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff;/要发送的字符串送字符数组CByteArray array; array.SetSize(Count);for(j=0;jCount;j+)array.SetAt(j,TxDataj);/ 将字符数组型AfxMessageBox(发送数据! );m_ctrlcomm.SetOutput(COleVariant(array);/ 发送数据AfxMessageBo
20、x(发送成功! );m_state=开灯 ;.void CCMonitorList:Onoff()UpdateData(TRUE); int Count=14;/ 字符串长度int j=0; int TxData14=0xee,0xcc,0x01,0x01,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xff;/要发送的字符串送字符数组 CByteArray array;array.SetSize(Count);for(j=0;jCount;j+)array.SetAt(j,TxDataj);/ 将字符数组型AfxMessageBox(发送数据!
21、 );m_ctrlcomm.SetOutput(COleVariant(array);/ 发送数据AfxMessageBox(发送成功! );m_state= 关闭 ;4.2.2 接受应答指令void CCMonitorList:OnOnCommMscomm1()VARIANTvariant_inp; COleSafeArraysafearray_inp;LONG len,k;CString strtemp;BYTE rxdata2048; / 设置 BYTE数组if( m_ctrlcomm.GetCommEvent()=2)/ 事件值为 2 表示接收缓冲区内有字符 variant_inp=m_ctrlcomm.GetInput(); /读缓冲区safearray_inp=variant_inp; /VARIANT 变量转化为 COleSafeArray 变量 len=safearray_inp.GetOneDimSize(); / 得到有效的数据长度 for( k=0;klen;k+) safearray_inp.GetElement(&k,rxdata+k);for( k=0;klen;k+) BYTE bt=*(char*)(rxdata+k); / 字符型 strtemp.Format(%2x,bt); / 将字符送入临时变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购买果园协议书范本
- 解除经纪合同协议书范本
- 货物运输包装合同协议
- 论就业协议和劳动合同
- 资产债务移交协议书范本
- 解除合同经济补偿金协议
- 2025年大学物理基础项目试题及答案
- 2025年矿业工程专业人员实验技能测试题及答案
- 2025年历史文化研究生入学考试试卷及答案
- 2025年抗疫志愿者培训考试试题及答案总结
- 2025年中考数学二轮复习《压轴题》专项练习(一)(含答案)
- 网格员安全培训
- Environmental Biotechnology知到智慧树章节测试课后答案2024年秋哈尔滨工业大学
- 【MOOC】心理学基础-上海大学 中国大学慕课MOOC答案
- 华中师范大学教育技术学硕士研究生培养方案
- 内部审计学第3版 张庆龙 教学大纲
- 《珠三角地区环境质量与经济发展的实证探究》8800字(论文)
- 中医科医生岗位招聘面试题及回答建议(某大型央企)2025年
- 2025届上海高中高考英语三模试卷含解析
- 2025年春九年级语文下册 第三单元综合测试卷(人教陕西版)
- 吊装起重作业安全培训课件
评论
0/150
提交评论