这里是小殷学长,单片机毕业设计篇6基于stm32的智能衣柜系统
创作不易,拒绝白嫖可私
------------------------------------------智能衣柜系统-----------------------------------------
1.OLED可实时显示当前温湿度,光敏值和衣柜,风扇,灯光状态(开/关)
2.可通过按键进行温湿度阈值修改和风扇,衣柜门开关的控制
3.超过阈值蜂鸣器发出警报
4 通过蓝牙将当前各个数据发送到手机蓝牙APP上,并可通过蓝牙进行界面切换和参数修改
5.通过语音进行界面切换和参数修改
功能可定制
实物展示
下面为该毕设中所用到的相关硬件说明,具体参数不做细节描述
硬件材料
PCB和原理图
main.c部分代码
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
delay_init();
LED_Init(); //LED初始化
Fan_Init(); //风扇初始化
Buzzer_Init(); //蜂鸣器初始化
DHT11_Init(); //温湿度初始化
servo_init(); //sg90舵机初始化
Init_Usart(); //串口初始化
Exit_Init(); //按键外部中断初始化
Lsens_Init(); //光敏初始化
OLED_Init(); //OLED初始化
OLED_Clear(0);
Buzzer_Voice();
Servo_Run(45);
while(1)
{
DHT11_Read_Data(&temp,&humi);
Interface_Task(index_mode); //界面显示
Logical_Task(); //逻辑处理
ldr_task(); //光敏处理
Usart_Task(); //串口任务
TIM_SetCompare1(TIM3,current_duty);
}
}
void Logical_Task(void)
{
//开门即开灯
light_flag = (door_flag == 1)?(1):(0); //三目运算
if(light_flag == 0)
{
current_duty = 0;
}
//将各项数据发送到手机蓝牙端 2s更新一次
if(usart_flag == 1)
{
usart_flag = 0;
sprintf((char *)send_buf,"[%02d:%02d:%02d]-R_T[%02d] R_H[%02d]- S_T[%02d] S_H[%02d]\r\n",hour,min,sec,temp,humi,s_temp,s_humi);
USART1_SendString((unsigned char *)"-----------current data---------\r\n");
USART1_SendString(send_buf);
USART1_SendString((unsigned char *)"--------------------------------\r\n");
}
//风扇控制
if((fan_flag == 1 && flag1 == 0) || (flag1 ==1))
{
FAN_ON() ;
}
else if(fan_flag == 0 && flag1 == 0 || flag1 == 0)
{
FAN_OFF();
}
//门开关
if(door_flag == 1)
{
if(flag == 0)
{
Servo_Run(135);
flag = 1;
}
}
else
{
if(flag == 1)
{
Servo_Run(45);
flag = 0;
}
}
//温湿度阈值判断
fan_flag = ((temp > s_temp || humi > s_humi ) ) ?(1):(0);
//温度过高报警提示
if((temp > s_temp || humi > s_humi ))
{
Buzzer_Voice();
Buzzer_Voice();
}
}
上面为基于stm32f103c8t6的智能衣柜系统设计相关的大致介绍,源码,pcb和原理图以及相关文档说明做了详细说明,有需可私
创作不易,拒绝白嫖