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

STM32项目分享:智能窗帘系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板打样焊接图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1vC411z7hY/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32智能窗帘系统。功能如下:

  1. 光强采集:光敏电阻实时采集环境光强度数据
  2. 温湿度采集:DHT11温湿度传感器采集环境温湿度
  3. 危险气体监测:MQ-7判断危险气体是否超标(超标板子指示灯闪烁)
  4. 窗帘控制:步进电机模拟窗帘驱动开闭
  5. OLED显示:当前时间,温湿度数据,模式信息
  6. 实时时钟:DS1302时钟模块读取记录当前时间
  7. 蓝牙APP控制:手机端蓝牙app远程遥控窗帘
  8. 控制模式:JR6001语音模块驱动扬声器播报提示音
  9. 控制模式:支持四种窗帘控制模式:自动模式、手动模式、定时模式和遥控模块,可按键切换

2.主要器件

  • STM32F103C8T6最小系统板
  • OLED显示屏(4针I2C协议)
  • 光敏电阻
  • DHT11温湿度传感器
  • MQ-7一氧化碳传感器
  • 28BYJ51步进电机
  • ULN2003步进电机驱动芯片
  • 蓝牙模块(BT04-A)
  • JR6001串口语音模块
  • 扬声器

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板打样焊接图

五、程序设计 

int main(void)
{	u16 ii=0;delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600);          //语音模块串口初始化usart3_init(9600);                 //蓝牙使用DHT11_Init();              Adc_Init();Moto_Init();ds1302_gpio_init();	ds1032_init();						//时间设置ds1032_read_realTime();   //读取实时数据 KEY_Init();MQ_Init();LED_Init();OLED_Init();                                  //屏幕初始化TIM3_Int_Init(719,7199); printf("AF:30");//声音调到31档   最大delay_ms(100);delay_ms(1000);printf("A7:00003");//欢迎使用delay_ms(1000);OLED_CLS();while(1){if(Flag_caidan==1)//自动模式{delay_ms(500);Flag_adc=Get_Adc_Average(0,10);delay_ms(500);         if(Flag_adc>1000&&Flag_dakai==0){printf("A7:00001");//打开TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;dakai=1;}if(Flag_adc<1000&&Flag_dakai==1){printf("A7:00002");//关闭TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3);		MotorStop(); } TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;dakai=0;}if(MQ==0){LED0 = !LED0;delay_ms(100);LED0 = !LED0;delay_ms(100);}}if(Flag_caidan==2)//手动模式{if(dakai==1&&Flag_dakai==0){printf("A7:00006");//打开TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;}if(dakai==0&&Flag_dakai==1){printf("A7:00007");//关闭TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;}}if(Flag_caidan==3)//定时模式{if(TimeRAM.kai==1&&Flag_dakai==0){				                            if(TimeRAM.hour_kai==TimeData.hour&&TimeRAM.minute_kai==TimeData.minute){printf("A7:00006");//打开TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;}}if(TimeRAM.guan==1&&Flag_dakai==1){			           if(TimeRAM.hour_guan==TimeData.hour&&TimeRAM.minute_guan==TimeData.minute){printf("A7:00007");//关闭TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;}}}if(Flag_caidan==4)//遥控模式{if(dakai==1&&Flag_dakai==0){printf("A7:00006");//打开TIM_Cmd(TIM3,DISABLE);ii=0;for(ii=0;ii<Num_i;ii++){Motorcw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=1;}if(dakai==0&&Flag_dakai==1){printf("A7:00007");//关闭TIM_Cmd(TIM3,DISABLE); for(ii=0;ii<Num_i;ii++){Motorccw_angle(1,3);		MotorStop(); }TIM_Cmd(TIM3, ENABLE); Flag_dakai=0;}	}}
}

六、实验效果 

七、资料内容

项目分享

相关文章:

STM32项目分享:智能窗帘系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…...

【算法-力扣】72. 编辑距离(动态规划)

目录 一、题目描述 二、解题思路 三、参考答案 一、题目描述 编辑距离 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符 删除一个字符 替换一个字符 示例 1&#…...

Spring 系统架构图

Spring 系统架构图 Spring Framework是Spring生态圈中最基础的项目&#xff0c;是其他项目的根基。 Spring Framework的发展也经历了很多版本的变更&#xff0c;每个版本都有相应的调整 Spring Framework的5版本目前没有最新的架构图&#xff0c;而最新的是4版本&#xff0c;…...

同三维T80005EHS-4K60 4K60 HDMI/SDI编码器

1路4K60 HDMI或12G SDI输入&#xff0c;2路3.5MM音频输入&#xff0c;对应HDMI或SDI&#xff0c;1个USB口和1个SD卡槽&#xff0c;可录像到U盘/移动硬盘/SSD硬盘/TF卡 产品简介&#xff1a; 同三维T80005EHS-4K60 4K60HDMI/SDI H.265编码器采用最新高效H.265高清数字视频压缩…...

React state(及组件) 的保留与重置

