关于物联网的环境实时监测与控制系统.docx

上传人:小飞机 文档编号:3310083 上传时间:2023-03-12 格式:DOCX 页数:26 大小:45.97KB
返回 下载 相关 举报
关于物联网的环境实时监测与控制系统.docx_第1页
第1页 / 共26页
关于物联网的环境实时监测与控制系统.docx_第2页
第2页 / 共26页
关于物联网的环境实时监测与控制系统.docx_第3页
第3页 / 共26页
关于物联网的环境实时监测与控制系统.docx_第4页
第4页 / 共26页
关于物联网的环境实时监测与控制系统.docx_第5页
第5页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《关于物联网的环境实时监测与控制系统.docx》由会员分享,可在线阅读,更多相关《关于物联网的环境实时监测与控制系统.docx(26页珍藏版)》请在三一办公上搜索。

1、关于物联网的环境实时监测与控制系统物联网基本设计能力综合实训报告 报 告 题 目:面向物联网的实时 环境监测系统 班 级: 所 在 分 组: 三人组 组 员 姓 名: 指导教师姓名: 完 成 时 间:XX年7月 计算机与遥感信息技术学院 物联网基本设计能力综合实训报告 目 录 第1章概述 . 1 1.1 设计目的 . 1 1.2 设计要求 . 1 1.3 任务分工 . 2 第2章系统设计 . 3 2.1 系统功能框架 . 3 2.2 功能模块说明 . 3 第3章硬件设计 . 5 3.1 蜂鸣器及接口设计 . 5 3.2 LED灯及接口设计 . 5 3.3 风扇及接口设计 . 6 3.4 温湿度

2、及接口设计 . 7 3.5 气压传感器及接口设计 . 8 3.6 光照度传感器及接口设计 . 10 第4章软件设计 . 11 4.1 传输协议设计 . 11 4.2 手机终端设计 . 18 4.2.1界面结构 . 18 4.2.2 界面设计 . 18 4.2.3 手机终端总结 . 19 第5章系统测试 . 20 5.1 采集测试 . 20 5.2 手机端测试 . 20 5.2.1 测试简述 . 20 5.2.2 流程测试 . 20 5.3 联调测试 . 23 第6章总结 . 24 物联网基本设计能力综合实训报告 第1章概述 1.1 设计目的 家居智能化在中国的应用已经有一段时间了,但是大多数的

3、智能家居系统仍然适用于别墅、洋房、公寓等高级住房。在世界上人口最多的国家,移动电话的应用也是非常的普及,所以手机智能家居系统软件将最终成为智能家居系统中的主流产品。 对于智能家居产品,第一印象便是便捷,通过一个小小的手机,便可随时掌握、控制家里的所有常用家电设备,包括:灯光、窗帘、电器、空调、地暖、新风等,甚至天气预报,室内温湿度显示等,这才是未来理想智能家居的必需品。随着各种基于3G和WIFI功能的智能产品逐步应用于人们的生活中,方便直观触摸操作的移动触摸智能控制终端诸如Android、iPhone、ipad等,必将成为智能家居未来的发展趋势。 掏出你的手机按几个键,让智能家居就在指尖的滑动

4、中变为现实,来实现家居智能化的实际操作和应用。例如,我们通过手机来控制他们的家居照明,空调,监控摄像头,电视机,DVD,以及更多。当我们试图找到遥控器打开这些设备时,你可以考虑使用手机来进行相关的操作了。 然而,在物联传感智能家居中,有更多的应用。比如: 1.如果你在工作的时候,你可以使用移动探测器警报通知您,当您的孩子从学校回家。你甚至可以切换到有监控摄像头的房子,看到他们。 2.假如你回家较晚,您可以通过手机轻松地打开你的前廊灯。 3.下班前你可以通过手机打开家中的空调设备,设置好适应的温度,然后再开车回家。 4.如果你在休假在外的时候,你可以打开家中的某一盏电灯,使它看起来像家中有人。你

