stm32项目(9)——基于stm32的智能门窗设计

news2024/11/24 1:51:17

目录

 一.功能设计

二.硬件方案

1.单片机

2.显示器

3.温湿度模块

4.烟雾模块

5.光照模块

6.数字舵机

7.蓝牙模块

8. 语音识别模块

三.程序设计

 四.课题意义

五.国内外发展现状


 一.功能设计

 本次设计的功能如下:

        系统包括了语音模块 、传感器数据采集模块和蓝牙模块。系统分为自动模式和手动模式。启动以后进入自动模式,传感器开始检测数据 ,开始读取温度数值,光照数值,烟雾数值。当室内温度高于阈值,室内可燃气体浓度超标,室内光照弱时打开门窗,使用驱动舵机模拟门窗开合。
       使用蓝牙模块控制自动模式与手动模式的切换。用手机给单片机发送字符'3'则进入自动模式,发送字符"4"则进入手动模式。手动模式下,可以 使用语音识别模块,说关则关 开则开 ,也可以用手机打开蓝牙连接门窗 ,在手机上通过蓝牙控制门窗。发送字符"1"控制门窗打开,发送字符“”“2”控制门窗关闭。

        还有一块基于IIC 协议的OLED芯片,在检测到温湿度、光照、烟雾时时 显示数据,同时也会显示“AUTO”、"HAND"等字样,用于提示当前所处模式。

        本次使用的实物如下:

        完成后的实物图如下:(部分功能展示)

 

二.硬件方案

1.单片机

        单片机使用STM32F103C8T6,是自己画的板子。原理图、PCB如下:

 

 

        STM32F103C8T6是一款由STMicroelectronics公司生产的32位ARM Cortex-M3内核微控制器。以下是该芯片的一些特点:

        1. 32位ARM Cortex-M3内核:该芯片采用了32位的ARM Cortex-M3处理器,具有较高的性能和较低的功耗。

        2. 高主频运行:STM32F103C8T6芯片的主频可以高达72MHz,使其具备较快的运行速度。

        3. 64KB闪存和20KB RAM:该芯片内置64KB的闪存和20KB的RAM,可以存储程序代码和数据。

        4. 优秀的通信能力:STM32F103C8T6芯片支持多种通信接口,包括SPI、I2C和USART等,便于与外部设备进行通信。

        5. 丰富的外设资源:该芯片提供了多个GPIO引脚、定时器、PWM输出、ADC和DAC等外设资源,方便连接和控制外部设备。

        6. 低功耗模式:STM32F103C8T6芯片在休眠模式下具有低功耗特性,可有效延长电池寿命。

        7. 多种封装形式:该芯片提供了多种封装形式,如TQFP48和LQFP48等,适应不同的应用需求。

2.显示器

 显示屏选择的是0.96寸OLED液晶屏幕,实物图如下所示:

该模块是四针的,采用IIC协议,像素为64*128.使用方便、节约引脚。

3.温湿度模块

         温湿度传感器选择的是DHT11,实物图如下:

        DHT11传感器由温湿度感测元件、AD转换电路和数字信号处理电路组成。它采用单总线传输方式,通过一个总线线路即可同时获取温度和湿度数据。DHT11的测量范围为温度0℃至50℃,湿度20%RH至90%RH。

       DHT11传感器的使用非常简单,只需将其三个引脚分别连接到供电(VCC)、地(GND)和数据(DATA)引脚即可。通过单总线协议,可以通过读取引脚上的数字信号来获取温度和湿度值。通常情况下,开发者需要使用相应的库或驱动程序来与DHT11传感器进行交互,以便读取温湿度数据并进行进一步的处理和应用。
 

4.烟雾模块

        MQ2是一种常见的气体传感器模块,用于检测和测量环境中的可燃气体、烟雾和一些有害气体。

实物图如下:

 

        MQ2传感器模块基于半导体气敏元件,通过检测气体的电性特性变化来判断环境中气体的存在和浓度。它可用于检测多种可燃气体,如甲烷、丙烷、乙烷等,以及烟雾和一些有害气体,如一氧化碳等。MQ2模块的输出信号通常是模拟信号,其信号强度与环境中目标气体的浓度成正比。可以通过模拟转数字转换(ADC)将模拟信号转换为数字值,然后进行进一步的处理和判断。

        使用单片机的AD转换功能,读取该模块输出电压的大小,就可以知道环境中气体浓度的大小。

