室内外环境监测报警系统设计报告

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

|

太原工业学院大学生科技创新

室内外环境监测报警系统

设计报告

系部名称:电子工程系

项目名称:室内外环境监测报警系统

指导教师:陆锋

申请者:冯国栋

年级专业:11级电子信息工程

申请日期:2013年11月24日

联系电话:

;

一、项目主要内容

本项目将利用单片机与传感器等电子器件,设计一款实用方便的室内外环境监测报警系统。设计分为两个模块,室内模块和室外模块。室内模块主要功能是:测量室内温度和湿度、火灾监测报警、烟雾(或有害气体)监测报警;室外模块的主要功能是:测量室外温湿度。两个模块可以通过无线(采用ZigBee)连接,单片机将收集的数据进行处理,将温度、湿度及室内外温差显示在LCD显示器上;当出现火情、有害气体泄漏时,蜂鸣器用不同频率的响声分别对各种情况进行预警。

二、项目主要创新

1.设计的室内外环境监测报警系统灵巧、简便。

2.将日常生活中需要的几种监测报警系统进行统一的整合。最主要的是设计了温湿检测、火灾监测、烟雾及有害气体监测报警。

!

3.可以用我们设计的系统作为控制系统,外接风扇、水雾喷洒或换气系统。根据温度变化调节风扇、根据湿度喷洒水雾或根据空气质量开关换气系统。

4.使用了ZigBee近距离无线组网通讯技术。

三、硬件电路设计

硬件电路包括室内模块和室外模块。室内模块相当于协调器,使用了STM32和CC2530两款芯片,主要用于检测室内温湿度并显示、监测火灾、有毒气体以及报警装置、接收室外温湿信息并显示、控制继电器等。室外模块相当与终端设备,使用CC2530芯片,主要用于检测室外或其他地方温湿参数,并把这些参数无线发射到室内模块进行显示。下面是主要的硬件设计。

1.STM32核心板电路图

}

2530核心板电路图

&

^

3. 电源电路设计

是5V 转芯片

4. DS18B20电路设计

5. DHT11电路设计

6.火灾、烟雾监测电路设计

~

烟雾、有害气体监测使用MQ_2,利用红外接受二极管监测是否有火灾发生。LM393是一种低功率失调电压双比较器,它类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端,两个输入端一个称为同向输入端,一个称为反相输入端。在比较两个电压时,任意一个输入端加一个固定电压作参考电压,另一端加一个待比较信号电压。

7.)

8.LCD 显示电路设计

9.继电器电路设计

*

10.按键电路

-

2530串口通信电路设计

\

四、…

五、部分软件设计

由于程序较长,这里提供部分程序。

1.STM32主程序部分

#include ""

#include ""

#include ""

#include ""

#include ""

%

#include ""

#include ""

#include ""

#include ""

#include ""

#include ""

#include ""

#include ""

|

#include ""

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 KVALUE1 : fs = Set_LCD(ts); break;

case KVALUE2 : h_norm = Set_H_Param(ts,fs); break;

case KVALUE3 : l_norm = Set_L_Param(ts,fs); break;

case KVALUE4 : Reset_Instrument(ts); break;

default : break;

}

switch(fs)

{

case 0 : break;

相关文档
最新文档