5、也可以开启你房间内的安防监控系统,以确保家中的安全。 5.为了提高安全性和警惕性,当您进家前,可以使用使用“打开室内所有灯光”按钮。 6.通过手机来控制家中视频/音频设备。然后通过手机观看或收听家中的视频或音频。 7.如果有小偷闯入你的房子,而你不在家,红外报警探测器会发出警报,你可以看到通过监控摄像头找到小偷的踪迹。现在,您可以使用声光报警器来驱赶和震慑他。 本系统结合以上物联网新型概念,实现用户通过网络对家中情况的实时监控。该系统可以使用户能够对家庭内部情况进行实时的掌握以及控制。通过各种传感器获取家庭内信息,用户在Android界面上可以对这些信息进行掌控。 1.2 设计要求 设计需实现

6、利用多个传感器采集环境数据,并将信息通过蓝牙传输到手机上,手机可以实时显示数据以及对执行器的控制。 第1页 物联网基本设计能力综合实训报告 1.3任务分工 第2页 物联网基本设计能力综合实训报告 第2章 系统设计 2.1 系统功能框架 手机 传感器信息 控制信息 气压模块 光强模块 温湿度模块 STM32 F103C8 执行单元 蜂鸣器 LED灯 风扇 2.2 功能模块说明 1数据采集模块 数据采集模块分三个部分,温湿度数据采集,气压海拔数据采集,光照度数据采集。 温湿度的数据采集应用温湿度传感器AM2320可以比较精准的采集到温度和湿度的信息。气压海拔的数据采集用BOSCH公司的BMP180

7、传感器,较为准确快速的测量气压,海拔数据。光照度应用BH1750光强传感器来采集光强信息。 第3页 物联网基本设计能力综合实训报告 2无线传输模块 无线传输模块使用TI公司的CC2451蓝牙芯片,通过蓝牙模块实现传感层和手机应用控制层通信。本系统通信不需要太大的通信速率,所以采用蓝牙BLE,其特点是功耗低,速度低。通信模式为串口透传,通过AT指令配置蓝牙为串口透传模式。串口波特率为57600. 3. 手机终端模块 调用系统蓝牙服务结合数据采集模块以及传输协议接收传感器数据,发送命令,将接收到的传感器数据处理得到各种环境参数。进行Android应用设计显示各个环境参数并控制各个执行器。 第4页

8、物联网基本设计能力综合实训报告 第3章 硬件设计 3.1 蜂鸣器及接口设计 蜂鸣器的控制主要通过控制其与单片机相连的引脚的高低电平来实现,高电平 void Buzzer_Init(void) 蜂鸣器初始化函数,即初始化相关引脚。 void Buzzer_Cont(u8 com) /蜂鸣器控制 蜂鸣器控制函数,即接口函数,通过调用此函数来控制蜂鸣器的开关。 if(com) else BUZZER(OFF); BUZZER(ON); GPIO_InitTypeDef GPIO_InitSturcture; /定义GPIO结构体 RCC_APB2PeriphClockCmd(RCC_APB2Peri

9、ph_GPIOC, ENABLE); /使能GPIOB时钟 GPIO_InitSturcture.GPIO_Pin = GPIO_Pin_13; /定义引脚 GPIO_InitSturcture.GPIO_Speed = GPIO_Speed_50MHz; /引脚频率 GPIO_InitSturcture.GPIO_Mode = GPIO_Mode_Out_PP; /推挽输出 GPIO_Init( GPIOC, &GPIO_InitSturcture); GPIO_SetBits(GPIOC, GPIO_Pin_13); 蜂鸣器关,低电平蜂鸣器开。 3.2 LED灯及接口设计 LED灯的控制主

10、要通过控制其与单片机相连的引脚的高低电平来实现,高电平 LED灯关,低电平LED灯开。 void LED_Init(void) GPIO_InitTypeDef GPIO_InitSturcture; /定义GPIO结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /使能GPIOB时钟 第5页 物联网基本设计能力综合实训报告 GPIO_InitSturcture.GPIO_Pin = GPIO_Pin_8 |GPIO_Pin_9; /定义引脚 GPIO_InitSturcture.GPIO_Speed = GPIO_Speed_

11、50MHz; /引脚频率 GPIO_InitSturcture.GPIO_Mode = GPIO_Mode_Out_PP; /推挽输出 GPIO_Init( GPIOB, &GPIO_InitSturcture); GPIO_SetBits(GPIOB, GPIO_Pin_8 |GPIO_Pin_9); LED灯初始化函数,即初始化相关引脚。 void LED_Cont(u8 com) /LED灯控制 LED灯控制函数,即接口函数,通过调用此函数来控制LED灯的开关。 if(com) else LED1(OFF); LED2(OFF); LED1(ON); LED2(ON); 3.3 风扇及接

