一、功能简介
项目名:基于WiFi通信的智能家居系统的设计与实现
项目编号:dz-875
单片机类型:STM32F103C8T6
具体功能:
1、通过DHT11检测当前环境中的温湿度,检测到温度大于最大值或者湿度大于最大值打开风扇;
2、通过MQ-135检测当前环境中的空气质量,检测到空气质量大于最大值,打开风扇,同时声光报警;
3、通过光照检测模块检测当前环境中的光照强度,检测到光照强度小于最小值自动控制窗帘关闭,否则打开;
4、通过按键可以设置温湿度、空气质量最大值、光照最小值,控制风扇和窗帘开关;
5、通过OLED显示屏显示测量值;
6、通过WiFi模块将检测的数据传输到手机端,手机可以设置参数和控制风扇和窗帘开关
二、系统框图设计
此次设计是基于STM32F103C8T6单片机的智能家居系统设计;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,主要是对输入进行处理然后控制输出;输入又可以分为五部分:第一部分是温度检测模块DHT11,通过DHT11获取湿度值;第二部分是空气质量监测模块使用的是MQ-135模块,通过此模块可以监测当前环境中是否有异味;第三部分是光照检测模块,由此模块可以检测当前环境的照明度。第四部分是按键模块,通过按键可以设置阈值以及控制继电器的开关;第五部分是供电电路,主要是用来对整个系统进行供电;输出主要可以分为两个部分:第一部分是显示部分,显示当前温度,湿度,空气质量,照明度,窗帘和风扇的工作状态;除此之外WIFI模块即使输出也是输入可以通过手机端app来检测到当前的温湿度,空气质量,照明度,窗帘和风扇的工作状态还可以设置阈值还可以控制继电器的开关。

三、32实物图
单片机型号:STM32F103C8T6
板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。
供电接口:TYPE-C
四、原理图
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
五、PCB图
由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。

六、部分程序展示
软件版本:keil5
逻辑程序和驱动程序分开,分布于main.c和其他.c文件
/**********************************
函数名:处理函数
传参值:无
返回值:无
**********************************/
void Manage_Function(void)
{
if(display_num == 0) //测量界面
{
if(temp_value > temp_max*10 || humi_value > humi_max*10 || C6H6_value > C6H6_max) //温度湿度和异味,大于他们对应的最大值时打开风扇。
{
RELAY_FS = 1;
flag_fs = 0;
}
else
{
if(flag_fs == 0)
{
RELAY_FS = 0;
}
}
if(C6H6_value > C6H6_max) //当MQ-135检测值大于最大值自动控打开风扇和并声光报警
{
if(time_num % 20 == 0)
{
ALERT = !ALERT;
}
}
else //否则关闭声光报警和风扇
{
ALERT = 0;
}
if(light_value < light_min) //当光照小于最小值关窗户
{
if(flag_bujin_state == 1)
{
flag_bujin_reversal = 1;
}
flag_motor = 0;
}
else //否则开窗户
{
if(flag_motor == 0)
{
if(flag_bujin_state == 0)
{
flag_bujin_foreward = 1;
}
}
}
}
else //设置界面,关闭风扇及声光报警
{
RELAY_FS = 0;
ALERT = 0;
}
if(flag_finish_5s == 1) //5秒上传一次数据
{
flag_begin_5s = 0;
Aliyun_Send_Data();
flag_begin_5s = 1;
}
}


被折叠的 条评论
为什么被折叠?



