《室内外环境监测报警系统的设计报告》由会员分享,可在线阅读,更多相关《室内外环境监测报警系统的设计报告(20页珍藏版)》请在金锄头文库上搜索。
1、室内外环境监测报警系统设计报告系 部 名 称: 电子工程系项 目 名 称: 室内外环境监测报警系统一、项目主要内容本项目将利用单片机与传感器等电子器件, 设计一款实用方便的室内外环境监测报警系统。设计分为两个模块,室内模块和室外模块。室内模块主要功能是:测量室内温度和湿度、火灾监测报警、烟雾(或有害气体)监测报警;室外模块的主 要功能是:测量室外温湿度。两个模块可以通过无线(采用资料.ZigBee )连接,单片机将收集的数据进行处 理,将温度、湿度 及室内外温差显示在 LCD 显示器上;当出现火情、有害气体 泄漏时,蜂鸣器用不同频率的响声分别对各种情况进行预警。二、项目主要创新1. 设计的室内
2、外环境监测报警系统灵巧、简便。2. 将日常生活中需要的几种监测报警系统进行统一的整 合。最主要的是设计了温湿检测、火灾监测、烟雾及有害气体 监测报警。3. 可以用我们设计的系统作为控制系统,外接风扇、水雾 喷洒或换气系统。根据温度变化调节风扇、根据湿度喷洒水雾 或根据空气质量开关换气系统。4. 使用了 ZigBee 近距离无线组网通讯技术。三、硬件电路设计硬件电路包括室内模块和室外模块。 室内模块相当于协调器, 使 用了 STM32和 CC2530两款芯片,主要用于检测室内温湿度并显示、 监测火灾、有毒气体以及报警装置、接收室外温湿信息并显示、控制 继电器等。室外模块相当与终端设备,使用 CC
3、2530 芯片,主要用于 检测室外或其他地方温湿参数, 并把这些参数无线发射到室内模块进 行显示。下面是主要的硬件设计。1. STM32 核心板电路图资料.2. CC2530 核心板电路图资料.3. 电源电路设计ASM117-3.3 是 5V 转 3.3V 芯片4. DS18B20 电路设计5. DHT11 电路设计6. 火灾、烟雾监测电路设计资料.烟雾、有害气体监测使用 MQ_2,利用红外接受二极管监测是否 有火灾发生。 LM393 是一种低功率失调电压双比较器, 它类似于增益 不可调的运算放大器。 每个比较器有两个输入端和一个输出端, 两个 输入端一个称为同向输入端, 一个称为反相输入端。
4、 在比较两个电压 时,任意一个输入端加一个固定电压作参考电压, 另一端加一个待比 较信号电压。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#
5、include BUZZER.h#include KEY.h#include RELAY.h#include Display.hvoid Deal_With(u8,u8);void Deal_Temp(u8,u8);extern unsigned char TH, TL, RH, RL;extern unsigned char temp7;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()
6、;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
7、(); 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
8、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(voi
9、d);extern unsigned char temp7;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 temperature2; / 存放温度数据uchar temp7;/ 存放分解的 7 个 ASC
10、II 码温度数据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
11、 k)/*uint i,j;for(i=0;ik;i+)for(j=0;j 8000)Flag_1 = OFF;Status = Ds18b20Data;Ds18b20OutputInitial();/P0_6 设置为输出模式Ds18b20Data = 1;/ 拉高总线 Ds18b20Delay(100);return Status;/ 主机往 Ds18b20 写数据void Ds18b20Write(uchar infor)uint i;Ds18b20OutputInitial();/P0_6 设置为输出模式/ 发送一个字节for(i=0;i= 1;/ 移位 / 主机从 Ds18b20 读数据uchar Ds18b20Read(void)uchar Value = 0x00;uint i;Ds18b20OutputInitial();/P0_6 设置为输出模式 Ds18b20Data = 1;/ 总线拉高,准备读数据 Ds