12、口设计 风扇的控制主要通过控制其与单片机相连的引脚的高低电平来实现,高电平 void Fan_Init(void) GPIO_InitTypeDef GPIO_InitSturcture; /定义GPIO结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /使能GPIOB时钟 GPIO_InitSturcture.GPIO_Pin = GPIO_Pin_5; /定义引脚 GPIO_InitSturcture.GPIO_Speed = GPIO_Speed_50MHz; /引脚频率 GPIO_InitSturcture.GPIO_M

13、ode = GPIO_Mode_Out_PP; /推挽输出 第6页 风扇关,低电平风扇开。 物联网基本设计能力综合实训报告 GPIO_Init( GPIOB, &GPIO_InitSturcture); GPIO_SetBits(GPIOB, GPIO_Pin_5); 风扇初始化函数,即初始化相关引脚。 void Fan_Cont(u8 com) /风扇控制 风扇控制函数,即接口函数,通过调用此函数来控制LED灯的开关。 if(com) else FAN(OFF); FAN(ON); 3.4 温湿度及接口设计 温湿度传感器AM2320采用I2C通信协议与单片机进行通信,AM2303的驱动需要单

14、片机给他发一些初始化指令才能正常工作,初始化过程为: 步骤一:唤醒传感器 起始信号+0xB8+等待(800us)+停止信号 START+0xB8+0x03(功能码)+0x00(起始地址)+0x04(寄存器长度)+STOP 0x03(功能码)+0x04(数据长度)+0x03(湿度高位)+0x39(湿度低位)+0x01(温度高位)+0x15(温度低位)+0xE1(CRC 校验码低字节)+ 0xFE(CRC 校验码高字节); 步骤四:计算数据 0339H = 3256+316+9 = 825 =湿度= 82510=82.5%RH; 0115H = 1256+116+5 = 277 =温度= 2771

15、0=27.7。 void AM2303_Info_Coll(void) /温湿度传感器数据采集 unsigned char Huniture_Buffer8 = 0; Waken; AM2320_Write; delay_ms(2); 第7页 步骤二:发送读指令或发送写指令 步骤三:读返回数据或确认信号 物联网基本设计能力综合实训报告 将采集封装为AM2303_Info_Coll温湿度采集函数接口,在系统中调用此函数,讲数据存入信息数组,随后将收集好所有信息的数组通过蓝牙发往手机。 AM2320_Read( Huniture_Buffer,8); All_Info0 = (float)(Hun

16、iture_Buffer4*256+Huniture_Buffer5)/10.0; All_Info1 = (float)(Huniture_Buffer2*256+Huniture_Buffer3)/10.0; 3.5 气压传感器及接口设计 气压传感器BMP180同样采用I2C协议通信,微控制器发送一个启动序列启动压力或温度测量。转换时间后,结果值可通过I2C接口读取。用于计算温度并在帕斯卡的压力,该校准数据已被使用。这些常数可以从BMP180 E2PROM通过在软件初始化I2C接口被读出。 采样率可以提高到128个样本每秒,用于动态测量。在这种情况下,它足以对测量温度只有每秒一次,在同一期

17、间使用该值对于所有的压力测量。采集流程图为: 第8页 物联网基本设计能力综合实训报告 通过I2C对特定的BMP180寄存器进行读写,可以对气压进行测量: 下图显示了详细的算法对压力和温度测量。 第9页 物联网基本设计能力综合实训报告 void BMP180_Info_Coll(void) /气压传感器数据采集 将采集封装为BMP180_Info_Coll气压、海拔采集函数接口,在系统中调用此函数,讲数据存入信息数组,随后将收集好所有信息的数组通过蓝牙发往手机。 extern long result_UT; float altitude; bmp180Convert; altitude=4433

18、0.0*(1-pow(float)result_UP/101325,1/5.255); All_Info2 = result_UP; All_Info3 = altitude; extern long result_UP; 3.6 光照度传感器及接口设计 光照度传感器BH1750也是通过I2C总线进行通信,单片机通过I2C总线向BH1750发送一系列配置指令使BH1750正常工作,再通过I2C总线读取光照度数据。此过程为: 1.MCU发送通电指令. 2.MCU发送连续测量指令(0x11). 3.延时. 4.MCU读取测量数据. 5.对测量数据进行处理 下图为指令集: 第10页 物联网基本设计能

