物联网应用系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉华夏理工学院
信息工程课程设计报告书课程名称物联网应用系统设计
课程设计总评成绩
学生姓名
学号
学生专业班级
指导教师姓名
课程设计起止日期2018、6、11~2018、7、15 一、课程设计项目名称
基于ZigBee协议栈的智能家居控制灯系统
二、项目设计目的及技术要求
2、1 项目设计目的
通过《物联网应用系统设计》课程设计,使学生能够掌握物联网应用系统设计的开发流程、设计方法,使学生能够综合应用《无线传感器网络技术》、《嵌入式技术》、《JAVA WEB程序设计》《Andriod程序设计》、《物联网应用系统设计》等物联网工程专业课程的知识。要求学生经过课程设计的教学环节进一步理解物联网应用系统总体架构,掌握物联网应用系统的基本设计方法,程序开发流程,从
而使学生对物联网应用系统设计能力有较大提高。
2、2 项目的主要任务
1.设计内容:
课程设计题目一般由指导教师提供,也可以在老师的同意下学生自己题;
4人一组,每组完成的内容不能雷同。设计参考题目如下:
1)智能家居环境监测系统
2)智能家居控制灯系统
3)智能农业区-自动灌溉系统
2、基本要求:
1)学会单片机的应用方法,开发环境;
2)结合任务要求,完成系统设计与调试,鼓励功能扩展与创新;
3)会应用protues工具,根据设计的电路,画电路图,并利用protues进行验证仿真;
4)熟悉汇编或C51语言,用C51完成系统的软件编程;
5)按规范撰写课程设计说明书。
3、项目分工
上位机:李永红、夏智君
下位机:陈建、李元毅
通信芯片来设计节点。通过编写协议栈程序,进行包含汇聚节点及传感器节点的组网通信实验。利用VC++编写上位机程序,通过串口进行数据交互,从而控制小灯。此系统的组成框图如图3-1所示:
图3-1 基于ZigBee 协议栈的智能家居控制灯系统设计的整体方案 3、2系统实现原理 3、2、1硬件原理图
本实验使用的就是CC2530芯片, CC2530 具有一个IEEE 802、15、4 兼容无线收发器。RF 内核控制模拟无线模块。另外,它提供了MCU 与无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作与确定无线设备事件的顺序。无线设备还包括一个数据包过滤与地址识别模块。本系统主要涉及LED 、RS485模块、USB 转串口电路、CC2530典型应用电路。如下图所示:
图3-2-1 CC2530的LED 模块 图3-2-2 小灯模块
C C 2530 Z i g b e e 4模块
C C 2530 Z i g b e e 3模块
发送 无线模块 接收
图3-2-3 USB转串口电路
3、2、2 节能灯模块
本实验用的节能灯传感器为12V供电,接通电源后节能灯亮,该节能灯可以通过继电器控制其开关,通过控制四路继电器P1的吸合与断开,控制节能灯的打开与关闭。
图3、2、2 节能灯传感器
接线说明
节能灯模块信号DC12V GND --
四路继电器端子电源板+ J1 电源板- P1 机柜面板-- -- IO(绿色)
表3、2 节能灯模块连线说明
通信协议设计
说明:
SOF: 固定为0xEE 0xCC,标志一帧的开始。
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff};//要发送的字符串送字符数组 CByteArray array; array、SetSize(Count);for(j=0;j array、SetAt(j,TxData[j]);//将字符数组型 AfxMessageBox("发送数据!"); m_ctrlcomm、SetOutput(COleVariant(array));//发送数据 AfxMessageBox("发送成功!");m_state="开灯";} void CCMonitorList::Onoff() {UpdateData(TRUE); int Count=14;//字符串长度 int j=0; int TxData[14]={0xee,0xcc,0x01,0x01,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xff};//要发送的字符串送字符数组 CByteArray array; array、SetSize(Count); for(j=0;j array、SetAt(j,TxData[j]);//将字符数组型 AfxMessageBox("发送数据!"); m_ctrlcomm、SetOutput(COleVariant(array));//发送数据 AfxMessageBox("发送成功!"); m_state="关闭";} 4、2、2接受应答指令 void CCMonitorList::OnOnCommMscomm1() {VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; CString strtemp; BYTE rxdata[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 safearray_inp、GetElement(&k,rxdata+k);} for( k=0;k strtemp、Format("%2x",bt); //将字符送入临时变量 m_strRXData+=strtemp; } } UpdateData(FALSE); } 五、项目设计结果分析 5、1 上位机测试 图5-1 登陆界面