物联网通信与组网技术.docx
- 文档编号:11273592
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:16
- 大小:618.39KB
物联网通信与组网技术.docx
《物联网通信与组网技术.docx》由会员分享,可在线阅读,更多相关《物联网通信与组网技术.docx(16页珍藏版)》请在冰豆网上搜索。
物联网通信与组网技术
信息工程课程设计报告书
课程名称物联网通信与组网技术
课程设计题目小型家庭环境监测传感网络系统
学生姓名、学号
学生专业班级
指导教师姓名
课程设计起止日期2018.7.2-2018.7.6
摘要
如今我国社会整体生活水平不断提高,大众人民对于生活质量的追求不再仅仅局限于衣食住行、温饱冷暖这些较为低层次的阶段了,我们可以从日常的生活以及从各类环境监测设备尤其是家庭及单位的私用或公用监测设备的销售情况可以看出,大众人民对于这方面的需求是日益增加,但就目前而言,市场上的环境监测设备种类繁多,产品质量参差不齐,价格也是随着功能的多少而有着很大的差距,有的环境监测设备功能过于繁杂而又价格昂贵,并不适合大众消费,而有的产品则是功能有限,质量不高,也不适合大众购买。
从上边描述可以看出,目前我国市场在这方面还是有个潜在的市场机遇、广泛的设计前景和光明的销前途的。
然而就目前而言,不论是国外还是国内,总体情况是关于智能家居系统的研究开发项目比较多,但是智能家居系统大多比较庞大,功能繁杂,成本很高,所以不能得到很有效的普及。
考虑到毕业设计的实际情况和力所能及的设计范围,我们根据普通家庭的一般需要开发室内温度、湿度、天然气浓度、酒精浓度、振动等环境参数的监测系统,可以提供多种报警信息,使用户及时了解家居状况,避免不安全事故的发生。
既然环境监测与报警设备在日常生活、工作和工程实践中具有重要的应用,并且随着生活水平的不断提高和电子科技的不断进步,日常生活中对于环境监测与报警的需求也是越发的增加,那么在设备的设计上,我们不仅要做到具有较为齐全的报警功能、较为稳定的工作状态、相对而言比较长的工作寿命以及合适的体积大小,还要求进行一定距离的传输,直观快捷的表达方式,还要联系大众生活,与大众生活相贴切,能够为大众所使用。
就设计方案而言,本设计着力于从实用、便捷、简易这三个方面出发,通过将几部分简单的设计——利用单片机、传感器,VC上位机串口助手等等相应作出各部分监测系统,再通过各个设计单元间的组合通信,最终达到实现环境监测的功能,包括酒精传感器和磁检测传感器,将酒精及磁检测信息发送至VC上位机串口助手实时监控并显示酒精度及磁检测状况等功能。
在课程设计指导老师以及同学的帮助和指导下,通过请教问题、查阅资料、检查电路、改正程序,经过如此的多次的纠正和改进,本次的课程设计成果终于是基本上达成了预期的目标,酒精监测和磁检测传感器都能正常工作。
关键字:
蓝牙 wifi UDP协议MFC
一、课程设计项目名称
小型家庭环境监测传感网络系统
二、项目设计目的及技术要求
2.1项目设计目的
通过《物联网通信与组网技术》课程设计,使学生能够掌握物联网应用系统设计的开发流程、设计方法,使学生能够综合应用《无线传感器网络技术》、《嵌入式技术》、《JAVAWEB程序设计》《Andriod程序设计》、《物联网应用系统设计》等物联网工程专业课程的知识。
要求学生经过课程设计的教学环节进一步理解物联网应用系统总体架构,掌握物联网应用系统的基本设计方法,程序开发流程,从而使学生对物联网应用系统设计能力有较大提高。
2.2项目的主要任务
1.设计内容:
(1)完成CBT试验台上蓝牙模块间的组网和数据传输,可设计三个及以上的蓝牙模块组网。
(2)完成CBT试验台上WIFI模块间的组网和数据传输,同上可设计多个wifi模块组网。
(3)实现蓝牙、wifi的混合组网,将数据准确的传输至上位机软件VC显示,监测数据。
2.基本要求:
(1)设计的家庭环境监测传感网络系统设计功能
(2)画出系统的总体框图
(3)对功能进行详细设计
3.系统设备:
硬件:
Bluetooth模块(2个),wifi模块(2个),CBT-SuperIOT-II型教学实验平台,j-Link仿真器。
软件:
串口调试软件,IAR开发软件,VC/安卓
三、项目设计方案论证
3.1基于STM32的小型家庭环境监测传感网络系统设计
CBT-SuperIOT-II型平台配套的Bluetooth模块、WIFI模块皆采用STM32F103处理器,小型家庭环境监测传感网络系统主要由BF10-I蓝牙模块、HF-A1wifi模块、酒精、磁检测模块传感器。
实现蓝牙、wifi的混合组网,利用VC++编写上位机程序,通过串口进行数据交互,将数据准确的传输至上位机软件VC显示,从而监测数据是否正常。
此系统的组成框图如图3.1所示:
图3.1小型家庭环境监测传感网络系统的组成框图
3.2系统实现原理
3.2.1硬件原理图
本实验使用的是STM32F103芯片,Bluetooth、WIFI模块,酒精、磁检测传感器模块。
2个蓝牙模块替代串口线透明数据,一个模块工作在主模式下,一个模块工作在从模式下。
当两模块设置为相同的波特率。
上电之后,主从模块则自动连接形成串口透明。
HF-A11x支持串口透明传输模式,可以实现串口即插即用,从而最大程度的降低用户使用的复杂度。
本系统主要涉及STM32F103芯片、Bluetooth模块、WIFI模块链接电路。
如下图所示:
图3.2蓝牙BF10-I芯片原理图
图3.2BF10-I蓝牙模块原理图
图3.3STM32F103芯片原理图
“Wifi_nRST”为WiFi模块复位引脚,低电平复位,不按下S3时该引脚为高电平,按下S3时该引脚为低电平,复位时间需大于300ms,按下S3能实现复位WiFi模块;S4为恢复出厂设置按键,按下S4持续五秒钟,然后松手,再按下S4直到“Ready”指示灯由亮变灭,WiFi模块完成恢复出厂设置。
图3.4HF-A1wifi模块原理图
3.2.2通信协议设计
SOF
Sensortype
Sensorindex
Cmdid
Data
ExtenData
END
2Byte
1Byte
1Byte
1Byte
6Byte
2Byte
1Byte
说明:
SOF:
固定为0xEE0xCC,标志一帧的开始。
Sensortype:
见附表一传感器说明。
Sensorindex:
固定为0x01。
Cmdid:
固定为0x01。
Data:
为6Byte传感器数据域,见附表一传感器说明。
ExtenData:
为2Byte扩展数据域
END:
固定为0xFF,标志一帧的结束。
查询指令:
EECC06no010000FF
返回指令:
EECC06no010000000000010000FF
3.2.3蓝牙AT指令
(1)查询\设置串口工作波特率AT指令
表1查询、设置波特率AT指令表
指令
应答
参数
查询:
AT+BAUD
OK+Get:
[para1]
Para1:
0~8
0=9600;1=19200;
2=38400;3=57600;
4=115200;5=4800;
6=2400;7=1200;
8=230400;
Defaut:
0(9600)
设置:
AT+BAUD[para1]
OK+Set:
[para1]
(2)查询\设置模块主从模式指令
表2查询、设置主从模式AT指令表
指令
应答
参数
查询:
AT+ROLE?
OK+Get:
[para1]
Para1:
0~1
1:
主设备
0:
从设备
Default:
0
设置:
AT+ROLE[para1]
OK+Set:
[para1]
3.2.4WIFI传输
本次设计中Wifi模块采取UDP通信协议,CBT-SuperIOT-II型教学实验平台中的WiFi模块使用的是HF-A11x模块,模块默认为AP接口。
用户可以通过PC机连接HF-A11x的AP接口,并用web管理页面配置。
在WiFi传感网实验中,子节点上的传感器把采集到的信息通过WiFi发送给根节点的WiFi,在通过串口发送给STM32。
利用串口工具可以采集根节点收到的信息,再根据WiFi串口通信协议和传感器底层协议对传感器接收到的物理信息进行判断。
图3.5WIFI传感网络示意图
四、软件流程分析
图4.1软件系统流程图
4.1串口接收函数
当串口有数据到来时,就会进入该函数,用BYTE型数组接收数据,再对数据进行解析。
这里需要将协议完全展现出来,即将数据转换为十六进制然后再转换为字符串在文本框进行显示。
关键代码如下:
voidBlueToothMM:
:
OnOnComm()
{VARIANTvariant_inp;//定义一个VARIANT类对象
COleSafeArraysafearray_inp;//定义一个COleSafeArray对象
LONGlen,k,i;intj=0;BYTErxdata[2048];//设置BYTE(字节)数组
CStringstrtemp;if(m_ctrlCom.GetCommEvent()==2)//事件值为2表示缓冲区内有数据
{variant_inp=m_ctrlCom.GetInput();//读缓冲区
safearray_inp=variant_inp;//VARIANT型变量转换为ColeSafeArray
len=safearray_inp.GetOneDimSize();//获取接收字节长度
for(k=0;k for(k=0;k RXBUFF[j]=bt;strtemp.Format("%02X",bt);m_EditTest+=strtemp;}} SetDlgItemText(IDC_EDIT_TEST,m_EditTest);//重新设置文本框值 for(i=0;i<1024;i++){rxdata[i]=0;}} 4.2Socket通信初始化 在使用wifi模块时,我们使用了UDP传输方式,UDP不需要建立连接,只需要往特定IP和端口号丢数据包就行了,保证在同一局域网。 Ip是连接无线网后,路由器分配给电脑的ip,所以我们只需要获取本机ip就可以了。 端口号的设置保证不与电脑其他用软件冲突就可以了。 SOCK_DGRAM就是将数据传输方式设置为UDP。 关键代码如下: BOOLBlueToothMM: : InitSocket() {UpdateData(TRUE);unsignedshortm_portNo; CStringm_StrportNo;GetDlgItemText(IDC_EDIT_PORT,m_StrportNo);sscanf(m_StrportNo,"%d",&m_portNo);//转换为u_short类型 m_socket=socket(AF_INET,SOCK_DGRAM,0); if(INVALID_SOCKET==m_socket) {MessageBox("套接字创建失败");returnFALSE;} SOCKADDR_INaddrSock;addrSock.sin_family=AF_INET;//地址族 addrSock.sin_port=htons(m_portNo);//将自己的端口号设置为6000 addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址 intretval=0;bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR)); if(SOCKET_ERROR==retval) {closesocket(m_socket);MessageBox("绑定失败");returnFALSE;}returnTRUE;} 4.3网络数据接收代码 网络数据接收必须开启一个线程来监测是否有数据的到来。 使用recvfrom函数来接收UDP传输的数据。 使用recvBuf来接收原始数据,使用byteData数组存储转换为BYTE型的数据,使用strtemp存储十六进制字符串,然后将数据给对话框数据展示界面。 关键代码如下: DWORDWINAPIBlueToothMM: : RecvProc(LPVOIDlpParameter) {SOCKETsock=((RECVPARAM*)lpParameter)->sock; HWNDhwnd=((RECVPARAM*)lpParameter)->hwnd; deletelpParameter;///释放内存 SOCKADDR_INaddrFrom;intlen=sizeof(SOCKADDR); charrecvBuf[1024]={0};chartempBuf[1024]={0}; intretval,i;BYTEbyteData[14]={0};CStringstrtemp,str; while(TRUE){retval=recvfrom(sock,recvBuf,14,0,(SOCKADDR*)&addrFrom,&len); if(retval==SOCKET_ERROR)break; for(i=0;(i<14)&&retval! =SOCKET_ERROR;i++) {byteData[i]=(BYTE)recvBuf[i]; strtemp.Format("%02X",byteData[i]);str+=strtemp;} sprintf(tempBuf,"%s",str); : : PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf);}return0;} 五、项目设计结果分析 5.1蓝牙连接测试 用J-Link连接PC机与实验箱,用实验箱配套的电源给实验箱供电,并给模块上电。 用IAR软件打开实验工程,将实验工程进行编译,将Master和Slaver程序分别烧录到蓝牙主、从机模块里,并重启模块或者使用“RST”键复位模块。 主模块设置的是搜索所有从模块,蓝牙组网成功后BTLED指示灯长亮。 图5.1蓝牙主模块图5.2蓝牙从模块 5.2WIFIweb管理页面配置 网页管理有五个页面,分别为“模式选择”、“无线接入点设置”、“无线终端接口设置”、“应用程序设置”、“模块管理”。 网络模式选择Client,协议为UDP,端口设置成6000,服务器的地址设置为192.168.1.112。 设置完成后,点击“确定”。 图5.3网络设置 5.3上位机测试 5.3.1登录界面测试 将用户输入的用户名、密码与数据库中用户名、密码字段匹配,一直登陆成功,跳转至检测界面。 图5.4用户登录界面 5.3.2检测界面测试 配置区域,协议展示区域,数据显示区域。 配置区域主要是串口和UDP网络的配置。 协议展示区域主要是将完整协议展示出来。 数据显示区域,就是将数据解析后的结果显示在界面上。 图5.5监控测界面 5.4问题及解决方法 (1)组网成功后,蓝牙从模块采集数据发送给蓝牙主模块的数据在上位机中显示error。 解决: 经过反复的测试后,发现接受数据过程无问题,蓝牙模块没连接成功,进入了“Error”状态。 重新下载程序,检查串口设置,解决了此问题。 (2)MFC串口控件接收来自蓝牙的串口消息,进行处理;如何接收WiFi发送来的数据进行处理。 解决: 首先对WIFI进行了配置,将WIFIStation模式连接的传感器模块将数据准确传到AP模式的WIFI模块中。 在通过询问同学、查找资料后使用了UDP传输方式,通过Scoket编程将其设为同个局域网中的AP模式,启用线程接收数据。 六、参考文摘 [1]王殊,胡富平等.无线传感器网络的理论及其应用.北京: 北京航空航天大学出版社,2012. [2]姜仲,刘丹等.Bluetooth技术与实训教程.北京: 清华大学出版社,2014. [3]姜仲,刘丹Bluetooth技术与实训教程.北京.清华大学出版社.2016. [4]王小强,欧阳骏无线传感网络设计与实现。 北京.化学工业出版社。 2012 [5]MFCWindows应用程序设计习题解答及上机实验/任哲,李益民,车进辉编著.2版,北京: 清华大学出版社,2007.10 [6]MFC Windows程序设计: 第2版/(美)帕罗赛斯(Prosise,J.)著;北京博彦科技发展有限责任公司译.北京: 清华大学出版社,2007. 课程设计评分表 评分项目 评分成绩 1.选题合理、目的明确(10分) 2.设计方案正确,具有可行性、创新性(30分) 3.项目工艺水平及测试性能达到技术要求(25分) 4.参考文摘不少于5篇(10分) 5.答辩(25分) 总分(100分) 答辩记录: 指导教师综合评语: 指导教师(签名) 日期: 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 联网 通信 组网 技术