19、力综合实训报告 void BH1750_Info_Coll(void) /光照度传感器数据采集 将采集封装为BH1750_Info_Coll光照采集函数接口,在系统中调用此函数,讲数据存入信息数组,随后将收集好所有信息的数组通过蓝牙发往手机。 float illumination = 0; illumination = Read_BH1750; All_Info4 = illumination; 第4章 软件设计 4.1 传输协议设计 协议说明 数据包头 命令 分片标志 数据 包尾 第11页 物联网基本设计能力综合实训报告 数据包头 1字节 命令 1字节 分片标志 1字节 数据 n字节 包尾

20、2字节 主机-从机: 包头:0xaa 包尾:0x0d 0x0a 命令:0x01 查询从机状态 0x02 数据请求 0x03 控制命令 发送信息示例: 查询命令:0xaa | 0x01 | 0x00 | 0x0d 0x0a 数据请求:0xaa | 0x02 | 0x00 | 0x0d 0x0a 控制命令:0xaa | 0x03 | 0x00 | 0x01 | 0x00 | 0x0d | 0x0a (字节编号从0开始)字节3为执行器 字节4为执行器的开关 从机-主机: 包头:0xbb 包尾:0x0d 0x0a 命令:0x01 就绪 0x02 忙 0x03 出错 0x11 命令执行成功 0x12 忙

21、 0x13 命令执行出错,命令不存在 发送信息示例: 第12页 物联网基本设计能力综合实训报告 0xbb | 0x01 | 0x01 | data | 0x0d 0x0a 0xbb | 0x11 | 0x00 | 0x01 | 0x00 | 0x0d 0x0a (字节编号从0开始)字节3为执行器 字节4为执行器的状态 /包头 #define HOST_TO_SLAVE_H 0xaa /主机-从机 包头 #define SLAVE_TO_HOST_H 0xbb /从机-主机 包头 #define MESSAGE_TAIL_F 0x0d /包尾结束标志 0x0d 0x0a #define MESS

22、AGE_TAIL_B 0x0a #define DIVIDE_ENABLE 0x01 /有分片 #define DIVIDE_DISABLE 0x00 /无分片 /主机-从机 命令 #define HOST_CMD_CHECK 0x01 /查询从机状态 #define HOST_CMD_READ 0x02 /读取从机数据 #define HOST_CMD_WRITE 0x03 /向从机中写入数据 /从机-主机 从机状态命令 #define SLAVE_STA_READY 0x01 /从机准备就绪 #define SLAVE_STA_BUSY 0x02 /从机忙 #define SLAVE_ST

23、A_ERROR 0x03 /从机出错 /从机-主机 从机执行状态命令 #define SLAVE_EXU_SUCCE 0x11 /命令执行成功 #define SLAVE_EXU_BUSY 0x12 /从机忙 #define SLAVE_EXU_ERROR 0x13 /命令执行出错,命令不存在 /执行器 #define LEDCONTROL 0x01 #define BEEPCONTROL 0x02 #define FANCONTROL 0x03 #define ONSTATE 0x01 /开 第13页 物联网基本设计能力综合实训报告 #define OFFSTATE 0x00 /关 #def

24、ine MES_HEAD_LEN 3 /包头长度 #define MES_TAIL_LEN 2 /包尾长度 enum MixData TMPH, TMPL, /温度 HUMH, HUML, /湿度 PRETH,PRETL, / bmp1750 ut PRESH, PRESL, / bmp1750 up LIGH, LIGL, /光强 PRE_REG_AC1H, PRE_REG_AC1L, /bmp1750 ac1-ac6,b1,b2,mb-md PRE_REG_AC2H, PRE_REG_AC2L, PRE_REG_AC3H, PRE_REG_AC3L, PRE_REG_AC4H, PRE_R

