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

Proteus仿真

部分单片机程序
#include "config.h"
#include "Lcd1602.h"
#include "ADC.h"
#include "DS1302.h"
#include "DHT11.h"
/************************************************************************/
uint value,y;
int16 temp;
uchar flag_Set;
extern signed char humi_value;//湿度
extern signed char temp_value;//温度
extern uint NUM1;//数码管显示的值
extern uint NUM2;//数码管显示的值
uint TH_SetValue = 30;
uint TL_SetValue = 10;
uint SH_SetValue = 60;
uint SL_SetValue = 40;
uint LUX_SetValue = 40;
uint MQ2_SetValue = 50;
void Key_Scan()
{
if(Set_key==0)
{
delay(20);
if(Set_key==0)
flag_Set=flag_Set+1;//
LCD1602_Write_Cmd(0x01); // 清屏
while(!Set_key);
}
/*********************设定温度上限********************************/
if(Add_key==0&&flag_Set==1)
{
delay(20);
if(Add_key==0)
TH_SetValue++;
while(!Add_key);
}
if(Rec_key==0&&flag_Set==1)
{
delay(20);
if(Rec_key==0)
TH_SetValue--;
while(!Rec_key);
}
/*********************设定温度下限********************************/
if(Add_key==0&&flag_Set==2)
{
delay(20);
if(Add_key==0)
TL_SetValue++;
while(!Add_key);
}
if(Rec_key==0&&flag_Set==2)
{
delay(20);
if(Rec_key==0)
TL_SetValue--;
while(!Rec_key);
}
/*********************设定湿度上限********************************/
if(Add_key==0&&flag_Set==3)
{
delay(20);
if(Add_key==0)
SH_SetValue++;
while(!Add_key);
}
if(Rec_key==0&&flag_Set==3)
{
delay(20);
if(Rec_key==0)
SH_SetValue--;
while(!Rec_key);
}
/*********************设定湿度下限********************************/
if(Add_key==0&&flag_Set==4)
{
delay(20);
if(Add_key==0)
SL_SetValue++;
while(!Add_key);
}
if(Rec_key==0&&flag_Set==4)
{
delay(20);
if(Rec_key==0)
SL_SetValue--;
while(!Rec_key);
}
/*********************设定光照阈值********************************/
if(Add_key==0&&flag_Set==5)
{
delay(20);
if(Add_key==0)
LUX_SetValue++;
while(!Add_key);
}
if(Rec_key==0&&flag_Set==5)
{
delay(20);
if(Rec_key==0)
LUX_SetValue--;
while(!Rec_key);
}
文件列表
