当前位置: 首页 > news >正文

【STM32项目开源】基于STM32的智能衣柜系统

目录

一、设计背景和意义

1.1设计背景

1.2设计意义

二、实物效果展示

2.1实物图片

2.2实物演示视频

三、硬件功能简介

3.1项目功能详解

3.2元器件清单

四、主框图与软件流程图

五、硬件PCB展示

六、软件程序设计

七、项目资料包内容

         资料获取:查看主页介绍“充哥单片机设计”


一、设计背景和意义

1.1设计背景

        在物联网技术迅猛发展和智能家居市场持续扩张的背景下,传统家居产品正经历着前所未有的智能化变革。根据Statista的最新数据显示,全球智能家居市场规模预计在2025年将达到1730亿美元,年复合增长率超过13%。在这一浪潮中,作为家居重要组成部分的衣柜却相对滞后,其智能化程度远低于其他家电产品。当前市面上的衣柜产品仍以机械结构和简单存储功能为主,无法满足现代消费者对衣物护理的精细化需求。

1.2设计意义

        从实际应用层面来看,本系统的研发具有多重实用价值:在家庭应用场景中,系统能有效解决衣物存储过程中的霉变、异味等问题。根据中国家用纺织品行业协会的调研数据,我国南方地区每年因衣物霉变造成的经济损失超过20亿元。本系统的智能除湿和消毒功能,可以显著降低这类损失,提升居民生活质量。

        在商业应用领域,如高端服装店、博物馆藏品保管等场景,系统提供的精准环境控制和数据记录功能,可以满足专业级的衣物保管需求。特别是历史数据追溯功能,为权责划分和质量控制提供了可靠依据。

二、实物效果展示

2.1实物图片

2.2实物演示视频

【开源】基于STM32的智能衣柜系统

三、硬件功能简介

3.1项目功能详解

1)传感器:温湿度、光照强度、人体
2)显示:0.96OLED屏幕
3)执行机构:步进电机(衣柜门、通风扇(除湿、消毒灯、LED、加热片
4)数据设定:通过按键或APP设定阈值,切换自/手动模式
5)定时消毒:设定消毒的时间间隔,自动消毒
6)工作模式:手动模式按键或APP控制执行机构,自动模式检测到人体,自动开柜门;湿度过大打开加热片和风扇除湿;打开柜门后,环境光暗开灯
7)接入云平台:系统通过ESP8266 WIFI联网后,接入机智云平台
8)App远程监控:远程监控数据,控制执行机构

3.2元器件清单

  1. 主控采用STM32F103C8T6芯片
  2. wifi通信
  3. 0.96OLED显示屏幕
  4. DHT11温湿度传感器
  5. 光电红外传感器
  6. 步进电机(模拟衣柜门)
  7. 继电器风扇、加热片、LED照明灯
  8. UV紫外线消毒灯。

四、主框图与软件流程图

主框图

流程图

五、硬件PCB展示

六、软件程序设计

