《室内外环境监测报警系统的设计报告.docx》由会员分享,可在线阅读,更多相关《室内外环境监测报警系统的设计报告.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、室内外环境监测报警系统的设计报告室内外环境监测报警系统设计报告系部名称:电子工程系项目名称:室内外环境监测报警系统一、项目主要内容本项目将利用单片机与传感器等电子器件,设计一款实用方便的室内外环境监测报警系统。设计分为两个模块,室内模块和室外模块。室内模块主要功能是:测量室内温度和湿度、火灾监测报警、烟雾或有害气体监测报警;室外模块的主要功能是:测量室外温湿度。两个模块能够通过无线采用ZigBee连接,单片机将采集的数据进行处理,将温度、湿度及室内外温差显示在LCD显示器上;当出现火情、有害气体泄漏时,蜂鸣器用不同频率的响声分别对各种情况进行预警。二、项目主要创新1.设计的室内外环境监测报警系
2、统乖巧、简便。2.将日常生活中需要的几种监测报警系统进行统一的整合。最主要的是设计了温湿检测、火灾监测、烟雾及有害气体监测报警。3.能够用我们设计的系统作为控制系统,外接风扇、水雾喷洒或换气系统。根据温度变化调节风扇、根据湿度喷洒水雾或根据空气质量开关换气系统。4.使用了ZigBee近距离无线组网通讯技术。三、硬件电路设计硬件电路包括室内模块和室外模块。室内模块相当于协调器,使用了STM32和CC2530两款芯片,主要用于检测室内温湿度并显示、监测火灾、有毒气体以及报警装置、接收室外温湿信息并显示、控制继电器等。室外模块相当与终端设备,使用CC2530芯片,主要用于检测室外或其他地方温湿参数,
3、并把这些参数无线发射到室内模块进行显示。下面是主要的硬件设计。1.STM32核心板电路图文档视界室内外环境监测报警系统的设计报告室内外环境监测报警系统的设计报告文档视界室内外环境监测报警系统的设计报告室内外环境监测报警系统的设计报告文档视界室内外环境监测报警系统的设计报告室内外环境监测报警系统的设计报告9.按键电路httpdocsj/doc/ea3671f074eeaeaad1f34693daef5ef7ba0d12bf.2530串口通信电路设计四、部分软件设计由于程序较长,这里提供部分程序。1.STM32主程序部分#includestm32f10x.h#includedelay.h#incl
4、udesys.h#includeUSART.h#includeLCD.h#includeDHT11.h#includeDS18B20.h#includeMQ_2.h#includeIR.h#includeLED.h#includeBUZZER.h#includeKEY.h#includeRELAY.h#includeDisplay.hvoidDeal_With(u8,u8);voidDeal_Temp(u8,u8);externunsignedcharTH,TL,RH,RL;externunsignedchartemp7;externu8RES;intmain(void)u8ts=0;u8fs
5、=1;u8mq=0;u8ir=0;u8h_norm=H_TEMP;u8l_norm=L_TEMP;delay_init();LED_Init();Buzzer();RELAY_Init();IR_Init();MQ_Init();USART1_Configuration();USARTx_NVIC_Configuration();LCD_Init(0x38,0x0c,0x06,0x01);DS18B20_WriteEEPROM();Scan_Key_Configuration();while(1)DHT11_ReadData();DS18B20_ReadTemperature();Temp_C
6、onversion();Slect_Model();mq=MQ_Scan();ir=IR_Scan();ts=Key_Scan();switch(ts)caseKVALUE1:fs=Set_LCD(ts);break;caseKVALUE2:h_norm=Set_H_Param(ts,fs);break;caseKVALUE3:l_norm=Set_L_Param(ts,fs);break;caseKVALUE4:Reset_Instrument(ts);break;default:break;switch(fs)case0:break;case1:Display_Indoor();break
7、;case2:Display_Outdoor_1();break;case3:Display_Outdoor_2();break;case4:Display_Set_Temp_Param(h_norm,l_norm);break;default:break;Deal_With(mq,ir);Deal_Temp(h_norm,l_norm);httpdocsj/doc/ea3671f074eeaeaad1f34693daef5ef7ba0d12bf.2530监测温度程序#ifndef_DS18B20_H_#define_DS18B20_H_externunsignedcharDs18b20Ini
8、tial(void);externvoidTemp_test(void);externvoidTemp_Conversion(void);externunsignedchartemp7;externunsignedchartflag;#endif#includeiocc2530.h#includeOnBoard.h#defineuintunsignedint#defineucharunsignedchar#defineDs18b20DataP0_6/温度传感器引脚#defineON0x01/读取成功返回0x00,失败返回0x01#defineOFF0x00uchartemperature2;/
9、存放温度数据uchartemp7;/存放分解的7个ASCII码温度数据uchartflag;voidDs18b20Delay(uintk);voidDs18b20InputInitial(void);/设置端口为输入voidDs18b20OutputInitial(void);/设置端口为输出ucharDs18b20Initial(void);voidDs18b20Write(ucharinfor);ucharDs18b20Read(void);voidTemp_test(void);/温度读取函数voidTemp_Conversion(void);/时钟频率为32MvoidDs18b20De
10、lay(uintk)/*uinti,j;for(i=0;iucharStatus=0x00;uintCONT_1=0;ucharFlag_1=ON;/读取能否成功的标志位Ds18b20OutputInitial();/P0_6设置为输出形式Ds18b20Data=1;/拉高总线Ds18b20Delay(260);Ds18b20Data=0;/拉低总线Ds18b20Delay(750);Ds18b20Data=1;/拉高总线Ds18b20InputInitial();/P0_6设置为输入形式while(Ds18b20Data!=0)&(Flag_1=ON)/等待ds18b20响应,具有防止超时功
11、能/等待约60ms左右CONT_1+;Ds18b20Delay(10);if(CONT_18000)Flag_1=OFF;Status=Ds18b20Data;Ds18b20OutputInitial();/P0_6设置为输出形式Ds18b20Data=1;/拉高总线Ds18b20Delay(100);returnStatus;/主机往Ds18b20写数据voidDs18b20Write(ucharinfor)uinti;Ds18b20OutputInitial();/P0_6设置为输出形式/发送一个字节for(i=0;iDs18b20Data=0;Ds18b20Delay(50);Ds18b
12、20Data=1;Ds18b20Delay(6);infor=1;/移位/主机从Ds18b20读数据ucharDs18b20Read(void)ucharValue=0x00;uinti;Ds18b20OutputInitial();/P0_6设置为输出形式Ds18b20Data=1;/总线拉高,准备读数据Ds18b20Delay(10);for(i=0;i=1;Ds18b20OutputInitial();/P0_6设置为输出形式Ds18b20Data=0;/拉低总线产生读信号Ds18b20Delay(3);Ds18b20Data=1;/释放总线准备读数据Ds18b20Delay(3);Ds18b20InputInitial();/P0_6设置为输入形式/等待读取数据if(Ds18b20Data=1)Value|=0x80;Ds18b20Delay(15);returnValue;voidTemp_test(void)/温度读取函数ucharV;