5.光照模块

        光敏电阻模块如下图所示: 

           光敏电阻模块(Photoresistor Module)是一种基于光敏电阻原理的传感器模块。它是一种被广泛应用于光敏感测领域的组件,常用于测量环境中的光强度。

        光敏电阻模块通常由光敏电阻元件和调节电路组成。光敏电阻元件是一种能随着光照强度变化而改变电阻值的组件。当光照强度增加时,电阻值会减小;反之,当光照强度减小时,电阻值会增加。调节电路通常用于对光敏电阻的输出进行放大和转换。

        光敏电阻模块可以通过数字或模拟信号进行输出。在数字输出模式下,当光敏电阻检测到的光强度超过预设阈值时,输出高电平;否则,输出低电平。在模拟输出模式下,光敏电阻模块会输出一个与光强度成正比的电压或电流信号。

        使用单片机的AD转换功能,就可以知道环境中光照强度了。

 

6.数字舵机

本次使用金属数字舵机,图片如下:

 

         可见,只要给该舵机一定时间的高电平,就能控制舵机转动到对应的角度!

7.蓝牙模块

        蓝牙模块选用HC08,实物图:

       蓝牙模块是一种用于无线通信的设备,能够实现设备之间的短距离数据传输和通信。蓝牙模块通常包含了蓝牙无线通信所需的硬件和软件功能,可以轻松地与其他蓝牙设备进行配对和通信。

8. 语音识别模块

        语音模块使用SU03T,实物图如下:

         使用这个模块需要自己去它的官网DIY,主要就是设置它的指令集,也就是它所能够识别的语音,设置一下高低电平输出的引脚。网络上有很多教程,很简单。而且这个模块识别率很高,基本不会误触。这个模块需要自己焊接麦克风和扬声器上去!!

        本次设计时,记得语音模块的A25管脚用杜邦线和单片机的PB6连接,因为识别到开关门窗对应的指令后,模块A25上电平变化(这个开在它的官网上面DIY,自己设定即可)

三.程序设计

        主程序代码如下:

#include "main.h"				
#include "oled.h"
#include "dht11.h" 
#include "delay.h"
#include "adc.h"
#include "arm.h"

u8 temperature=0;  	    
u8 humidity=0;   
u8 temp_yuzhi=30;    //温度阈值
u16 light_yuzhi=2000;
u16 smoke_yuzhi=1400;   //烟雾浓度阈值

int flag=1;
int cur_status=0;    //标记窗户状态  1为打开  0为关闭

