摘要
随着科技的飞速发展,智能家居系统逐渐成为现代家庭的重要组成部分,而单片机作为智能家居系统的核心控制器,发挥着举足轻重的作用。在此背景下,本文设计了一种基于单片机的智能家居环境监测报警系统,旨在提供更加智能、便捷和舒适的家居环境。
本研究采用51单片机作为主控芯片,当环境温湿度超过用户设定的阀值时,系统会触发蜂鸣器闪烁报警,提醒用户注意。若温度或湿度超限,报警信号灯会点亮,并驱动相应的继电器吸合,进而控制通风机、抽湿机、加热器、制冷器、加湿器和报警器等外部设备的开启或关闭。本系统还引入了手机APP控制功能,用户可通过蓝牙连接,实时查看环境数据、设定上下限阈值以及控制继电器,进一步提升了系统的便捷性和智能化水平。
本研究设计的智能家居环境监测报警系统具有实用性和可靠性,有望为现代家庭提供更加智能化和舒适的生活环境。
关键词:单片机;智能家居;传感器;环境监测
目录
1 绪论 1
1.1研究背景和意义 1
1.2国内外研究现状 1
1.3本文主要研究内容 3
2 智能家居技术概述 4
2.1 智能家居技术概述及其主要功能 4
2.2 智能家居在现代生活中的应用 4
2.3 智能家居关键技术分析 5
3 系统总体方案设计 6
3.1 系统设计方案 6
3.2 控制器选型 6
3.3 温湿度检测传感器选型 7
3.4 掉电存储芯片 8
3.5 液晶显示模块 9
3.6 继电器模块 10
3.7 蓝牙通信模块选型 11
4 硬件电路设计 12
4.1 单片机最小系统 12
4.1.1 时钟电路 12
4.1.2 复位电路 13
4.1.3 中断系统 13
4.2 温湿度检测模块 14
4.3 报警模块 14
4.4 液晶显示模块 15
4.5 蓝牙通信模块 16
5 系统软件设计 17
5.1 设计软件简介 17
5.1.1 电路设计软件 17
5.1.2 Keil C51软件 17
5.2 系统控制流程 17
5.2.1主函数控制流程 17
5.2.2 传感器模块 18
5.2.3 液晶显示模块 19
5.2.4 按键模块 19
6 系统运行测试 21
6.1 系统运行测试过程 21
6.2手机APP界面设计 24
总结 25
参考文献 26
说明书

Proteus仿真

部分单片机程序
#include<reg52.h> //头文件
#define uchar unsigned char
#define uint unsigned int
#include"eeprom52.h"
#include"dht11.c"
#include "LCD1602.H"
#include "Uart52_code.H"
#define uchar unsigned char //宏定义
#define uint unsigned int
#define LCD1602_dat P0
sbit beep=P1^0;
sbit led_1=P1^1;
sbit led_2=P1^2;
sbit led_3=P1^3;
sbit led_4=P1^4;
sbit Button_1=P3^3;
sbit Button_2=P3^4;
sbit Button_3=P3^5;
bit read_dht11=1; //读DHT11标志位,等于1时读DHT11
uchar U8T_data_H=0;
uchar U8RH_data_H=0; //U8T是温度数据变量 U8RH湿度
bit tmp=1; //DHT11读取成功标志位
unsigned char DHT[5]; //DHT11读取数据缓冲数组
uchar temp_h,temp_l,hum_h,hum_l,Set_Send,Send_mode,sys_time,T_sec,LED_dat;
uchar bz,ms,state,Receive_Add,Receive_dat[50];
bit beep1,s1,Read_OK,Send_flag,key_1,key_2,key_3;
void delay(uint T)
{
while(T--);
}
void DHT11_dat()
{
DHT_Start(); //DHT11IO初始化
tmp=DHT_ByteRead(&DHT); //读取温湿度数据,如果读取成功,返回1,否则是0
if(tmp) //如果是1,那就将读取的数据,赋值给相应的数据
{ tmp=0;
U8T_data_H= DHT[2];
U8RH_data_H=DHT[0];
}
}
void show() //显示数据
{
if(state==0)
{
LCD1602_write(0,0x80);
LCD1602_writebyte("Temper:");
LCD1602_write(1,0x30+U8T_data_H/10%10);
LCD1602_write(1,0x30+U8T_data_H%10);
LCD1602_write(1,0xdf);
LCD1602_writebyte("C ");
LCD1602_write(0,0xc0);
LCD1602_writebyte("Humidity:");
LCD1602_write(1,0x30+U8RH_data_H/10%10);
LCD1602_write(1,0x30+U8RH_data_H%10);
LCD1602_writebyte("% ");
}else
{
LCD1602_write(0,0x80);
LCD1602_writebyte("TH:");
if(state==1&&s1==1)
{
LCD1602_writebyte(" ");
}else
{
LCD1602_write(1,0x30+temp_h/10%10);
LCD1602_write(1,0x30+temp_h%10);
}
LCD1602_write(1,0xdf);
LCD1602_writebyte("C TL:");
if(state==2&&s1==1)
{
LCD1602_writebyte(" ");
}else
{
LCD1602_write(1,0x30+temp_l/10%10);
LCD1602_write(1,0x30+temp_l%10);
}
LCD1602_write(1,0xdf);
LCD1602_writebyte("C ");
LCD1602_write(0,0xc0);
LCD1602_writebyte("HH:");
if(state==3&&s1==1)
{
LCD1602_writebyte(" ");
}else
{
LCD1602_write(1,0x30+hum_h/10%10);
LCD1602_write(1,0x30+hum_h%10);
}
LCD1602_writebyte("% HL:");
if(state==4&&s1==1)
{
LCD1602_writebyte(" ");
}else
{
LCD1602_write(1,0x30+hum_l/10%10);
LCD1602_write(1,0x30+hum_l%10);
}
LCD1602_writebyte("% ");
}
}
实物图

文件列表
