配色: 字号:
物联网通信与组网技术
2023-09-03 | 阅:  转:  |  分享 
  
信息工程课程设计报告书课 程 名 称 物联网通信与组网技术 课 程 设 计 题目 小型家庭环境监测传感网络系统 学生姓名、学 号 学
生 专 业 班级 指 导 教 师 姓名 课程设计起止日期 2018.7.2-2018.7.6摘 要如今我国社会整体生活水平
不断提高,大众人民对于生活质量的追求不再仅仅局限于衣食住行、温饱冷暖这些较为低层次的阶段了,我们可以从日常的生活以及从各类环境监测
设备尤其是家庭及单位的私用或公用监测设备的销售情况可以看出,大众人民对于这方面的需求是日益增加,但就目前而言,市场上的环境监测设备
种类繁多,产品质量参差不齐,价格也是随着功能的多少而有着很大的差距,有的环境监测设备功能过于繁杂而又价格昂贵,并不适合大众消费,而
有的产品则是功能有限,质量不高,也不适合大众购买。从上边描述可以看出,目前我国市场在这方面还是有个潜在的市场机遇、广泛的设计前景和
光明的销前途的。然而就目前而言,不论是国外还是国内,总体情况是关于智能家居系统的研究开发项目比较多,但是智能家居系统大多比较庞大,
功能繁杂,成本很高,所以不能得到很有效的普及。考虑到毕业设计的实际情况和力所能及的设计范围,我们根据普通家庭的一般需要开发室内温度
、湿度、天然气浓度、酒精浓度、振动等环境参数的监测系统,可以提供多种报警信息,使用户及时了解家居状况,避免不安全事故的发生。既然环
境监测与报警设备在日常生活、工作和工程实践中具有重要的应用,并且随着生活水平的不断提高和电子科技的不断进步,日常生活中对于环境监测
与报警的需求也是越发的增加,那么在设备的设计上,我们不仅要做到具有较为齐全的报警功能、较为稳定的工作状态、相对而言比较长的工作寿命
以及合适的体积大小,还要求进行一定距离的传输,直观快捷的表达方式,还要联系大众生活,与大众生活相贴切,能够为大众所使用。就设计方案
而言,本设计着力于从实用、便捷、简易这三个方面出发,通过将几部分简单的设计——利用单片机、传感器,VC上位机串口助手等等相应作出各
部分监测系统,再通过各个设计单元间的组合通信,最终达到实现环境监测的功能,包括酒精传感器和磁检测传感器,将酒精及磁检测信息发送至V
C上位机串口助手实时监控并显示酒精度及磁检测状况等功能。在课程设计指导老师以及同学的帮助和指导下,通过请教问题、查阅资料、检查电路
、改正程序,经过如此的多次的纠正和改进,本次的课程设计成果终于是基本上达成了预期的目标,酒精监测和磁检测传感器都能正常工作。关键字
:蓝牙  wifi UDP协议 MFC一、课程设计项目名称小型家庭环境监测传感网络系统二、项目设计目的及技术要求2.1 项目设计
目的通过《物联网通信与组网技术》课程设计,使学生能够掌握物联网应用系统设计的开发流程、设计方法,使学生能够综合应用《无线传感器网络
技术》、《嵌入式技术》、《JAVA WEB程序设计》《Andriod程序设计》、《物联网应用系统设计》等物联网工程专业课程的知识。
要求学生经过课程设计的教学环节进一步理解物联网应用系统总体架构,掌握物联网应用系统的基本设计方法,程序开发流程,从而使学生对物联网
应用系统设计能力有较大提高。2.2 项目的主要任务1.设计内容:(1)完成CBT试验台上蓝牙模块间的组网和数据传输,可设计三个及以
上的蓝牙模块组网。(2)完成CBT试验台上WIFI模块间的组网和数据传输,同上可设计多个wifi模块组网。(3)实现蓝牙、wifi
的混合组网,将数据准确的传输至上位机软件VC显示,监测数据。2.基本要求:(1)设计的家庭环境监测传感网络系统设计功能(2)画出系
统的总体框图(3)对功能进行详细设计3.系统设备:硬件:Bluetooth模块(2个),wifi模块(2个),CBT-SuperI
OT-II型教学实验平台,j-Link仿真器。软件:串口调试软件,IAR开发软件,VC/安卓三、项目设计方案论证3.1基于STM3
2的小型家庭环境监测传感网络系统设计CBT-SuperIOT-II型平台配套的Bluetooth模块、WIFI模块皆采用STM32
F103处理器,小型家庭环境监测传感网络系统主要由BF10-I蓝牙模块、HF-A1 wifi模块、酒精、磁检测模块传感器。实现蓝牙
、wifi的混合组网,利用VC++编写上位机程序,通过串口进行数据交互,将数据准确的传输至上位机软件VC显示,从而监测数据是否正常
。此系统的组成框图如图3.1所示:STM32WIFI模块磁检测传感器AT指令UDP协议串口图3.1 小型家庭环境监测传感网络系统
的组成框图3.2系统实现原理3.2.1硬件原理图本实验使用的是STM32F103芯片,Bluetooth、WIFI模块,酒精、磁检
测传感器模块。2 个蓝牙模块替代串口线透明数据,一个模块工作在主模式下,一个模块工作在从模式下。当两模块设置为相同的波特率。上电之
后,主从模块则自动连接形成串口透明。HF-A11x支持串口透明传输模式,可以实现串口即插即用,从而最大程度的降低用户使用的复杂度。
本系统主要涉及STM32F103芯片、Bluetooth模块、WIFI模块链接电路。如下图所示:图3.2 蓝牙BF10-I芯片原
理图图3.2 BF10-I蓝牙模块原理图图3.3STM32F103芯片原理图“Wifi_nRST”为WiFi模块复位引脚,低电平
复位,不按下S3时该引脚为高电平,按下S3时该引脚为低电平,复位时间需大于300ms,按下S3能实现复位WiFi模块;S4为恢复出
厂设置按键,按下S4持续五秒钟,然后松手,再按下S4直到“Ready”指示灯由亮变灭,WiFi模块完成恢复出厂设置。图3.4
HF-A1 wifi模块原理图3.2.2 通信协议设计SOFSensor typeSensor indexCmd idDataEx
ten DataEND2Byte1Byte1Byte1Byte6Byte2Byte1Byte说明:SOF:固定为0xEE 0xCC
,标志一帧的开始。Sensor type:见附表一传感器说明。Sensor index:固定为0x01。Cmd id:固定为0x0
1。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)查询\设置串口工作波特率AT指令表1 查询、设置波特率AT指令表
指令应答参数查询:AT+BAUDOK+Get:[para1]Para1:0~80=9600;1=19200;2=38400;3=5
7600;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~11: 主设备0: 从设备Default:0设置:AT+ROLE
[para1]OK+Set:[para1]3.2.4 WIFI传输本次设计中Wifi模块采取UDP通信协议,CBT-SuperI
OT-II型教学实验平台中的WiFi模块使用的是HF-A11x模块,模块默认为AP接口。用户可以通过PC机连接HF-A11x的AP
接口,并用web管理页面配置。在WiFi传感网实验中,子节点上的传感器把采集到的信息通过WiFi发送给根节点的WiFi,在通过串口
发送给STM32。利用串口工具可以采集根节点收到的信息,再根据WiFi串口通信协议和传感器底层协议对传感器接收到的物理信息进行判断
。图3.5 WIFI传感网络示意图四、软件流程分析YN允许节点接入网络组网成功?HFA1模块组网HFA1模块设置PC接收终端节
点的数据传送到微处理器处理上位机显示监测数据采样周期时间到?数据超限?开始上电初始化BF10模块组网BF10模块设置组网成功?数据
超限报警信息通过互联网发送到移动终端YN图4.1软件系统流程图4.1 串口接收函数当串口有数据到来时,就会进入该函数,用BYTE型
数组接收数据,再对数据进行解析。这里需要将协议完全展现出来,即将数据转换为十六进制然后再转换为字符串在文本框进行显示。关键代码如下
:void BlueToothMM::OnOnComm(){VARIANT variant_inp;//定义一个VARIANT类对
象COleSafeArray safearray_inp;//定义一个COleSafeArray对象LONG len,k,i;in
t j = 0;BYTE rxdata[2048];//设置BYTE(字节)数组CString strtemp;if(m_ctrl
Com.GetCommEvent() == 2)//事件值为2表示缓冲区内有数据{variant_inp = m_ctrlCom.
GetInput();//读缓冲区safearray_inp = variant_inp;//VARIANT型变量转换为ColeS
afeArraylen = safearray_inp.GetOneDimSize(); //获取接收字节长度for(k = 0
; k < len; k++){safearray_inp.GetElement(&k,rxdata+k); }for(k = 0
; k < len; k++){BYTE bt = (char )(rxdata+k);RXBUFF[j] = bt; str
temp.Format("%02X ",bt);m_EditTest +=strtemp; }}SetDlgItemText(ID
C_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。关键代码如下:BOOL BlueToot
hMM::InitSocket(){UpdateData(TRUE);unsigned short m_portNo;CStrin
g m_StrportNo;GetDlgItemText(IDC_EDIT_PORT,m_StrportNo); sscan
f(m_StrportNo,"%d",&m_portNo);//转换为u_short类型m_socket=socket(AF_IN
ET,SOCK_DGRAM,0);if(INVALID_SOCKET==m_socket){MessageBox("套接字创建失败
");return FALSE;}SOCKADDR_IN addrSock;addrSock.sin_family=AF_INET
; //地址族addrSock.sin_port=htons(m_portNo); //将自己的端口号设置为6000addrSo
ck.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址int retval = 0;bi
nd(m_socket,(SOCKADDR)&addrSock,sizeof(SOCKADDR));if(SOCKET_ERRO
R==retval){closesocket(m_socket);MessageBox("绑定失败");return FALSE;
}return TRUE;}4.3网络数据接收代码网络数据接收必须开启一个线程来监测是否有数据的到来。使用recvfrom函数来接
收UDP传输的数据。使用recvBuf来接收原始数据,使用byteData数组存储转换为BYTE型的数据,使用strtemp存储十
六进制字符串,然后将数据给对话框数据展示界面。关键代码如下:DWORD WINAPI BlueToothMM::RecvProc(
LPVOID lpParameter){SOCKET sock=((RECVPARAM)lpParameter)->sock;H
WND hwnd=((RECVPARAM)lpParameter)->hwnd;delete lpParameter;///释放
内存SOCKADDR_IN addrFrom; int len=sizeof(SOCKADDR);char recvBuf[102
4]={0};char tempBuf[1024]={0};int retval,i;BYTE byteData[14]={0};
CString strtemp,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)r
ecvBuf[i];strtemp.Format("%02X ",byteData[i]);str += strtemp;}spr
intf(tempBuf,"%s",str);::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)t
empBuf);}return 0;}五、项目设计结果分析5.1 蓝牙连接测试用J-Link连接PC机与实验箱,用实验箱配套的电
源给实验箱供电,并给模块上电。用IAR软件打开实验工程,将实验工程进行编译,将Master和Slaver程序分别烧录到蓝牙主、从机
模块里,并重启模块或者使用“RST”键复位模块。主模块设置的是搜索所有从模块,蓝牙组网成功后BT LED指示灯长亮。 图 5.1
蓝牙主模块 图 5.2 蓝牙从模块5.2 WIFI web管理页面配置网页管理有五个页面,分别为“模式选择”、“无线接入点设
置”、“无线终端接口设置”、“应用程序设置”、“模块管理”。网络模式选择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进行了配置,将WIFI Station模式连接的传感器模块将数据准确传到AP模式的WIFI模块中。在通过询问同学、查
找资料后使用了UDP传输方式 ,通过Scoket编程将其设为同个局域网中的AP模式,启用线程接收数据。六、参考文摘[1]王殊,胡富
平等.无线传感器网络的理论及其应用.北京:北京航空航天大学出版社,2012.[2]姜仲,刘丹等. Bluetooth技术与实训教程.北京:清华大学出版社,2014.[3] 姜仲,刘丹 Bluetooth技术与实训教程.北京.清华大学出版社.2016.[4] 王小强,欧阳骏 无线传感网络设计与实现。北京.化学工业出版社。2012[5]MFC Windows应用程序设计习题解答及上机实验/任哲,李益民,车进辉编著.2版,北京:清华大学出版社,2007. 10[6]MFC?Windows程序设计:第2版/(美)帕罗赛斯(Prosise,J.)著;北京博彦科技发展有限责任公司译.北京:清华大学出版社,2007.课程设计评分表评 分 项 目评分成绩1.选题合理、目的明确(10分)2.设计方案正确,具有可行性、创新性(30分)3.项目工艺水平及测试性能达到技术要求(25分)4.参考文摘不少于5篇(10分)5.答辩(25分)总 分(100分)答辩记录:指导教师综合评语:指导教师(签名) 日 期: 年 月 日6
献花(0)
+1
(本文系行到水穷尽...首藏)