int main( void )
{
   u16 light=0;      //光照数值
   u16 smoke=0;      //烟雾数值
	uint8_t i = 0;
	
	drv_led_init( );
	//drv_delay_init();
	delay_init();	    	 //延时函数初始化	
	OLED_Init();			//初始化OLED  
	OLED_Clear();
	DHT11_Init();	//DHT11初始化
   Adc_Init();		  		//ADC初始化
   MOTOR_Init();        //舵机初始化
   Voice_Init();          //语音初始化
   USART2_init(9600);			//串口2初始化函数


	while(1)
	{	
	
		//OLED_Clear(); 		
      DHT11_Read_Data(&temperature,&humidity);	//读取温湿度值	
      OLED_ShowString(1, 1,"T:");
      OLED_ShowNum(1, 3, temperature, 2);       //显示测量到的温度
		OLED_ShowChar(1, 5, 'C');
		
      OLED_ShowString(1, 8,"Y:");         
      OLED_ShowNum(1, 10, temp_yuzhi, 2);       //显示温度的阈值
		OLED_ShowChar(1, 12, 'C');
      
      
     
      
      light=4096-Get_Adc(ADC_Channel_1);     //光照值    0-4096    数值越大  光照越强
      OLED_ShowString(2, 1,"L:");
      OLED_ShowNum(2, 3, light, 4);       //显示测量到的光照
      
      OLED_ShowString(2, 8,"Y:");
      OLED_ShowNum(2, 10, light_yuzhi, 4);       //显示光照阈值
      
      
      
      smoke=Get_Adc(ADC_Channel_0);          //读取烟雾数值
      OLED_ShowString(3, 1,"M:");
      OLED_ShowNum(3, 3, smoke, 4);       //显示测量到的烟雾浓度
      OLED_ShowString(3, 8,"Y:");
      OLED_ShowNum(3, 10, smoke_yuzhi, 4);       //显示光照阈值
      
      if(flag==1)    //自动模式
      {   
         if(temperature>temp_yuzhi)
            servo(180);          //如果温度大于阈值  开窗
      
         if(light<light_yuzhi)
            servo(180);          //如果光照小于阈值  开窗
         else
            servo(0);            //否则关窗
      
         if(smoke>smoke_yuzhi)
            servo(180);          //如果烟雾大于阈值  开窗
      
          OLED_ShowString(4, 1,"AUTO");
      }
      else if(flag==0)     //手动模式
      {
          OLED_ShowString(4, 1,"HAND");
          if(PBin(6)==0 &&cur_status==1)
          {  
              servo(0);            //关窗
              cur_status=0;
          }
          else if(PBin(6)==1 &&cur_status==0)
          {
              servo(180);            //开窗
              cur_status=1;
          }
      }
		delay_ms(500);

	}
}

 四.课题意义

        基于单片机的智能门窗课题具有以下意义:

        1. 安全防护:智能门窗系统可以提供额外的安全防护功能,例如通过传感器检测门窗状态,实现门窗的自动开关和锁定,防止未经授权的进入。此外,通过配合图像识别和人脸识别技术,可以实现更高级的访问控制和身份验证,确保家庭或办公场所的安全。

        2. 能耗节约:智能门窗系统可以通过传感器和控制器自动调节室内外环境的温度和光照,以实现能源的有效利用和节约。例如,在温度适宜的情况下,智能窗户可以通过光照传感器自动调节窗帘的开合程度,最大限度地利用自然光,降低室内照明能耗。

        3. 增加便利性:智能门窗系统可以通过自动化和远程控制功能,提供更高的便利性和舒适度。例如,通过手机应用程序或遥控器,可以远程控制门窗的开闭,实现远程开关和监控。此外,可以通过预设的时间表或传感器触发器,实现自动开关门窗,提供更便捷的使用体验。

        4. 环境监测:智能门窗系统可以集成各种传感器,用于监测和检测室内外的环境参数,如温度、湿度、CO2浓度等。通过实时监测和数据记录,可以对室内环境进行评估和控制,提供更加健康和舒适的生活环境。

        5. 学习与创新机会:基于单片机的智能门窗课题可以促使学生深入研究和应用微控制器、传感器、通信技术等方面的知识。通过设计和开发智能门窗系统,学生可以学习软硬件的协作,培养解决问题和创新思维的能力。

        综上所述,基于单片机的智能门窗课题在提升安全性、节约能源、增强便利性、实现环境监测方面具有重要意义。它不仅可以推动智能家居技术的发展和应用,也提供了学习和实践的机会,培养学生的技术能力和创新精神。

 

五.国内外发展现状

        智能门窗技术在国内外都有不断发展和应用。以下是国内外智能门窗技术的一些发展现状:

        国内发展现状:
        1. 多家国内公司在智能门窗领域进行了研发和生产,涵盖了门禁系统、自动门窗、智能锁等产品。例如,海康威视、华为、小米等公司在智能门禁领域有较大的市场份额。

        2. 智能门窗系统广泛应用于住宅小区、商业写字楼、酒店、公共场所等场景,通过传感器、控制器和通信技术实现对门窗的远程监控和控制。

        3. 在安全方面,国内智能门禁系统采用多种技术,如密码锁、指纹识别、人脸识别等,提供多层次的安全保护。

        4. 精准控制是国内智能门窗发展的一个方向,通过多种传感器检测室内外温度、湿度、照明等参数,实现自动调节门窗的开闭状态,提供最佳的舒适性和能效。

        国外发展现状:
        1. 发达国家如美国、欧洲等地,智能门窗技术已相对成熟并得到广泛应用。智能门窗凭借智能化、安全化的特点,被广泛用于住宅、商业和公共场所。

        2. 纳入智能家居生态系统:智能门窗系统已经成为智能家居生态系统的一部分,通过与其他智能设备的联动,实现更智能、便捷的用户体验。

        3. 多种技术融合:在智能门窗技术中,人工智能、物联网、大数据等新技术逐渐融入,实现更加智能、个性化的门窗控制。

        4. 环保与节能:智能门窗系统在能源管理方面取得了显著进展,通过温度感应、光感应等技术,实现室内外环境的智能调节,以达到节能减排和环保的目的。

        总体而言,国内外智能门窗技术都在不断创新和完善。随着智能家居市场的发展和普及,智能门窗技术将进一步向多样化、智能化和个性化方向发展,为人们提供更便捷、舒适、安全的生活体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/857398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