#include "delay.h"
#include "sys.h"
#include "bmp.h"
#include "usart.h"
#include "control.h"
#include "key.h"
#include "timer.h"
#include "oled.h"
#include "dht11.h"
#include "uln2003.h"
#include "IoData.h"
#include "adc.h"/****  菜单变量  ****/
uint8_t keu_num = 0;
uint8_t page_num = 1;
uint8_t option = 0;/****  数据变量  ****/
uint16_t temp_door = 30;	//温度阈值
uint16_t humi_door = 60;	//湿度阈值
uint16_t light_door = 3000;	//光照阈值uint8_t led_status = 0;		//照明开关状态
uint8_t wind_status = 0;	//风扇开关状态
uint8_t heat_status = 0;	//加热开关状态
uint8_t rays_status = 0;		//消毒灯状态uint8_t open_flag = 0;		//门开关标志位
uint8_t door_flag = 0;		//门状态标志位
uint8_t mode = 0;			//模式	extern uint16_t rays_time;/****  功能函数声明  ****/
void get_all_sensor_data();		//传感器数据采集
void Sensor_Data_Handle();		//不同模式下控制效果
void Key_event_handle(void);	//按键功能函数
void All_Pin_Init(void);		//系统初始化函数void OLED_Show_FirstPage();		//第一屏显示内容
void OLED_Show_SecondPage();	//第二屏显示内容
void OLED_Show_ThirdPage();		//第三屏显示内容void All_Pin_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//改变指定管脚的映射,JTAG-DP 禁用 + SW-DP 使能delay_init();OLED_Init();uart3_init(115200);		//串口3初始化,波特率115200
//	uart1_init(115200);	//串口1初始化,波特率115200uart2_init(9600);		//串口2初始化,波特率9600DHT11_Init();			//DHT11温湿度初始化Uln2003_Init();			//步进电机初始化Adc_Init();				//光照强度初始化KEY_Init();				//按键初始化TIME_Config();			//定时器初始化IoData_Init();			//人体检测初始化Control_Init();			//消毒灯、补光灯、风扇、加热初始化
}int main(void)
{All_Pin_Init();while(1)	{get_all_sensor_data();	//传感器数据采集Key_event_handle();		//按键监测if(page_num == 1){		//屏幕更新OLED_Show_FirstPage();}else if(page_num == 2){OLED_Show_SecondPage();}else if(page_num == 3){OLED_Show_ThirdPage();}     Sensor_Data_Handle();	//数据处理}
}void Key_event_handle(void)
{keu_num = KEY_Scan(0);		//按键扫描赋值switch(keu_num){case 1:		//按键1按下if(page_num==1){option++;if(option>1){option=0;page_num=2;OLED_Clear();OLED_Show_SecondPage();}else OLED_Show_FirstPage();}else if(page_num==2){option++;if(option>3){option=0;page_num=3;OLED_Clear();OLED_Show_ThirdPage();}else OLED_Show_SecondPage();}else if(page_num==3){option++;if(option>4){option=0;page_num=1;OLED_Clear();OLED_Show_FirstPage();}else OLED_Show_ThirdPage();}	break;case 2:		//按键2按下if(page_num==1){if(option==1)rays_time++;else mode = !mode;}else if(page_num==2){if(option==1)temp_door++;else if(option==2)humi_door++;else if(option==3)light_door+=25;				}else if(page_num==3){if(mode==0){if(option==1){LED=0;led_status = 1;}else if(option==2){Wind = 1;wind_status = 1;}else if(option==3){heat = 1;heat_status = 1;}else if(option==4){Rays = 1;rays_status = 1;}}			}break;case 3:		//按键3按下if(page_num==1){if(option==1)rays_time--;else{if(mode==0){open_flag = 1;door_flag = !door_flag;}}}else if(page_num==2){if(option==1)temp_door--;else if(option==2)humi_door--;else if(option==3)light_door-=25;				}else if(page_num==3){if(mode==0){if(option==1){LED=1;led_status = 0;}else if(option==2){Wind = 0;wind_status = 0;}else if(option==3){heat = 0;heat_status = 0;}else if(option==4){Rays = 0;rays_status = 0;}}			}break;case 4:		//按键1按下break;}
}void get_all_sensor_data()
{DHT11_Read_Data(&DHT_temp,&DHT_hum);    //获取温湿度数据Get_HCSR_Value(&hcsr);					//人体检测Get_Light_Value(&Light_Value);			//获取光照强度
}
void Sensor_Data_Handle()
{//手动模式控制衣柜开关if(mode==0){if(open_flag==1){open_flag = 0;if(door_flag==1){Stepper_RotateByLoop(1,1,1);}else{Stepper_RotateByLoop(0,1,1);}}	}//自动模式	if(mode==1){if(hcsr==1&&door_flag==0){door_flag = 1;Stepper_RotateByLoop(1,1,1);if(Light_Value<light_door)LED = 0;}else if(hcsr==0&&door_flag==1){door_flag = 0;Stepper_RotateByLoop(0,1,1);LED = 1;}/*检测到温湿度超过阈值自动打开风扇通风降温、除湿*/		if(DHT_hum>=humi_door||DHT_temp>temp_door){Wind = 1;wind_status = Wind;}else{Wind = 0;wind_status = Wind;}//湿度大于阈值打开加热片除湿		if(DHT_hum>=humi_door){heat = 1;heat_status = heat;}else{heat = 0;heat_status = heat;}//自动消毒		if(rays_status==1)Rays = 1;else Rays = 0;}
}

七、项目资料包内容

         资料获取:查看主页介绍“充哥单片机设计”

http://www.dtcms.com/a/494397.html

相关文章:

  • python基于web的汽车班车车票管理系统/火车票预订系统/高铁预定系统 可在线选座
  • ssh终端管理多个k8s集群,快速切换配置
  • 景德镇建站公司全国建筑四库一平台
  • 奥运网站模板wordpress在 分栏
  • toLua[七] Examples 06_LuaCoroutine2分析
  • CAD如何生成等高线
  • Java并发工具类详解:Semaphore、CyclicBarrier与CountDownLatch
  • 御剑问情_附带自动假人版_大型3D仙侠类剧情闯关手游_Linux服务端_通用视频架设教程_GM授权网页后台_运营网页后台_安卓苹果IOS双端
  • 基于信息保留与细粒度特征聚合的无人机目标检测
  • AINode部署全指南:从独立部署到Kubernetes集群部署
  • PYcharm——获取天气
  • Kafka多网卡环境配置
  • TypeScript 与淘宝 API:构建类型安全的商品数据查询前端 / Node.js 服务
  • 网站备案名称要求郴州网站排名优化
  • 百度做一个网站多少钱sns营销
  • List<map<String,Object>下划线转驼峰
  • List.subList() 返回值为什么不能强转成 ArrayList
  • phpcms网站转移网站关键词百度排名在下降
  • mac使用本地jdk启动elasticsearch解决elasticsearch启动时jdk损坏问题
  • 手机在初次联网的底层流程-关于EPC信令附着
  • 2025年红米手机上市了哪些款式,本别包含哪些版本,就上市时间、硬件参数、性能、价格等方面进行对比,加入横向竞品对比分析,按价位段划分推荐人群。
  • Go Web 编程快速入门 02 - 认识 net/http 与 Handler 接口
  • 成都网站建设网站制作济南网站制作哪家强
  • 广州做网站的网络公司网站建设美文
  • 云原生时代的数据库字段加密:在微服务与 Kubernetes 中实现合规与敏捷的统一
  • 虚拟机监控全攻略:从基础到云原生实战
  • fastgpt 社区版探究:mongo db 全文检索算法探秘
  • 防爆手机与普通手机有什么区别?防爆手机哪个牌子好?
  • 聊聊 Unity(小白专享、C# 小程序 之 日历、小闹钟)
  • 在vscode中全选后,同时在每行行尾,开始多行编辑(Mac版)