一、基本介绍
项目名称:基于单片机的智能家居控制系统设计
项目编号:mcuclub-dz-1038
单片机类型:STM32F103C8T6
具体功能:
- 通过MQ-135监测当前环境的有害气体浓度,当检测到有害气体浓度超过最大值时,进行声光报警并开启通风。
- 通过时钟模块获取时间,并可通过按键修正时间。
- 通过光照监测模块在开窗帘的时间范围内,当检测到光照强度高于最大值时自动打开窗帘。
- 通过DHT11监测室内的温湿度。
- 通过人体热释电感应模块监测是否有人,如果系统处于布防状态且检测到有人存在,进行声光报警并手机端弹窗提醒。
- 通过按键设置各阈值,并可手动开启通风和窗帘。
- 通过显示屏显示测量数据。
- 通过WIFI模块将数据发送至手机端,手机端可设置各阈值并远程控制通风、窗帘。
二、资料总览
实物资料:
三、32单片机部分资料展示
1. 实物图展示
单片机型号:STM32F103C8T6
供电接口:TYPE-C
板子类型:PCB集成板,厚度1.2mm,两层板(上下层覆铜接地)
器件类型:元器件基本为插针式,个别降压芯片使用贴片式。
2. 原理图展示
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图仅展示了模块的引脚图,而非内部结构图。
3. PCB图展示
由原理图导出:中间有一个项目编号,隐藏在单片机底座下,插入单片机后不可见。
板子类型:两层板,上下覆铜接地。
四、系统框图
绘制软件:VISIO
此次设计是基于STM32F103C8T6单片机的智能家居控制系统;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,负责处理输入并控制输出。
输入:
- 温湿度检测模块:获取当前室内的温湿度。
- 有害气体检测模块:获取当前环境的有害气体浓度。
- 人体热释电模块:检测是否有人存在。
- 时钟模块:获取当前时间。
- 光照检测模块:检测当前环境的光照强度。
- 按键模块:设置阈值及控制继电器开关。
- 供电电路:为整个系统提供电源。
输出:
- 显示部分:显示当前温度、湿度、时间、有害气体浓度、光照强度以及继电器状态。
- 继电器模块:控制风扇开关。
- 步进电机模块:通过步进电机模拟窗帘的开关。
此外,WIFI模块:
- 获取当前温度、湿度、时间、有害气体浓度、光照强度以及继电器状态。
- 设置阈值并控制继电器开关。
五、部分程序展示
软件版本:keil5
注意:逻辑程序和驱动程序分开,分布于main.c和其他.c文件。
/**********************************
函数名:监测函数
传参值:无
返回值:无
**********************************/
void Monitor_Function(void)
{
if(time_num % 10 == 0)
{
light_value = 500 - 151*(ADC_Get_Value(ADC_CHANNEL_0) / 4096.0 * 3.3); //获取光照值
Ds1302_Read_Time(); //获取时间
Dht11_Get_Temp_Humi_Value(&temp_value,&humi_value); //DHT11读取温湿度
if(MQ_135DO == 0)
{
gas_value = 151*(ADC_Get_Value(ADC_CHANNEL_1) / 4096.0 * 3.3); //获取空气质量值
}
else
{
gas_value = 0;
}
}