当在树中相同的位置渲染相同的组件时&#xff0c;React 会一直保留着组件的 state return (<div><Counter />{showB && <Counter />} </div> ) // 当 showB 为 false, 第二个计数器停止渲染&#xff0c;它的 state 完全消失了。这是因为 React…...

flask返回的数据怎么是转义后的字符串啊

Flask在返回JSON数据时,默认情况下会对特殊字符进行转义,以确保数据能安全地在HTML页面中展示,避免XSS(跨站脚本攻击)等安全问题。如果不希望Flask对JSON响应中的字符串自动转义,通常是因为你希望在前端直接使用这些数据(例如作为JavaScript的一部分),那么需要确保数据…...

C++17并行算法与HIPSTDPAR

C17 parallel algorithms and HIPSTDPAR — ROCm Blogs (amd.com) C17标准在原有的C标准库中引入了并行算法的概念。像std::transform这样的并行版本算法保持了与常规串行版本相同的签名&#xff0c;只是增加了一个额外的参数来指定使用的执行策略。这种灵活性使得已经使用C标准…...

【什么是几度cms,主要功能有什么】

几度CMS内容管理框架是基于 PHP 语言采用最新 Thinkphp 作为开发框架生产的网站 内容管理框架&#xff0c;提供“电脑网站 手机网站 多终端 APP 接口”一体化网站技术解 决方案。她拥有强大稳定底层框架&#xff0c;以灵活扩展为主的开发理念&#xff0c;二次开发方便且…...

组合和外观模式

文章目录 组合模式1.引出组合模式1.院系展示需求2.组合模式基本介绍3.组合模式原理类图4.解决的问题 2.组合模式解决院系展示1.类图2.代码实现1.AbsOrganizationComponent.java 总体抽象类用于存储信息和定义方法2.University.java 第一层&#xff0c;University 可以管理 Coll…...

设置服务器禁止和ip通信

要禁止服务器与特定 IP 地址的通信&#xff0c;可以使用防火墙来设置规则。在 Ubuntu 上&#xff0c;iptables 是一个常用的防火墙工具。以下是使用 iptables 设置禁止与特定 IP 通信的步骤&#xff1a; 阻止所有进出的通信 如果你想阻止服务器与特定 IP 地址的所有通信&…...

中文技术文档的写作规范(搬运)

阮一峰老师的《中文技术文档的写作规范》搬运。 链接指路&#xff1a; https://github.com/ruanyf/document-style-guide/tree/master 内容&#xff1a;对中文技术文档从标题、文本、段落、数值、标点符号、文档体系、参考链接等七大方面进行了简明扼要的介绍。...

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中(一)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 DHTMLX Gantt是一个高度可定制的工具&#xff0c;可以与项目管理应用程序所需的其他功能相补充。在本文中您将学习如何使用自定义上…...

Python使用策略模式生成TCP数据包

使用策略模式&#xff08;Strategy Pattern&#xff09;来灵活地生成不同类型的TCP数据包。 包括三次握手、数据传输和四次挥手。 from scapy.all import * from scapy.all import Ether, IP, TCP, UDP, wrpcap from abc import ABC, abstractmethodclass TcpPacketStrategy(A…...

无文件落地分离拆分-将shellcode从文本中提取-file

马子分为shellcode和执行代码. --将shellcode单独拿出,放在txt中---等待被读取执行 1-cs生成python的payload. 2-将shellcode进行base64编码 import base64code b en_code base64.b64encode(code) print(en_code) 3-将编码后的shellcode放入文件内 4-读取shellcod…...

MySQL 日志(一)

本篇主要介绍MySQL日志的相关内容。 目录 一、日志简介 常用日志 一般查询日志和慢查询日志的输出形式 日志表 二、一般查询日志 三、慢查询日志 四、错误日志 一、日志简介 常用日志 在MySQL中常用的日志主要有如下几种&#xff1a; 这些日志通常情况下都是关闭的&a…...

XML 编辑器:功能、选择与使用技巧

XML 编辑器&#xff1a;功能、选择与使用技巧 简介 XML&#xff08;可扩展标记语言&#xff09;是一种用于存储和传输数据的标记语言。由于其灵活性和广泛的应用&#xff0c;XML编辑器成为开发者、数据管理者和内容创作者的重要工具。本文将探讨XML编辑器的功能、选择标准以及…...

单例模式(设计模式)

文章目录 概述1. 饿汉式&#xff08;hungry Initialization&#xff09;2. 懒汉式&#xff08;Lazy Initialization&#xff09;3.双重检查锁定&#xff08;Double-Checked Locking&#xff09;4. 静态内部类&#xff08;Static Inner Class&#xff09;5. 枚举&#xff08;Enu…...

提升你的编程体验:自定义 PyCharm 背景图片

首先&#xff0c;打开 PyCharm 的设置菜单&#xff0c;点击菜单栏中的 File > Settings 来访问设置&#xff0c;也可以通过快捷键 CtrlAItS 打开设置。 然后点击Appearance & Behavior > Appearance。 找到Background image...左键双击进入。 Image:传入自己需要设置…...