冠达管理:炒股知识入门?

股市出资是指将资金投入到股票商场&#xff0c;在商场改变中获取收益的出资行为。股票商场波动性大&#xff0c;收益高&#xff0c;招引了大量出资者的眼球&#xff0c;但是也需要出资者具备一定的常识和技能。下面从多个角度剖析&#xff0c;帮助初学者了解股市出资。 一、基本…

恒运资本:股票印花税下降有什么影响?什么原因导致下降?

在进行股票教育过程中是需求收取必定的手续费的&#xff0c;比如说买卖佣钱、印花税、过户费等等。那么股票印花税下降有什么影响&#xff1f;什么原因导致下降&#xff1f;下面就由恒运资本为大家剖析&#xff1a; 股票印花税下降有什么影响&#xff1f; 1、对于企业&#xf…

Effective Java笔记(32)谨慎并用泛型和可变参数

故事的小黄花 从出生那年就飘着 童年的荡秋千 随记忆一直晃到现在 可变参数&#xff08; vararg &#xff09; 方法&#xff08;详见第 53 条&#xff09;和泛型都是在 Java 5 中就有了&#xff0c;因此你可能会期待它们可以良好地相互作用&#xff1b;遗憾的是&#xff0c;它们…

python科研应用知乎,python库如何安装

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python科研应用知乎&#xff0c;python scipy库安装&#xff0c;现在让我们一起来看看吧&#xff01; 首先cmd进入python-s目录&#xff0c;然后再输入代码 1. 安装numpy 在线安装。此方法参考网页&#xff1a; https:/…

LeaferUI - 性能强悍、简洁轻量的 HTML5 Canvas 2D 图形 UI 绘图框架,用于 web 端在线图形设计、图表、白板、数据可视化等场景

最近想做一个轻巧的在线画册和海报设计工具&#xff0c;最近发布的 LeaferUI 特别适合这样的场景。 LeaferUI 是什么&#xff1f; Leafer UI 是基于 LeaferJS 开发的一套绚丽多彩的 UI 绘图框架&#xff0c;帮助开发者快速生成图形界面。LeaferJS 是一个基于 HTML5 Canvas 开…

3个优秀的PPT模板网站,让你的演示报告更出色!

PPT&#xff0c;作为我们在日常学习和工作中常用的一种呈现工具&#xff0c;其作用和影响力不言而喻。一份精心制作的PPT不仅可以增强观众的理解和记忆&#xff0c;而且还能展示演讲者的专业性和深度。然而&#xff0c;从零开始制作PPT可能需要花费大量的时间和精力&#xff0c…

6款好用的思维导图在线制作网站盘点,拒绝低效、探索创意!

思维导图以其直观、系统的特性&#xff0c;成为了我们理清思路、整理信息的强大助手。利用好思维导图&#xff0c;我们可以更好地理解信息、链接概念&#xff0c;进一步提高我们的学习和工作效率。 在众多制作思维导图的软件中&#xff0c;在线思维导图制作网站更是因其…

opencv基础53-图像轮廓06-判断像素点与轮廓的关系(轮廓内,轮廓上,轮廓外)cv2.pointPolygonTest()

点到轮廓的距离 在 OpenCV 中&#xff0c;函数 cv2.pointPolygonTest()被用来计算点到多边形&#xff08;轮廓&#xff09;的最短距离&#xff08;也 就是垂线距离&#xff09;&#xff0c;这个计算过程又称点和多边形的关系测试。该函数的语法格式为&#xff1a; retval cv2…

