STM32项目分享:STM32智能窗户

news/2025/3/19 18:03:05/

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

STM32智能窗户

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32智能窗户

功能如下:

  1. 基于STM32F103C8T6最小系统板
  2. MQ135传感器检测空气质量
  3. DHT11检测环境温湿度情况
  4. 光电红外传感器检测是否有人闯入
  5. 雨量传感器检测是否下雨
  6. 所有检测信息显示在OLED显示屏上
  7. 自动模式下定时开关窗帘,并根据外界情况判断是否关窗
  8. 手动模式可手动按键控制窗帘开关
  9. 按键可设置时间与各参数阈值
  10. 可连接蓝牙APP远程查看信息与控制下发
     

2.主要器件

  • STM32F103C8T6单片机
  • OLED 屏幕
  • DHT11温湿度传感器
  • MQ135空气质量传感器
  • 光电红外传感器
  • 雨量传感器
  • 步进电机
  • 有源蜂鸣器
  • LED灯
  • BT04A蓝牙模块

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

#include "sys.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "delay.h"
#include "gpio.h"
#include "key.h"
#include "oled.h"
#include "usart.h"
#include "adc.h"
#include "dht11.h"
#include "motor_bujin.h"
#include "rtc.h"/****
*******	主函数 
*****/
int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置中断优先分组Delay_Init();	    	 								//延时初始化	  Gpio_Init();		  									//IO初始化Key_Init();		  										//按键初始化Oled_Init();		  									//OLED初始化Oled_Clear_All();										//清屏Usart1_Init(9600);    							//串口1初始化Adc_Init();													//ADC初始化while(RTC_Init());									//RTC初始化Step_Motor_Init();									//步进电机初始化while(DHT11_Init());								//DHT11初始化while(1){Key_function();										//按键函数Monitor_function();								//监测函数Display_function();								//显示函数Manage_function();								//处理函数time_num++;												//计时变量+1Delay_ms(10);if(time_num %10 == 0)LED_SYS = ~LED_SYS;if(time_num >= 5000){time_num = 0;}}
}

六、实验效果 

七、资料内容

项目分享


http://www.ppmy.cn/news/1580382.html

相关文章

Excel VBA实现智能合并重复元器件数据(型号去重+数量累加)

Excel VBA实现智能合并重复元器件数据(型号去重数量累加) 关键词:Excel自动化、VBA数据处理、重复项合并、元器件管理 功能概述 本工具针对电子元器件库存表/采购清单等场景,实现: 按型号列自动识别重复元器件智能合…

Linux的root用户 、用户组

su和exit命令 1、su命令 就是用于账户切换的系统命令,其来源英文单词:Switch User 语法: su [-] [用户名] - 符号是可选的,表示是否在切换用户后加载环境变量,建议带上 参数: 用户名,表示要切换的用户,用户名也可以省略,省略表示切换到…

Ubuntu 安装 gdb 错误解决方案

Ubuntu 安装 gdb 错误解决方案 一、APT 锁定问题 错误内容 Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 922问题分析 在 Ubuntu 系统中执行 apt install 时,若出现上述错误,说明进程 922 正在占…

Spring Boot启动流程及源码实现深度解析

Spring Boot启动流程及源码实现深度解析 一、启动流程概述 Spring Boot的启动流程围绕SpringApplication类展开,核心流程可分为以下几个阶段: 初始化阶段:推断应用类型,加载ApplicationContextInitializer和ApplicationListene…

C++模版(进阶)

文章目录 一、非类型模版参数二、模版的特化2.1 概念2.2 函数模版特化2.2.1 函数模版特化为指针类型注意事项 2.3 类模版特化2.3.1 全特化2.3.2 偏特化(半特化)2.3.3 类模板特化应用示例 三、模版分离编译3.1 什么是分离编译?3.2 模版的分离编译3.3 解决方法! 四、模…

射频前端模块(FEM)的基本原理与架构:从组成到WiFi路由器的应用

射频前端模块(FEM)的基本原理与架构:从组成到WiFi路由器的应用 一、FEM是什么? 射频前端模块(Front-End Module, FEM)是无线通信系统中负责处理射频信号的核心组件。它将多个关键电路集成在一个模块中,包括功率放大器(PA)、低噪声放大器(LNA)、射频开关(Switch)、…

深度学习处理时间序列(2)

在数据中寻找周期性 在多个时间尺度上的周期性,是时间序列数据非常重要且常见的属性。无论是天气、商场停车位使用率、网站流量、杂货店销售额,还是健身追踪器记录的步数,你都会看到每日周期性和年度周期性(人类生成的数据通常还…

windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC

大家好,我是国货系创始人张云泽,最近不少小伙伴在后台问:“听说Windows协议要到期了?我的电脑会不会变砖?”还有人说:“华为笔记本以后用不了Windows了?鸿蒙系统能用吗?”今天咱们就…