基于STM32智能遮雨棚系统的设计与实现

 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串口语音模块

  • 扬声器

基于STM32智能遮雨棚系统的设计与实现

摘要:随着物联网技术的快速发展,智能家居产品已经逐渐渗透到人们的日常生活中,为生活带来了极大的便利。传统的遮雨棚大多固定或需要人工操作,不够智能且使用不便。为了解决这些问题,本文设计并实现了一种基于STM32技术的智能遮雨棚系统,该系统集成了多种传感器和步进电机驱动模块,能够根据环境参数自动展开或收回遮雨棚,提高了遮雨棚的智能化水平和实用性。

关键词:STM32;智能遮雨棚;传感器;步进电机

Abstract: With the rapid development of the Internet of Things technology, smart home products have gradually penetrated into people's daily lives, bringing great convenience to life. Traditional rain shelters are mostly fixed or require manual operation, lacking intelligence and convenience. To address these issues, this paper designs and implements an STM32-based intelligent rain shelter system. This system integrates various sensors and stepper motor drive modules, enabling automatic deployment or retraction of the rain shelter based on environmental parameters, thereby enhancing its intelligence and practicality.

Keywords: STM32; Intelligent rain shelter; Sensor; Stepper motor

一、引言

遮雨棚作为户外设施,广泛应用于阳台、露台、庭院等场景,为人们提供了遮阳避雨的功能。然而,市场上现有的遮雨棚大多存在操作不便、智能化程度低等问题。一些可伸缩的屈臂棚虽然在一定程度上解决了固定遮雨棚的局限性,但仍需人工操作,且造价较高。因此,设计并实现一种基于STM32技术的智能遮雨棚系统具有重要意义。

二、系统总体设计

本系统主要由STM32F103C8T6单片机、光敏电阻、DHT11温湿度传感器、MQ-7气敏传感器、步进电机驱动模块、OLED显示屏、DS1302时钟模块、蓝牙模块、JR6001语音模块、按键模块及电源模块组成。各模块之间通过导线连接,实现数据的采集、处理和传输。

  1. STM32F103C8T6单片机:作为系统的核心控制单元,负责数据的处理和控制指令的发送。该单片机基于ARM Cortex-M3内核,具有优异的实时性能和丰富的外设接口,非常适合用于智能家居产品的开发。
  2. 光敏电阻:用于实时采集环境光强度数据,当光照强度发生变化时,光敏电阻的阻值会发生变化,从而输出相应的模拟信号。单片机通过ADC转换获取光照强度值。
  3. DHT11温湿度传感器:用于实时检测环境温湿度,并将数据发送给单片机。
  4. MQ-7气敏传感器:用于检测危险气体浓度,当检测到危险气体浓度超标时,向单片机发送信号。
  5. 步进电机驱动模块:接收单片机的控制信号,驱动步进电机正反转,实现遮雨棚的展开和收回。步进电机具有定位精度高、运行平稳等优点,非常适合用于遮雨棚的驱动控制。
  6. OLED显示屏:用于显示当前时间、温湿度数据、模式信息等,方便用户查看。
  7. DS1302时钟模块:用于读取记录当前时间,为系统提供时间基准。
  8. 蓝牙模块:实现手机端蓝牙APP远程遥控遮雨棚的展开和收回。
  9. JR6001语音模块:用于驱动扬声器播报提示音,如报警声、操作提示等。
  10. 按键模块:提供手动操作接口,用户可通过按键设置系统参数或切换工作模式。
三、系统硬件设计
3.1 传感器模块
3.1.1 光敏电阻

光敏电阻是一种基于光电效应工作的传感器,其阻值随光照强度的变化而变化。在本系统中,光敏电阻用于实时采集环境光强度数据。将光敏电阻连接到STM32的ADC接口,通过ADC转换获取光照强度值。

3.1.2 DHT11温湿度传感器

DHT11是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装。连接方便,体积小,响应速度快,性价比高。

在本系统中,DHT11温湿度传感器用于实时检测环境温湿度,并将数据发送给单片机。DHT11传感器与STM32的连接方式如图XX所示。其中,VCC为电源引脚,GND为接地引脚,DATA为数据引脚。STM32通过DATA引脚与DHT11进行通信,读取温湿度数据。

3.1.3 MQ-7气敏传感器

MQ-7气敏传感器是一种用于检测有害气体的传感器,具有灵敏度高、响应速度快、稳定性好等优点。在本系统中,MQ-7传感器用于检测危险气体浓度,当检测到危险气体浓度超标时,向单片机发送信号。MQ-7传感器与STM32的连接方式如图XX所示。其中,VCC为电源引脚,GND为接地引脚,AOUT为模拟信号输出引脚,DOUT为数字信号输出引脚。STM32通过AOUT引脚读取模拟信号,或通过DOUT引脚读取数字信号,判断危险气体是否超标。

