目录
更详细功能与代码讲解请看B站视频: (视频置顶评论有下载链接)
功能介绍:
1.通过DHT11监测环境温度及湿度,超过设定值蜂鸣器报警提示;
2.定时开关窗户进行通风;
3.定时对房间进行喷洒消毒;
4.手动开关窗户及消毒继电器
5.1602液晶显示数据、窗户状态、及当前时间
6.按键设置所有参数
7.所有参数均有掉电保存(只有实物能测试)
整体功能简述:
系统启动后,所有定时时间默认开启,当达到打开时间时,窗户或者消毒设备就会打开,达到关闭时间时,窗户或者消毒设备就会关闭,你可以只设置关闭时间,或者只设置打开时间,也可以在任何时候进行手动打开关闭窗户和消毒设备;当温度或者湿度不在你设定的范围时,会进行蜂鸣器报警;你可以使用按键设置当前时间 打开关闭时间 以及温湿度上下限,在设置中,不需要一直按设置键直到退出,你可以在设置中按手动开关窗户或者消毒的按键直接保存退出。
硬件框图:
软件流程图:
原理图:
提供Altium Designer 及 立创EDA 格式原理图,建议使用立创EDA格式打开,打开方式为将文件夹内 .json 后缀文件拖入https://lceda.cn/editor 立创EDA编辑网站中即可
本次原理图使用立创EDA画出的,对于新手较为方便,全中文易上手,不需要安装任何软件。另,Altium Designer 格式打开后标注会有所丢失,建议使用立创EDA
仿真图:
元器件清单:
如果您不能独自完成焊接,我这边也提供付费焊接服务以及调试,完成后第一时间通过快递寄给您。
主要部分代码展示:
//函数声明
//显示界面 每个菜单的结构
void Dis_menu();
//显示 数据
void Dis_Dat();
//获取数据
void Get_Dat();
//显示设置后改变的数值
void Dis_Set_Dat();
//光标定位设置
void Set_Positi();
//按键扫描
void Key_Scan();
//读取掉电保存的内容
void Read_e2();
//将数据保存在芯片中
void Write_e2();
//处理定时
void Peoc_Time_Alarm();
//处理温湿度报警
void Proc_Alarm_TH();
void main()
{
DelayMs(100);//等待系统稳定
LCD_Init(); //液晶初始化
LCD_Clear(); //液晶清屏
DelayMs(20); //延时20ms
Read_e2(); //读取掉电保存内容
Dis_menu(); //显示菜单结构
init_ds1302();//初始化ds1302
timer0_init();//定时器0初始化
while(1)
{
Get_Dat();//获取数据
Dis_Dat();//显示动态数据
Key_Scan();//按键扫描
Peoc_Time_Alarm();//处理定时功能
Proc_Alarm_TH();//处理温湿度报警
}
}