STM32项目分享:智能家电控制系统
创作时间:
作者:
@小白创作中心
STM32项目分享:智能家电控制系统
引用
CSDN
1.
https://blog.csdn.net/qq_44016222/article/details/145367851
本文分享了一个基于STM32的智能家电控制系统项目,详细介绍了其功能、硬件组成、原理图设计、PCB设计以及程序实现。项目通过STM32单片机控制温湿度监测、远程控制和自动报警等功能,具有很高的实用价值和学习参考意义。
一、前言
项目成品图片:
二、项目简介
1.功能详解
基于STM32的智能家电控制系统,主要功能包括:
- STM32F103C8T6单片机系统板作为主控单元
- 显示功能:温湿度数据实时显示在OLED屏幕上
- 自动控制:判断温湿度是否在阈值范围内,否则蜂鸣器报警
- 阈值更改:按键可调节阈值大小
- 远程控制:通过机智云APP远程控制灯光、风扇和窗帘的开关
- 远程监视:机智云APP可以远程监视环境温湿度数据信息
2.主要器件
- STM32F103C8T6单片机
- OLED 屏幕
- DHT11温湿度传感器
- ESP8266-01S WiFi模块
- 继电器
- 大功率LED灯模块
- 风扇模块
- 步进电机
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
OLED_Init();
DHT11_UserConfig();
MOTOR_UserConfig();
Key_Init();
USB_Init();
Buzzer_Init();
Temp_value = FLASH_R(FLASH_START_ADDR); //从指定页的地址读FLASH
Humi_value = FLASH_R(FLASH_START_ADDR+2); //从指定页的地址读FLASH
Timer2_Init(9,14398);
uart2_init(9600);
uart1_init(115200);
GENERAL_TIM_Init();
userInit(); //完成初始赋值
gizwitsInit();
IWDG_Init();
while (1)
{
IWDG_ReloadCounter(); //重新加载计数值 喂狗
switch(Menu)
{
case 1:
Menu1(); //显示菜单1
/*判断电机启动标志位是否为1*/
if(Curtain_ON_Flag == 1)
{
MOTOR_Direction_Angle(1,0,180,1); //顺时针电机旋转 180度
MOTOR_STOP(); //电机停止
Curtain_ON_Flag = 0;
}
/*判断电机关闭标志位是否为1*/
if(Curtain_OFF_Flag == 1)
{
MOTOR_Direction_Angle(0,0,180,1); //逆时针电机旋转 180度
MOTOR_STOP(); //电机停止
Curtain_OFF_Flag = 0;
}
break;
case 2:
OLED_Clear(); //清屏
Menu2(); //显示菜单2
Menu = 3;
case 3:
OLED_Option(SetNum); //显示当前选择的位置
OLED_ShowNum(2,10,Temp_value,2); //显示温度阈值数据
OLED_ShowNum(3,10,Humi_value,2); //显示湿度阈值数据
/*累计按键1按下的次数*/
if(KeyNum == 1)
{
KeyNum = 0;
SetNum++;
if(SetNum > 2)
{
SetNum = 1;
}
}
/*当位置指向温度阈值根据按键3或4调节数值*/
if(SetNum == 1)
{
if(KeyNum == 3)
{
KeyNum = 0;
Temp_value++;
if(Temp_value >= 100)
{
Temp_value = 0;
}
}
if(KeyNum == 4)
{
KeyNum = 0;
Temp_value--;
if(Temp_value >= 100)
{
Temp_value = 99;
}
}
}
/*当位置指向湿度阈值根据按键3或4调节数值*/
if(SetNum == 2)
{
if(KeyNum == 3)
{
KeyNum = 0;
Humi_value++;
if(Humi_value >= 100)
{
Humi_value = 0;
}
}
if(KeyNum == 4)
{
KeyNum = 0;
Humi_value--;
if(Humi_value >= 100)
{
Humi_value = 99;
}
}
}
/*当按键2按下时回到主菜单*/
if(KeyNum == 2)
{
KeyNum = 0;
/*将更改过的阈值存入Flash中*/
FLASH_W(FLASH_START_ADDR,Temp_value,Humi_value);
OLED_Clear(); //清屏
Menu = 1; //显示菜单1
}
break;
default : break;
}
userHandle();
gizwitsHandle((dataPoint_t *)¤tDataPoint);
}
}
六、实验效果
七、包含内容
项目分享
热门推荐
《哪吒2》引领潮流:外国观众的首度体验
《西游记》唐僧与女儿国国王:躲过一世情劫?还是错过一生真爱?
西游记中唐僧在女儿国都经历了什么?
如何合理获取股息收益?这种股息收益的稳定性如何判断?
Stable diffusion教程/经验总结(含所有参数详解)
五行八卦初学知识入门
如何帮助缺乏自信的女生实现自我提升与成长
适合女生的无氧运动!
《羊脂球》:伟大中的“低贱”,虚伪中的“高尚”
名家笔下的春天,真美!
怎么用excel制作血压检测表
“军嫂之家”成为温暖港湾
山西洪洞大槐树移民真相
小白必看!新能源汽车充电保姆级攻略来啦
《哪吒2》票房破百亿!狂飙背后的大湾区企业有哪些?
暗区突围:有效的团队战术是获胜的关键吗?
摩托车的文化影响与艺术表现
记者调查:饮料含糖量标注不清,奶茶店“几分糖”无明确标准
中年女人最舒服的生活方式:3个“不”,少一个都不行
Excel中添加数字标点的三种方法:自定义格式、TEXT函数和公式组合
限价委托与市价委托,投资者的交易选择
暗区突围无限战术行动模式是什么:核心玩法与机制详解
仗着暗区,魔方想在PC打场硬仗
秋天怎么穿才时髦?试试这些“风衣”的搭配示范,洋气显瘦又时髦
心灵博弈:军事战略的心理战术
优化内推招聘流程:构建高效的内推管理体系
奔跑的决心——讲出深圳女性跑者的故事
职业年金是什么
Molecular Psychiatry:神经胶质细胞在认知储备中的作用
探索游戏核心机制:如何增加操作深度,减少复杂度