3.2 步进电机驱动模块

步进电机是一种将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机驱动模块采用ULN2003驱动芯片,能够驱动四相步进电机正反转,并具有过载保护功能。单片机通过PWM信号控制步进电机的转速和方向,实现遮雨棚的精确控制。步进电机驱动模块与STM32的连接方式如图XX所示。其中,IN1、IN2、IN3、IN4为控制引脚,分别控制步进电机的正转、反转、停止等状态。VCC为电源引脚,GND为接地引脚。

3.3 OLED显示屏

OLED显示屏是一种具有自发光特性的显示屏,具有对比度高、色彩鲜艳、视角广等优点。在本系统中,OLED显示屏用于显示当前时间、温湿度数据、模式信息等。OLED显示屏与STM32的连接方式如图XX所示。其中,VCC为电源引脚,GND为接地引脚,SCL为时钟引脚,SDA为数据引脚。STM32通过I2C通信协议与OLED显示屏进行通信,发送显示数据。

3.4 DS1302时钟模块

DS1302是一款高性能、低功耗的实时时钟模块,具有涓流充电功能,可为后备电源提供充电。DS1302模块内部包含一个实时时钟/日历和31字节的静态RAM,通过简单的串行接口与微处理器通信。实时时钟/日历电路提供秒、分、时、日、月、星期的年信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM指示、12小时或24小时格式选择。DS1302与STM32的连接方式如图XX所示。其中,VCC为电源引脚,GND为接地引脚,RST为复位引脚,IO为数据引脚,SCLK为时钟引脚。STM32通过SPI通信协议与DS1302进行通信,读取当前时间。

3.5 蓝牙模块

蓝牙模块是一种无线通信模块,可实现短距离内的数据传输。在本系统中,蓝牙模块用于实现手机端蓝牙APP远程遥控遮雨棚的展开和收回。蓝牙模块与STM32的连接方式如图XX所示。其中,VCC为电源引脚,GND为接地引脚,TXD为发送引脚,RXD为接收引脚。STM32通过UART通信协议与蓝牙模块进行通信,接收和发送控制指令。

3.6 JR6001语音模块

JR6001语音模块是一款高性能的语音合成模块,支持TTS(Text To Speech)语音合成技术,可将文本信息转换为语音信息输出。在本系统中,JR6001语音模块用于驱动扬声器播报提示音,如报警声、操作提示等。JR6001语音模块与STM32的连接方式如图XX所示。其中,VCC为电源引脚,GND为接地引脚,TXD为发送引脚,RXD为接收引脚。STM32通过UART通信协议与JR6001语音模块进行通信,发送语音合成指令和文本信息。

3.7 电源模块

电源模块为整个系统提供稳定的工作电压。在本系统中,电源模块采用开关电源,将市电转换为系统所需的稳定直流电压。电源模块的输出电压和电流需满足各模块的工作需求。

四、系统软件设计
4.1 系统初始化

系统初始化包括STM32单片机的I/O口配置、中断设置、传感器初始化、OLED显示屏

四、系统软件设计(续)
4.1 系统初始化(续)

系统初始化还包括时钟初始化、蓝牙模块初始化、语音模块初始化等。时钟初始化用于设置STM32单片机的系统时钟和ADC、I2C、SPI、UART等外设时钟。蓝牙模块初始化用于配置蓝牙模块的通信参数,如波特率、设备名称等。语音模块初始化用于设置语音模块的合成参数,如语速、音量等。

4.2 数据采集与处理

数据采集与处理是系统软件的核心部分。STM32单片机通过ADC接口读取光敏电阻的模拟信号,转换为光照强度值;通过I2C接口读取DHT11温湿度传感器的温湿度数据;通过模拟输入或数字输出读取MQ-7气敏传感器的危险气体浓度数据。采集到的数据存储在单片机的内存中,并根据预设的阈值进行判断和处理。

例如,当光照强度低于预设值时,单片机控制步进电机驱动遮雨棚展开;当温湿度数据超出预设范围时,单片机通过OLED显示屏显示报警信息,并通过语音模块播报提示音;当检测到危险气体浓度超标时,单片机控制指示灯闪烁,并通过蓝牙模块发送报警信息至手机端APP。

4.3 控制模式切换

本系统支持四种雨棚控制模式:自动模式、手动模式、定时模式和遥控模式。用户可通过按键模块切换控制模式。在自动模式下,系统根据环境参数自动控制遮雨棚的展开和收回;在手动模式下,用户可通过按键手动控制遮雨棚的展开和收回;在定时模式下,用户可设置遮雨棚的自动展开和收回时间;在遥控模式下,用户可通过手机端蓝牙APP远程遥控遮雨棚的展开和收回。

4.4 OLED显示与语音播报