SpringCloud与Dubbo区别?

相同点: dubbo与springcloud都可以实现RPC远程调用。 dubbo与springcloud都可以使用分布式、微服务场景下。 区别: dubbo有比较强的背景,在国内有一定影响力。 dubbo使用zk或redis作为作为注册中心 springcloud使用eureka作为注册中心 dubbo支持多种协议&#xff0c;默认使用…...

简单Mesh多线程合并,使用什么库性能更高

1&#xff09;简单Mesh多线程合并&#xff0c;使用什么库性能更高 2&#xff09;Unity Semaphore.WaitForSignal耗时高 3&#xff09;VS编辑的C#代码注释的中文部分乱码 4&#xff09;变量IntPtr m_cachePtr切换线程后变空 这是第389篇UWA技术知识分享的推送&#xff0c;精选了…...

5分钟掌握PESQ:Python语音质量评估终极指南

5分钟掌握PESQ&#xff1a;Python语音质量评估终极指南 【免费下载链接】PESQ PESQ (Perceptual Evaluation of Speech Quality) Wrapper for Python Users (narrow band and wide band) 项目地址: https://gitcode.com/gh_mirrors/pe/PESQ 想要客观评估语音处理算法效果…...

Ostrakon-VL扫描终端实战:识别冷柜温度计读数并判断是否符合标准

Ostrakon-VL扫描终端实战&#xff1a;识别冷柜温度计读数并判断是否符合标准 1. 项目背景与价值 在零售和餐饮行业中&#xff0c;冷链管理是确保食品安全的关键环节。传统的人工检查冷柜温度方式存在效率低、易出错等问题。Ostrakon-VL扫描终端通过创新的像素风格界面和强大的…...

瑞芯微RK3399固件急救指南:用upgrade_tool搞定系统崩溃后的快速还原

RK3399固件灾难恢复实战&#xff1a;从分区表重建到全系统还原 当一块搭载RK3399的开发板因固件损坏而变砖时&#xff0c;那种面对黑屏的无力感&#xff0c;相信每个嵌入式开发者都深有体会。去年我们产线就遭遇过因批量升级失败导致30台设备集体罢工的紧急状况&#xff0c;正…...

新手零基础入门:在快马平台用AI生成你的首个龙虾部署项目

新手零基础入门&#xff1a;在快马平台用AI生成你的首个龙虾部署项目 作为一个刚接触容器化开发的新手&#xff0c;第一次听说"龙虾部署"这个概念时&#xff0c;我完全摸不着头脑。后来才知道&#xff0c;这其实就是Docker容器化部署的一种形象说法。今天我想分享一…...

百度网盘Mac版下载加速引擎:突破限速的完整优化指南

百度网盘Mac版下载加速引擎&#xff1a;突破限速的完整优化指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 当你面对100KB/s的下载速度&#xff0c…...

ReadCat:开源无广告小说阅读器,为深度阅读者打造纯净体验

ReadCat&#xff1a;开源无广告小说阅读器&#xff0c;为深度阅读者打造纯净体验 【免费下载链接】read-cat 一款免费、开源、简洁、纯净、无广告的小说阅读器 项目地址: https://gitcode.com/gh_mirrors/re/read-cat 在信息爆炸的时代&#xff0c;找到一款无广告、界面…...

SpeedyBee F405 V4 55A飞塔到手后,这5个关键步骤和3个常见坑点你必须知道

SpeedyBee F405 V4 55A飞塔实战指南&#xff1a;从开箱到首飞的深度解析 穿越机玩家拿到新飞塔的兴奋感&#xff0c;就像赛车手拿到新引擎——但这份喜悦往往伴随着"如何正确启动"的焦虑。SpeedyBee F405 V4 55A飞塔作为当前中高端穿越机的热门选择&#xff0c;其性能…...

Polars 2.0大规模清洗崩溃全解析:内存溢出、Schema冲突、LazyFrame中断——3类高频致命报错的5分钟修复方案

第一章&#xff1a;Polars 2.0大规模清洗崩溃全解析&#xff1a;内存溢出、Schema冲突、LazyFrame中断——3类高频致命报错的5分钟修复方案 当处理TB级结构化数据时&#xff0c;Polars 2.0的LazyFrame虽带来性能飞跃&#xff0c;却也因底层执行引擎变更放大了三类典型崩溃风险。…...

G-Helper终极指南:如何用轻量级工具优化华硕笔记本性能与电池健康

G-Helper终极指南&#xff1a;如何用轻量级工具优化华硕笔记本性能与电池健康 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF…...

OFA-VE环境部署:Python 3.11+PyTorch+CUDA一站式配置手册

OFA-VE环境部署&#xff1a;Python 3.11PyTorchCUDA一站式配置手册 1. 引言&#xff1a;认识OFA-VE视觉推理系统 OFA-VE是一个基于阿里巴巴达摩院OFA大模型构建的多模态推理平台&#xff0c;专门用于分析图像内容与文本描述之间的逻辑关系。这个系统采用了现代化的赛博朋克视…...