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

目录

 一.功能设计

二.硬件方案

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

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

  • 11
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
嵌入式系统设计是指将计算机系统集成到其他设备或系统中,以实现特定功能。而基于STM32CubeMX与HAL库的嵌入式系统设计是指利用ST公司的STM32系列微控制器,结合STM32CubeMX工具和HAL库(Hardware Abstraction Layer),进行软硬件设计和开发的过程。 STM32CubeMX是ST公司推出的一款嵌入式系统设计工具,它提供了图形化的界面,可以帮助开发者快速配置STM32微控制器的引脚、时钟、外设等参数,生成初始化代码和项目文件,使整个开发过程更加简化和快捷。 HAL库是STM32系列微控制器的硬件抽象层库,提供了一组封装了底层硬件操作的API接口,使开发者能够更加方便地进行外设控制和数据处理等操作。开发者可以根据具体的需求,选择需要的API接口,编写相应的代码,完成对硬件的控制和操作。 在使用STM32CubeMX和HAL库进行嵌入式系统设计时,可以通过STM32CubeMX工具进行硬件的初始化和配置,生成相应的代码和项目文件。然后,在IDE(集成开发环境)中使用HAL库提供的API接口,编写代码进行软件的开发和应用程序的编写。通过这种方式,开发者可以在短时间内快速完成嵌入式系统设计,提高开发效率和产品质量。 总而言之,基于STM32CubeMX和HAL库的嵌入式系统设计提供了一种快速、简化的嵌入式软硬件开发方法,使开发者能够更加高效地进行嵌入式应用的设计与开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值