《物联网通信与组网专业技术》由会员分享,可在线阅读,更多相关《物联网通信与组网专业技术(15页珍藏版)》请在金锄头文库上搜索。
1、信息工程课程设计报告书课 程 名 称 物联网通信与组网技术 课 程 设 计 题目 小型家庭环境监测传感网络系统 学生姓名、学 号 学 生 专 业 班级 指 导 教 师 姓名 课程设计起止日期 2018.7.2-2018.7.6 摘 要如今我国社会整体生活水平不断提高,大众人民对于生活质量的追求不再仅仅局限于衣食住行、温饱冷暖这些较为低层次的阶段了,我们可以从日常的生活以及从各类环境监测设备尤其是家庭及单位的私用或公用监测设备的销售情况可以看出,大众人民对于这方面的需求是日益增加,但就目前而言,市场上的环境监测设备种类繁多,产品质量参差不齐,价格也是随着功能的多少而有着很大的差距,有的环境监测设
2、备功能过于繁杂而又价格昂贵,并不适合大众消费,而有的产品则是功能有限,质量不高,也不适合大众购买。从上边描述可以看出,目前我国市场在这方面还是有个潜在的市场机遇、广泛的设计前景和光明的销前途的。然而就目前而言,不论是国外还是国内,总体情况是关于智能家居系统的研究开发项目比较多,但是智能家居系统大多比较庞大,功能繁杂,成本很高,所以不能得到很有效的普及。考虑到毕业设计的实际情况和力所能及的设计范围,我们根据普通家庭的一般需要开发室内温度、湿度、天然气浓度、酒精浓度、振动等环境参数的监测系统,可以提供多种报警信息,使用户及时了解家居状况,避免不安全事故的发生。既然环境监测与报警设备在日常生活、工作
3、和工程实践中具有重要的应用,并且随着生活水平的不断提高和电子科技的不断进步,日常生活中对于环境监测与报警的需求也是越发的增加,那么在设备的设计上,我们不仅要做到具有较为齐全的报警功能、较为稳定的工作状态、相对而言比较长的工作寿命以及合适的体积大小,还要求进行一定距离的传输,直观快捷的表达方式,还要联系大众生活,与大众生活相贴切,能够为大众所使用。就设计方案而言,本设计着力于从实用、便捷、简易这三个方面出发,通过将几部分简单的设计利用单片机、传感器,VC上位机串口助手等等相应作出各部分监测系统,再通过各个设计单元间的组合通信,最终达到实现环境监测的功能,包括酒精传感器和磁检测传感器,将酒精及磁检
4、测信息发送至VC上位机串口助手实时监控并显示酒精度及磁检测状况等功能。在课程设计指导老师以及同学的帮助和指导下,通过请教问题、查阅资料、检查电路、改正程序,经过如此的多次的纠正和改进,本次的课程设计成果终于是基本上达成了预期的目标,酒精监测和磁检测传感器都能正常工作。关键字:蓝牙wifiUDP协议 MFC一、课程设计项目名称小型家庭环境监测传感网络系统二、项目设计目的及技术要求2.1 项目设计目的通过物联网通信与组网技术课程设计,使学生能够掌握物联网应用系统设计的开发流程、设计方法,使学生能够综合应用无线传感器网络技术、嵌入式技术、JAVA WEB程序设计Andriod程序设计、物联网应用系统
5、设计等物联网工程专业课程的知识。要求学生经过课程设计的教学环节进一步理解物联网应用系统总体架构,掌握物联网应用系统的基本设计方法,程序开发流程,从而使学生对物联网应用系统设计能力有较大提高。2.2 项目的主要任务1设计内容:(1)完成CBT试验台上蓝牙模块间的组网和数据传输,可设计三个及以上的蓝牙模块组网。(2)完成CBT试验台上WIFI模块间的组网和数据传输,同上可设计多个wifi模块组网。(3)实现蓝牙、wifi的混合组网,将数据准确的传输至上位机软件VC显示,监测数据。2.基本要求:(1)设计的家庭环境监测传感网络系统设计功能(2)画出系统的总体框图(3)对功能进行详细设计3.系统设备:
6、硬件:Bluetooth模块(2个),wifi模块(2个),CBT-SuperIOT-II型教学实验平台,j-Link仿真器。软件:串口调试软件,IAR开发软件,VC/安卓三、项目设计方案论证3.1基于STM32的小型家庭环境监测传感网络系统设计CBT-SuperIOT-II型平台配套的Bluetooth模块、WIFI模块皆采用STM32F103处理器,小型家庭环境监测传感网络系统主要由BF10-I蓝牙模块、HF-A1 wifi模块、酒精、磁检测模块传感器。实现蓝牙、wifi的混合组网,利用VC+编写上位机程序,通过串口进行数据交互,将数据准确的传输至上位机软件VC显示,从而监测数据是否正常。
7、此系统的组成框图如图3.1所示:STM32蓝牙模块STM32蓝牙模块酒精传感器STM32WIFI模块磁检测传感器AT指令UDP协议串口图3.1 小型家庭环境监测传感网络系统的组成框图3.2系统实现原理3.2.1硬件原理图本实验使用的是STM32F103芯片,Bluetooth、WIFI模块,酒精、磁检测传感器模块。2 个蓝牙模块替代串口线透明数据,一个模块工作在主模式下,一个模块工作在从模式下。当两模块设置为相同的波特率。上电之后,主从模块则自动连接形成串口透明。HF-A11x支持串口透明传输模式,可以实现串口即插即用,从而最大程度的降低用户使用的复杂度。本系统主要涉及STM32F103芯片、
8、Bluetooth模块、WIFI模块链接电路。如下图所示:图3.2 蓝牙BF10-I芯片原理图图3.2 BF10-I蓝牙模块原理图图3.3 STM32F103芯片原理图“Wifi_nRST”为WiFi模块复位引脚,低电平复位,不按下S3时该引脚为高电平,按下S3时该引脚为低电平,复位时间需大于300ms,按下S3能实现复位WiFi模块;S4为恢复出厂设置按键,按下S4持续五秒钟,然后松手,再按下S4直到“Ready”指示灯由亮变灭,WiFi模块完成恢复出厂设置。图3.4 HF-A1 wifi模块原理图3.2.2 通信协议设计SOFSensor typeSensor indexCmd idDat
9、aExten DataEND2Byte1Byte1Byte1Byte6Byte2Byte1Byte说明:SOF:固定为0xEE 0xCC,标志一帧的开始。Sensor type:见附表一传感器说明。Sensor index:固定为0x01。Cmd id:固定为0x01。Data:为6Byte传感器数据域,见附表一传感器说明。Exten Data:为2Byte扩展数据域END:固定为0xFF,标志一帧的结束。查询指令:EE CC 06 no 01 00 00 FF返回指令:EE CC 06 no 01 00 00 00 00 00 01 00 00 FF3.2.3 蓝牙AT指令(1)查询设置串口
10、工作波特率AT指令表1 查询、设置波特率AT指令表指令应答参数查询:AT+BAUDOK+Get:para1Para1:080=9600;1=19200;2=38400;3=57600;4=115200;5=4800;6=2400;7=1200;8=230400;Defaut: 0(9600)设置:AT+BAUDpara1OK+Set:para1(2)查询设置模块主从模式指令表2 查询、设置主从模式AT指令表指令应答参数查询:AT+ROLE?OK+Get:para1Para1:011: 主设备0: 从设备Default:0设置:AT+ROLEpara1OK+Set:para13.2.4 WIFI
11、传输本次设计中Wifi模块采取UDP通信协议,CBT-SuperIOT-II型教学实验平台中的WiFi模块使用的是HF-A11x模块,模块默认为AP接口。用户可以通过PC机连接HF-A11x的AP接口,并用web管理页面配置。在WiFi传感网实验中,子节点上的传感器把采集到的信息通过WiFi发送给根节点的WiFi,在通过串口发送给STM32。利用串口工具可以采集根节点收到的信息,再根据WiFi串口通信协议和传感器底层协议对传感器接收到的物理信息进行判断。图3.5 WIFI传感网络示意图四、软件流程分析休眠YN允许节点接入网络组网成功?HFA1模块组网HFA1模块设置PC接收终端节点的数据传送到
12、微处理器处理上位机显示监测数据采样周期时间到?数据超限?开始上电初始化BF10模块组网BF10模块设置组网成功?数据超限报警信息通过互联网发送到移动终端YN图4.1 软件系统流程图4.1 串口接收函数当串口有数据到来时,就会进入该函数,用BYTE型数组接收数据,再对数据进行解析。这里需要将协议完全展现出来,即将数据转换为十六进制然后再转换为字符串在文本框进行显示。关键代码如下:void BlueToothMM:OnOnComm()VARIANT variant_inp;/定义一个VARIANT类对象COleSafeArray safearray_inp;/定义一个COleSafeArray对象
13、LONG len,k,i;int j = 0;BYTE rxdata2048;/设置BYTE(字节)数组CString strtemp;if(m_ctrlCom.GetCommEvent() = 2)/事件值为2表示缓冲区内有数据variant_inp = m_ctrlCom.GetInput();/读缓冲区safearray_inp = variant_inp;/VARIANT型变量转换为ColeSafeArraylen = safearray_inp.GetOneDimSize(); /获取接收字节长度for(k = 0; k len; k+)safearray_inp.GetElemen
14、t(&k,rxdata+k); for(k = 0; k len; k+)BYTE bt = *(char *)(rxdata+k);RXBUFFj = bt; strtemp.Format(%02X ,bt);m_EditTest +=strtemp; SetDlgItemText(IDC_EDIT_TEST,m_EditTest);/重新设置文本框值for(i = 0;i1024;i+)rxdatai = 0;4.2Socket通信初始化在使用wifi模块时,我们使用了UDP传输方式,UDP不需要建立连接,只需要往特定IP和端口号丢数据包就行了,保证在同一局域网。Ip是连接无线网后,路由器分配给电脑的ip,所以我们只需要获取