OLED显示屏用于实时显示当前时间、温湿度数据、模式信息等。STM32单片机通过I2C接口向OLED显示屏发送显示数据,更新显示内容。语音模块用于播报提示音,如报警声、操作提示等。STM32单片机通过UART接口向语音模块发送语音合成指令和文本信息,驱动扬声器播报提示音。

4.5 蓝牙APP控制

手机端蓝牙APP作为远程遥控界面,用户可通过蓝牙模块与STM32单片机进行通信,实现遮雨棚的远程控制。蓝牙APP采用C#或Java等编程语言开发,具有界面友好、操作简便等特点。用户可通过蓝牙APP设置遮雨棚的控制参数,如展开时间、收回时间等,并实时查看遮雨棚的工作状态。

五、系统调试与测试
5.1 硬件调试

硬件调试是确保系统正常工作的关键步骤。在硬件调试过程中,需要检查各模块的连接是否正确、电源是否稳定、信号传输是否可靠等。对于传感器模块,需要校准其测量精度和响应速度;对于步进电机驱动模块,需要测试其步进角度和转速是否满足要求;对于OLED显示屏和语音模块,需要检查其显示效果和语音质量是否良好。

5.2 软件调试

软件调试是确保系统软件正确运行的重要环节。在软件调试过程中,需要编写测试用例,对系统的各项功能进行逐一测试。测试内容包括数据采集的准确性、控制指令的正确性、OLED显示的清晰度、语音播报的清晰度以及蓝牙APP的遥控功能等。对于发现的问题,需要及时进行修改和优化,确保系统软件的稳定性和可靠性。

5.3 系统测试

系统测试是对整个系统进行全面评估的过程。在系统测试过程中,需要模拟各种实际使用场景,对系统的各项性能指标进行测试。测试内容包括系统的响应时间、稳定性、可靠性以及用户界面的友好性等。对于测试结果,需要进行分析和总结,提出改进意见和建议,以进一步完善系统的功能和性能。

六、结论与展望

本文设计并实现了一种基于STM32技术的智能遮雨棚系统。该系统集成了光敏电阻、DHT11温湿度传感器、MQ-7气敏传感器、步进电机驱动模块、OLED显示屏、DS1302时钟模块、蓝牙模块、JR6001语音模块等多种传感器和执行器,能够根据环境参数自动展开或收回遮雨棚,提高了遮雨棚的智能化水平和实用性。

经过硬件调试、软件调试和系统测试,本系统已实现了预期的功能和性能要求。然而,随着物联网技术的不断发展,智能家居产品的功能将越来越丰富和多样化。因此,在未来的工作中,我们将继续优化和完善本系统的功能和性能,如增加更多的传感器和执行器、提高系统的响应速度和稳定性、优化用户界面的友好性等。同时,我们还将探索将本系统与其他智能家居产品进行联动控制的可能性,以实现更加智能化和便捷化的家居生活体验。

参考文献

[此处列出相关参考文献]

#ifndef  __DHT11_H__
#define  __DHT11_H__
/******************************************************************************************************
========================================include head==================================================
******************************************************************************************************/
#include "main.h"

/******************************************************************************************************
========================================Define I/O==================================================
******************************************************************************************************/

//IO操作函数
#define DHT_W_DATA    PAout(6) //SDA	 
#define DHT_R_DATA    PAin(6)  //SDA 




/* 定义 DHT11 引脚 */
#define DHT_RCC			RCC_APB2Periph_GPIOA
#define DHT_GPIO		GPIOA
#define DHT_GPIO_PIN	GPIO_Pin_6

/******************************************************************************************************
========================================Define Data==================================================
******************************************************************************************************/
typedef struct _DHT11
{
	char Tem_H;		//温度整数部分
	char Tem_L;		//温度小数部分
	char Hum_H;		//湿度整数部分
	char Hum_L;		//湿度小数部分
	
}DHT11_TypeDef;
/******************************************************************************************************
========================================变量定义==================================================
******************************************************************************************************/


/******************************************************************************************************
========================================子函数声明==================================================
******************************************************************************************************/
/**
  * @brief  初始化IO口和参数
  * @param  none.
  * @retval none.
  */
void DHT11_Init(void);


/**
  * @brief  读取40bit数据
  * @param  none.
  * @retval 1 读取成功,0读取失败.
  */
int DHT11_ReadData(void);

/**
  * @brief  获取温度
  * @param  none.
  * @retval Temp, 温度值,高八位为整数部分,低八位为小数部分
  */
int DHT11_GetTem(void);

/**
  * @brief  获取湿度
  * @param  none.
  * @retval Hum,湿度值,高八位为整数部分,低八位为小数部分
  */
int DHT11_GetHum(void);
#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

科创工作室li

你的鼓励将是大学生的创作动力

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

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

打赏作者

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

抵扣说明:

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

余额充值