文章目录
- 前言
- 一、主要功能介绍
- 视频演示链接:
- 实物图:
- 二、硬件设计
- 三、软件设计
- 1 温度湿度采集
- 2 人体靠近监测,JR6001语音播报模块驱动
- 3 按键阈值设置设计
- 4 继电器控制、舵机控制、LED控制、蜂鸣器控制
- 5 数据上传APP和APP下发控制
- 四、APP设计
- 五、资料目录
- 资料获取
前言
近年来,毕业设计和答辩的要求与难度逐渐加大,传统的毕业设计题目往往缺乏创新性和亮点,难以满足毕业答辩的标准。
为了帮助大家顺利完成毕业设计,减少不必要的精力投入,将分享优质的毕业设计项目,🌝今天的分享的是:
📕基于STM32单片机的智能衣柜系统(源码+原理图+PCB+硬件)
⭐难度系数:4分
⭐工作量:4分
⭐创新点:4分
一、主要功能介绍
此设计通过STM32F103C8T6单片机最小系统+DHT11+加热电路(继电器模拟)+加热电路(继电器模拟)+蜂鸣器电路+0.96寸OLED 屏幕+紫外线杀菌电路(LED模拟)+照明灯LED+JR6001语音播报电路+红外对管感应电路+舵机开关柜门电路+esp8266电路组成
- 💡 1)通过DHT11监测衣柜的温度和湿度;
- 💡 2)温度高于阈值,打开风扇继电器;湿度高于阈值自动启动加热继电器,并触发蜂鸣器报警,屏幕温度和湿度前显示“H”表示超出阈值;
- 💡 3)定时30s不杀菌,定时杀菌5S;紫外线LED2灯模拟杀菌
- 💡 4)当红外对管监测到人体靠近时打开灯光LED1,打开舵机柜门,并进行语音播报
- 💡 5)语音播报:温度高于25度: 请穿夏装;在25到10度之间:请穿春秋装;温度低于10度: 请穿冬装
- 💡 6)可以按键设置温度、湿度阈值
- 💡 7)可以OLED查看日期、温湿度、温度湿度阈值;
- 💡 8)数据上传至云平台,可远程查看衣柜的实时温度、湿度。并控制风扇、烘干的开关。
视频演示链接:
https://www.bilibili.com/video/BV1z54begEZ2/
实物图:
二、硬件设计
三、软件设计
简述一下此设计的软件部分
主要模块代码实现如下
1 温度湿度采集
DHT11_Read_Data();
Temp1=DHT11Data[2];
Humi1=DHT11Data[0];
OLED_ShowNum(50,0,Temp1,5,0);
OLED_ShowNum(50,2,Humi1,5,0);
2 人体靠近监测,JR6001语音播报模块驱动
if(GPIOB7==1) //红外监测
{
PBout(8)=1; //LED灯关
SG90_angle(90);
}
else //红外监测到有人时
{
PBout(8)=0; //LED灯开
SG90_angle(0);
switch(yuyinmark)
{
case 1:
u1_printf("A7:00001\r\n");
break;
case 2:
u1_printf("A7:00002\r\n");
break;
case 3:
u1_printf("A7:00003\r\n");
break;
}
while(GPIOB7==0);
}
3 按键阈值设置设计
switch (val%3)
{
case 0:
get_shuju(); //获取数据
break;
case 1:
set_wendu();//设置温度
break;
case 2:
set_shidu();//设置湿度
break;
default: return 0;
}
4 继电器控制、舵机控制、LED控制、蜂鸣器控制
if(Temp1>=Temp1set || Humi1>=Humi1set)
BEEP_ON;
else BEEP_OFF;
if(Temp1>=Temp1set){
RELAY1_ON;//温度控制
OLED_ShowCH(40,0,"H"); //测试显示中文
}
else {
RELAY1_OFF;
OLED_ShowCH(40,0," "); //测试显示中文
}
if(Humi1>=Humi1set){
RELAY2_ON;//湿度控制
OLED_ShowCH(40,2,"H"); //测试显示中文
}
else {
RELAY2_OFF;
OLED_ShowCH(40,2," "); //测试显示中文
}
if(Temp1>=25)yuyinmark=1;
if(10<=Temp1<25)yuyinmark=2;
if(Temp1<10)yuyinmark=3;
5 数据上传APP和APP下发控制
数据上传:
sprintf(databuff,"{\"temperature\":%d,\"humidity\":%d}",Temp1,Humi1); //构建数据
u2_printf(databuff);
delay_ms(200);
下发数据控制
if(USART2_RX_BUF[0]=='Y') //关闭自动控制
{
auto_k1=0;
RELAY1_OFF;
RELAY2_OFF;
RELAY3_OFF;
LED1_OFF;//紫外光控制
LED4_OFF;//开灯控制
}
if(USART2_RX_BUF[0]=='Z') //开启自动控制
{
auto_k1=1;
}
if(USART2_RX_BUF[0]=='A') //关闭自动控制
{
auto_k1=0;RELAY1_ON;
}
if(USART2_RX_BUF[0]=='B') //关闭自动控制
{
auto_k1=0;RELAY1_OFF;
}
if(USART2_RX_BUF[0]=='C') //关闭自动控制
{
auto_k1=0;RELAY2_ON;
}
if(USART2_RX_BUF[0]=='D') //关闭自动控制
{
auto_k1=0;RELAY2_OFF;
}
四、APP设计
APP设计图如下:
五、资料目录
👇👇👇
资料获取
资料清单