版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--优质-武汉华夏理工学院信息工程课程设计报告书课程名称 物联网应用系统设计课程设计总评成绩 学生姓名 学号 学生专业班级指导教师姓名 课程设计起止日期2078・6・11~2078.7.15一、课程设计项目名称基于ZigBee协议栈的智能家居控制灯系统二、项目设计目的及技术要求.1项目设计目的通过《物联网应用系统设计》课程设计,使学生能够掌握物联网应用系统设计的开发流程、设计方法,使学生能够综合应用《无线传感器网络技术》、《嵌人式技术》、《JAVAWEB程序设计》《Andriod程序设计》、《物联网应用系统设计》等物联网工程专业课程的知识。要求学生经过课程设计的教学环节进一步理解物联网应用系统总体架构,掌握物联网应用系统的基本设计方法,程序开发流程,从而使学生对物联网应用系统设计能力有较大提高。.2项目的主要任务1.设计内容:课程设计题目一般由指导教师提供,也可以在老师的同意下学生自己题;4人一组,每组完成的内容不能雷同。设计参考题目如下:1)智能家居环境监测系统2)智能家居控制灯系统3)智能农业区-自动灌溉系统.基本要求:1)学会单片机的应用方法,开发环境;2)结合任务要求,完成系统设计和调试,鼓励功能扩展和创新;3)会应用protues工具,根据设计的电路,画电路图,并利用protues进行验证仿真;4)熟悉汇编或C51语言,用C51完成系统的软件编程;5)按规范撰写课程设计说明书。.项目分工上位机:李永红、夏智君下位机:陈建、李元毅优质优质 -优质 4、课程设计步骤及时间进度和场地安排1)指导老师下达课程设计任务书;2)完成物联网应用系统设计;3)完成系统制作和调试;4)绘制系统框图和电路图、或程序代码;5)撰写课程设计说明书时间进度和场地安排:1.6月11日,下达课程设计任务书,介绍物联网应用系统设计,查阅相关资料,确定设计方案,给团队分工合作。6月11日—14日,审查设计方案,确定自己在团队的里面要完成的任务,开始相关代码的编写及调试。6月15日,撰写课程设计报告书,并准备答辩。5、实验室(423)开放时间周次地点、星期一星期二星期三星期四星期五第1周第5-8节第5-8节第5-8节第5-8节第5-8节实验室423实验室423实验室423实验室423实验室4236、课程设计考核及评分标准.设计说明书要求课程设计说明书要求逻辑清晰、层次分明、书写整洁。说明书格式包括标题(中英文)、提要、正文(包括①设计项目要求与说明。②电路原理分析。③软件流程分析。④调试分析。⑤实验数据分析。⑥答辩。⑦成绩评定。人附录(图纸.程序清单或软盘)。课程设计说明书须每人一份,独立完成。.图纸要求系统结构框图、protel电路图
三、项目设计方案论证基于ZigBee协议栈的智能家居控制灯系统设计的整体方案对ZigBee协议框架结构进行分析,然后通过论述协议的应用层、网络层、数据链路层、物理层和MAC层的功能,将无线传感器网络与ZigBee技术相结合,阐述无线传感器网络节点的硬件和软件设计方法。在本设计中,选用功耗较小的CC2530芯片作为通信芯片来设计节点。通过编写协议栈程序,进行包含汇聚节点及传感器节点的组网通信实验。利用VC++编写上位机程序,通过串口进行数据交互,从而控制小灯。此系统的组成框图如图3-1所示:图3-1基于ZigBee协议栈的智能家居控制灯系统设计的整体方案系统实现原理硬件原理图本实验使用的是CC2530芯片,CC2530具有一个IEEE802.15.4兼容无线收发器。RF内核控制模拟无线模块。另外,它提供了MCU和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。本系统主要涉及LED、RS485模块、USB转串口电路、CC2530典型应用电路。如下图所示:
图3-2-1CC2530的LED模块2dJi值17PL23QJ242121图3-2-2小灯模块:MpF祚图3-2-1CC2530的LED模块2dJi值17PL23QJ242121图3-2-2小灯模块:MpF祚~l|岫1中I叫同I叫.IQ上图3-2-3USB转串口电路节能灯模块本实验用的节能灯传感器为12V供电,接通电源后节能灯亮,该节能灯可以通过继电器控制其开关,通过控制四路继电器P1的吸合与断开,控制节能灯的打开与关闭。图3.2.2图3.2.2节能灯传感器优质优质'='= -优质 接线说明节能灯模块信号DC12VGND四路继电器端子电源板+J1电源板-P1机柜面板IO(绿色)表3.2节能灯模块连线说明通信协议设计SOFSensortypeSensorindexCmdidDataExtenDataEND2Byte1Byte1Byte1Byte6Byte2Byte1Byte说明:SOF: 固定为0xEE0xCC,标志一帧的开始。Sensortype: 见附表一传感器说明。Sensorindex: 固定为0x01。Cmdid: 固定为0x01。Data: 为6Byte传感器数据域,见附表一传感器说明。ExtenData:为2Byte扩展数据域END: 固定为0xFF,标志一帧的结束。开灯指令:EECC0101010000000000010000FF关灯指令:EECC0101010000000000000000FF实验连线说明.首先将节能灯模块下方的信号孔(绿色香蕉孔)与香蕉线相连。.将zibgee模块下方的绿色香蕉孔俨1_4)与风扇的香蕉线相连接。然后将红黄蓝三根信号线分别插到对应颜色的香蕉孔。ZigbeeDebugerUSB仿真器连接到218300模块下方的20PIN插孔上。.通过上位机软件给ZigBee下载本实验程序(路径:家居农业综合实训区\传感层工程\实验九节能灯模块),具体下载方法详见《IAR软件下载说明文档》。用IARMCS-518.10.3软件,打开光盘源码目录中的人体传感器工程并下载。.将无线通讯节点的三根信号线分别接在智能网关上,设备上电(注意:红黄两根线一定要交叉!)。.打开网关端的SensorDemo软件,配置好串口波特率115200并连接。.点击界面上的开关按键进行控制。当DATA数据区打印000000000000:表示关闭状态,打印000000000001:时表示打开状态(具体协议详见《CBT模块通讯协议丫2.5》文档)。风扇上电后ZigBee模块上的LED1红灯会亮。
四、软件流程分析4.1硬件部分功能程序实现4.1.1终端程序voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){uint16flashTime;switch(pkt->clusterId){caseSAMPLEAPP_PERIODIC_CLUSTERID:〃接收广播消息HalLedBlink(HAL_LED_1,4,50,1000);if((pkt->cmd.Data[0]==0xEE)&&(pkt->cmd.Data[1]==0xCC)){HalLedBlink(HAL_LED_2,4,50,500);if(pkt->cmd.Data[10]==0x01){P1_4=0x01;HalLedBlink(HAL_LED_2,4,50,500);if(AF_DataRequest(&SampleApp_Flash_DstAddr;&SampleApp_epDesc,
SAMPLEAPP_FLASH_CLUSTERID,14,xzj,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADlUs)==afStatus_SUCCESS){}}if(pkt->cmd.bata[10]==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_DISCV_ROUTE,AF_DEFAULT_RADIUS)==afStatus_SUCCESS){}}Hal_edBlink(HAL_LeD_1,4,50,1000);}break;4.1.2串口的使用经过CC2530芯片处理无线传输到协调器节点,串口调试助手在PC机上显示。在Z_Stack协议栈中,利用串口回调函数进行发送和接收。UART操作由USART控制和状态寄存器UxCSR以及UART控制寄存器UxUCR来控制。寄存器UxBAUD用于设置波特率,寄存器UxBUF是USART接收/传送数据缓存。uint8RX_BUFFER[20];//接收缓冲区;voidUartCallBackFunction(uint8port,uint8event);//回调函数声明,定义在最后面;Uart_Config();//配置串口HalUARTOpen(0,&uartConfig);//打开串口/*配置串口*/halUARTCfg_tuartConfig;〃定义串口配置结构体变量;voidUart_Config(void);〃函数声明;voidUart_Config(void)〃函数定义;{uartConfig.configureduartConfig.baudRateuartConfig.flowControl=TRUE;〃允许配置;uartConfig.configureduartConfig.baudRateuartConfig.flowControl=HAL_UART_BR_9600;//波特率;=FALSE;uartConfig.flowControlThreshold=64;uartConfig.rx.maxBufSizeuartConfig.tx.maxBufSizeuartConfig.idleTimeoutuartCEnableuartConfig.callBackFunc=128;=128;uartConfig.flowControlThreshold=64;uartConfig.rx.maxBufSizeuartConfig.tx.maxBufSizeuartConfig.idleTimeoutuartCEnableuartConfig.callBackFunc=128;=128;=6;//don'tcare-seeuartdriver.//串口接收缓冲区大小//串口发送缓冲区大小//don'tcare-seeuartdriver.=TRUE;〃使能中断=UartCallBackFunction;}staticvoidUartCallBackFunction(uint8port,uint8event){uint8RX_Length=0;//接收到字符串大小;RX_Length=Hal_UART_RxBufLen(0);〃读取接收字符串大小;if(RX_Length!=0){HalUARTRead(0,RX_BUFFER,RX_Length);if((RX_BUFFER[0]==0xEE)&&(RX_BUFFER[1]==0xCC)){SampleApp_SendPeriodicMessage();delay_ms(100);HalLedBlink(HAL_LED_1,4,50,500);}}}4.1.3处理组播消息优质优质 优质-voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){uint16flashTime;switch(pkt->clusterId){caseSAMPLEAPP_PERIODIC_CLUSTERID:〃接收广播消息//HalUARTWrite(0,pkt->cmd.Data,12);//HalLedBlink(HAL_LED_1,4,50,1000);//HalUARTWrite(0,pkt->cmd.Data,14);break;caseSAMPLEAPP_FLASH_CLUSTERID:HalLedBlink(HaL_LED_2,2,50,500);HalUARTWrite(0,pkt->cmd.Data,14);//flashTime=BUILD_UINT16(pkt->cmd.Data[1],pkt->cmd.Data[2]);//HalLedBlink(HAL_LED_4,4,50,(flashTime/4));break;}}4.2软件部分功能程序实现串口发送查询指令voidCCMonitorList::Onon(){UpdateData(TRUE);//读取编辑框内容intCount=14;intj=0;intTxData[14]={0xee,0xcc,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff};//要发送的字符串送字符数组CByteArrayarray;array.SetSize(Count);for(j=0;j<Count;j++)array.SetAt(j,TxData[j]);//将字符数组型AfxMessageBox("发送数据!");m_ctrlcomm.SetOutput(COleVariant(array));//发送数据AfxMessageBox("发送成功!");m_state="开灯”;}voidCCMonitorList::Onoff(){UpdateData(TRUE);intCount=14;//字符串长度intj=0;intTxData[14]={0xee,0xcc,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff};//要发送的字符串送字符数组CByteArrayarray;array.SetSize(Count);for(j=0;j<Count;j++)array.SetAt(j,TxData[j]);//将字符数组型AfxMessageBox("发送数据!");m_ctrlcomm.SetOutput(COleVariant(array));//发送数据AfxMessageBox("发送成功!");m_state="关闭”;}接受应答指令voidCCMonitorList::OnOnCommMscomm1(){VARIANTvariant_inp;COleSafeArraysafearray_inp;LONGlen,k;CStringstrtemp;BYTErxdata[2048];〃设置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;k<len;k++){safearray_inp.GetElement(&k,rxdata+k);}for(k=0;k<len;k++){BYTEbt=*(char*)(rxdata+k);//字符型strtemp.Format("%2x",bt);〃将字符送人临时变量m_strRXData+=strtemp;}}UpdateData(FALSE);}五、项目设计结果分析5.1上位机测试雷型登陆界面TESTCOMM5.1上位机测试雷型登陆界面TESTCOMM登白翊区控界E 区控界E [富:优质优质用户控制区家居区节能灯状态:数据发送区:清空发送区武双[珈ft]用户控制区家居区节能灯状态:数据发送区:清空发送区武双[珈ft]逐程校制糖灵.3SO导航 配逐程控制#灵,实时监控串口号:\C0M4J波将至:|96D0J打开|美丽|数据陵收区; 清空接收区5.2系统测试5.2.1关灯测试分界团实时眈拄串口号::COM4三]加恃主:|96D0 打开|关闭串口号::COM4三]加恃主:|96D0 打开|关闭|清空接唳区|用户控制区家居区节能灯cecc1110000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仿生骨骼制造工艺研究报告
- 海外ui设计趋势研究报告
- 2025年河南省漯河市政府采购评审专家考试真题库及参考答案
- 关于黄河诗词歌谣研究报告
- 方志敏人物研究报告
- 保险合同应用
- 化工设计行业研究报告
- 古代冶铁技术方法研究报告
- 杭州灯光秀研究报告
- 法治政府数据研究报告
- 超星尔雅学习通《大学生国家安全教育(中国人民警察大学)》章节测试含答案
- 2025中国民生银行总行秋季校园招聘专业能力测试笔试历年典型考题及考点剖析附带答案详解
- (正式版)DB42∕T 2465-2025 《钢滑道顶升技术规程》
- 灯光音响租赁施工方案
- 科研项目伦理审批知情同意书模板
- SAP-PP模块基础培训
- CRRT和血液透析的区别
- 2026年江西单招语文应用文写作专项含答案通知启事求职信经典题
- DB32∕T 5167-2025 超低能耗建筑技术规程
- 2026年湖南商务职业技术学院单招职业技能测试必刷测试卷及答案1套
- 雨课堂学堂在线学堂云《科学研究方法与论文写作(复大)》单元测试考核答案
评论
0/150
提交评论