(6)(6.3) 复合连接的故障处理

文章目录 6.3 复合连接的故障处理 6.4 相关话题 6.3 复合连接的故障处理 带有 F7 或 H7 处理器并有 CAN 接口的自动驾驶仪使用的固件提供两个 USB 接口。一个用于正常的 MAVLink 连接&#xff0c;一个用于 SLCAN 串行连接到 CAN 接口进行配置和固件更新。这被称为复合型 USB…

自定义 视频/音频 进度条

复制代码根据自己需求改动就可以了 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><metaname"viewport"conten…

关于APP备案、小程序备案的问题,如何备案?

近日&#xff0c;工信部发布了关于开展移动互联网应用程序备案工作的通知。为落实相关法律法规要求&#xff0c;促进互联网行业规范健康发展&#xff0c;进一步做好移动互联网信息服务管理&#xff0c;现组织开展移动互联网应用程序&#xff08;以下简称 APP&#xff09;备案工…

2023牛客暑期多校训练营7

M.Wring Books 问从1到n所有数的数位加起来一共是多少 假设n为1025 我们分别从个位,十位,百位,...考虑 对于个位,1到1025每个数都有个位,所以加1025 对于十位,1到1025中1到9没有十位,所以加1025-9 对于百位,1到1025中1到99没有百位,所以加1025-99 对于千位,1到1025中1到…

爬虫017_urllib库_get请求的quote方法_urlencode方法_---python工作笔记036

按行来看get请求方式 比如这个地址 上面这个地址复制粘贴过来以后 可以看到周杰伦变成了一堆的Unicode编码了 所以这个时候我们看,我们说https这里,用了UA反爬,所以这里 我们构建一个自定义的Request对象,里面要包含Us

博客项目(Spring Boot)

1.需求分析 注册功能&#xff08;添加用户操纵&#xff09;登录功能&#xff08;查询操作)我的文章列表页&#xff08;查询我的文章|文章修改|文章详情|文章删除&#xff09;博客编辑页&#xff08;添加文章操作&#xff09;所有人博客列表&#xff08;带分页功能&#xff09;…

Claude 2、ChatGPT、Google Bard优劣势比较

​Claude 2&#xff1a; 优势&#xff1a;Claude 2能够一次性处理多达10万个tokens&#xff08;约7.5万个单词&#xff09;。 tokens数量反映了模型可以处理的文本长度和上下文数量。tokens越多&#xff0c;模型理解语义的能力就越强&#xff09;。它在法律、数学和编码等多个…

【EI/SCOPUS检索】第三届新媒体发展与现代化教育国际学术会议(NMDME 2023)

第三届新媒体发展与现代化教育国际学术会议&#xff08;NMDME 2023&#xff09; The 3rd International Conference on New Media Development and Modernized Education 第三届新媒体发展与现代化教育国际学术会议(NMDME 2023)将于2023年10月13-15日于西安召开。会议旨在为新…

【实测有效】朋友圈截图生成,制作朋友圈网页教程

使用教程可以自己看工具的使用手册。 Windows电脑版&#xff1a; https://imageio.jscs.top/zip/wxchat-moment-windows Mac电脑版&#xff1a; https://imageio.jscs.top/zip/wxchat-moment-mac 比如&#xff0c;你可以使用朋友圈评论生成器制作一段搞笑的评论回复&#…

【雕爷学编程】Arduino动手做(01)---干簧管传感器模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

Winrar右键没有压缩选项,怎么找回?

我们安装了WinRAR之后想要压缩文件&#xff0c;但是右键点击文件之后发现并没有WinRAR压缩选项&#xff0c;这应该如何设置才能出现右键带有压缩选项呢&#xff1f;方法如下&#xff1a; 首先打开WinRAR&#xff0c;在上面功能中点击选项 – 设置 然后我们在设置界面中切换到集…

openLayers实战(四):设置地图中心点、修改地图中心点

截至到目前阶段的功能&#xff0c;我自己实现最完整的代码 import "ol/ol.css"; import Map from "ol/Map"; import Feature from "ol/Feature"; import VectorSource from "ol/source/Vector"; import Overlay from "ol/Overlay…