
室内外环境监测报警系统的设计报告.doc
20页室内外环境监测报警系统设计报告系 部 名 称: 电子工程系项 目 名 称: 室内外环境监测报警系统一、 项目主要内容本项目将利用单片机与传感器等电子器件, 设计一款实用方便的室内外环境监测报警系统设计分为两个模块,室内模块和室外模块室内模块主要功能是:测量室内温度和湿度、火灾监测报警、烟雾(或有害气体)监测报警;室外模块的主 要功能是:测量室外温湿度两个模块可以通过无线(采用资料.ZigBee )连接,单片机将收集的数据进行处 理,将温度、湿度 及室内外温差显示在 LCD 显示器上;当出现火情、有害气体 泄漏时,蜂鸣器用不同频率的响声分别对各种情况进行预警二、 项目主要创新1. 设计的室内外环境监测报警系统灵巧、简便2. 将日常生活中需要的几种监测报警系统进行统一的整 合最主要的是设计了温湿检测、火灾监测、烟雾及有害气体 监测报警3. 可以用我们设计的系统作为控制系统,外接风扇、水雾 喷洒或换气系统根据温度变化调节风扇、根据湿度喷洒水雾 或根据空气质量开关换气系统4. 使用了 ZigBee 近距离无线组网通讯技术三、 硬件电路设计硬件电路包括室内模块和室外模块 室内模块相当于协调器, 使 用了 STM32和 CC2530两款芯片,主要用于检测室内温湿度并显示、 监测火灾、有毒气体以及报警装置、接收室外温湿信息并显示、控制 继电器等。
室外模块相当与终端设备,使用 CC2530 芯片,主要用于 检测室外或其他地方温湿参数, 并把这些参数无线发射到室内模块进 行显示下面是主要的硬件设计1. STM32 核心板电路图资料.2. CC2530 核心板电路图资料.3. 电源电路设计ASM117-3.3 是 5V 转 3.3V 芯片4. DS18B20 电路设计5. DHT11 电路设计6. 火灾、烟雾监测电路设计资料.烟雾、有害气体监测使用 MQ_2,利用红外接受二极管监测是否 有火灾发生 LM393 是一种低功率失调电压双比较器, 它类似于增益 不可调的运算放大器 每个比较器有两个输入端和一个输出端, 两个 输入端一个称为同向输入端, 一个称为反相输入端 在比较两个电压 时,任意一个输入端加一个固定电压作参考电压, 另一端加一个待比 较信号电压7. LCD显示电路设计8. 继电器电路设计资料.9. 按键电路10. CC2530 串口通信电路设计四、 部分软件设计由于程序较长,这里提供部分程序1. STM32 主程序部分#include "stm32f10x.h"#include "delay.h" #include "sys.h" #include "USART.h" #include "LCD.h" #include "DHT11.h"资料.#include "DS18B20.h"#include "MQ_2.h"#include "IR.h"#include "LED.h"#include "BUZZER.h"#include "KEY.h"#include "RELAY.h"#include "Display.h"void Deal_With(u8,u8);void Deal_Temp(u8,u8);extern unsigned char TH, TL, RH, RL;extern unsigned char temp[7];extern u8 RES;int main(void){u8 ts = 0;u8 fs = 1;u8 mq = 0;u8 ir = 0;u8 h_norm = H_TEMP;u8 l_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_Conversion();Slect_Model();mq = MQ_Scan();资料.ir = IR_Scan();ts = Key_Scan(); switch(ts){case KVALUE1fs = Set_LCD(ts); break;case KVALUE2h_norm = Set_H_Param(ts,fs); break;case KVALUE3l_norm = Set_L_Param(ts,fs); break;case KVALUE4Reset_Instrument(ts); break;default : break; }switch(fs){case 0 : break;case 1 : Display_Indoor(); break;case 2 : Display_Outdoor_1(); break;case 3 : Display_Outdoor_2(); break;case 4 : Display_Set_Temp_Param(h_norm,l_norm); break; default : break;}Deal_With(mq,ir);Deal_Temp(h_norm,l_norm);}}2. CC2530 监测温度程序#ifndef __DS18B20_H_#define __DS18B20_H extern unsigned char Ds18b20Initial(void); extern void Temp_test(void);extern void Temp_Conversion(void);extern unsigned char temp[7];extern unsigned char tflag;#endif#include "iocc2530.h"#include "OnBoard.h" #define uint unsigned int #define uchar unsigned char资料.#define Ds18b20Data P0_6 // 温度传感器引脚0x01#define ON 0x01 // 读取成功返回 0x00,失败返回#define OFF 0x00uchar temperature[2]; // 存放温度数据uchar temp[7];// 存放分解的 7 个 ASCII 码温度数据uchar tflag;void Ds18b20Delay(uint k);void Ds18b20InputInitial(void);// 设置端口为输入void Ds18b20OutputInitial(void);// 设置端口为输出 uchar Ds18b20Initial(void);void Ds18b20Write(uchar infor);uchar Ds18b20Read(void);void Temp_test(void); // 温度读取函数void Temp_Conversion(void);// 时钟频率为 32Mvoid Ds18b20Delay(uint k){/*uint i,j;for(i=0;i