25、EG_AC4L, PRE_REG_AC5H, PRE_REG_AC5L, PRE_REG_AC6H, PRE_REG_AC6L, PRE_REG_B1H, PRE_REG_B1L, PRE_REG_B2H, PRE_REG_B2L, PRE_REG_MBH, PRE_REG_MBL, PRE_REG_MCH, PRE_REG_MCL, PRE_REG_MDH, PRE_REG_MDL, TOTAL_DATA ; 值 值 的值 externunsignedchar All_Info_CharTOTAL_DATA; /信息数组,将传感器采集的信息放入此数组中,存储次序为上方的MixData表 in

26、t messageAnalysis(u8 USART_RX_BUFUSART_REC_LEN); /报文解析 void slaveState; void slaveSendM; void slaveRecM(u8 USART_RX_BUFUSART_REC_LEN); int messageAnalysis(u8 USART_RX_BUFUSART_REC_LEN) /报文解析 第14页 物联网基本设计能力综合实训报告 if(USART_RX_STA&0x8000) /当包尾为0d 0a时进行处理 if(USART_RX_BUF1 = HOST_CMD_CHECK) slaveState; U

27、SART_RX_STA = 0; elseif(USART_RX_BUF1 = HOST_CMD_READ) slaveSendM; USART_RX_STA = 0; elseif(USART_RX_BUF1 = HOST_CMD_WRITE) slaveRecM(USART_RX_BUF); USART_RX_STA = 0; else USART_RX_STA = 0; void slaveState unsignedchar message7 = 0; message0 = SLAVE_TO_HOST_H; message1 = SLAVE_EXU_SUCCE; message2 =

28、DIVIDE_DISABLE; message5 = MESSAGE_TAIL_F; message6 = MESSAGE_TAIL_B; message3 = LEDCONTROL; /执行器 message4 = LedState; /状态 USART_SendMessage(USART3, message, 7); delay_ms(50); message3 = BEEPCONTROL; message4 = BeepState; USART_SendMessage(USART3, message, 7); delay_ms(50); message3 = FANCONTROL; me

29、ssage4 = FanState; 第15页 物联网基本设计能力综合实训报告 USART_SendMessage(USART3, message, 7); delay_ms(50); void slaveSendM /从机向主机发送信息 int i = 0,j = 0, len; volatileint k = 0; int totaldata = TOTAL_DATA; unsignedchar messageTOTAL_DATA+MES_HEAD_LEN+MES_TAIL_LEN = 0; for(i = 0; i TOTAL_DATA / 15; i+) /分片,每片最多20字节 me

30、ssage0 = SLAVE_TO_HOST_H; message1 = SLAVE_STA_READY; message2 = DIVIDE_ENABLE; for(j = MES_HEAD_LEN; j 15 + MES_HEAD_LEN; j+, k+) messagej = All_Info_Chark; message18 = MESSAGE_TAIL_F; message19 = MESSAGE_TAIL_B; USART_SendMessage(USART1, message, 20); delay_ms(10); len = k; message0 = SLAVE_TO_HOS

31、T_H; message1 = SLAVE_STA_READY; message2 = DIVIDE_DISABLE; for(j = MES_HEAD_LEN; j TOTAL_DATA+MES_HEAD_LEN - k; j+, k+) messagej = All_Info_Chark; messageTOTAL_DATA+MES_HEAD_LEN+MES_TAIL_LEN -len-2 = MESSAGE_TAIL_F; messageTOTAL_DATA+MES_HEAD_LEN+MES_TAIL_LEN - 1-len = MESSAGE_TAIL_B; 第16页 物联网基本设计能

32、力综合实训报告 USART_SendMessage(USART1, message, TOTAL_DATA+MES_HEAD_LEN+MES_TAIL_LEN - len); void slaveRecM(u8 USART_RX_BUFUSART_REC_LEN) / USART_SendMessage(USART3, ok3, 3); unsignedchar message7 = 0; if(USART_RX_BUF3 = LEDCONTROL) LED_Cont(USART_RX_BUF4); LedState = USART_RX_BUF4; message1 = SLAVE_EXU_SUCCE; elseif(USART_RX_BUF3 = BEEPCONTROL) Buzzer_Cont(USART_RX_BUF4); BeepState = USART_RX_BUF4; message1 = SLAVE_EXU_SUCCE; elseif(USART_RX_BUF3 = FANCONTROL) Fan_Cont(USART_RX_BUF4); FanState = USART_RX_BUF4; message1 = SLAVE_EXU_SUCCE; else message1 = SLAVE_EXU_ERROR; message0 = SLAVE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号