0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > STM32单片机自动迎客门红外感应步进电机语音播报41-(pcb+源码+电路图+论文)

STM32单片机自动迎客门红外感应步进电机语音播报41-(pcb+源码+电路图+论文)

来源: 电路城
2021-11-12
类别:工业控制
eye 42
文章创建人 拍明

原标题:STM32单片机自动迎客门红外感应步进电机语音播报41-(pcb+源码+电路图+论文)

基于STM32单片机的自动迎客门红外感应步进电机语音播报系统设计

一、系统概述

随着智能家居与商业场所智能化需求的提升,自动迎客门作为提升用户体验的关键设备,逐渐从传统机械控制向智能感知与交互方向发展。本系统以STM32F103C8T6单片机为核心,集成红外感应、步进电机控制、语音播报三大功能模块,实现“感应-动作-交互”的全流程自动化。系统通过双路红外传感器检测人体方向,驱动步进电机控制门体开闭,并结合语音模块提供个性化迎宾服务,同时支持手动控制、环境光自适应调节等扩展功能,适用于商场、酒店、企业前台等场景。

image.png

二、系统功能设计

1. 核心功能需求

  • 自动感应开门:当红外传感器检测到人体靠近时,步进电机驱动门体打开,并触发语音播报“欢迎光临”。

  • 安全防夹:在关门过程中若再次检测到人体,立即停止关门并反向开门。

  • 手动控制:通过按键实现手动开关门,门内人员离开时播报“欢迎再次光临”。

  • 环境自适应:根据光敏电阻检测的环境光照强度,自动切换白天/夜间模式,夜间模式下语音音量降低30%。

  • 多场景语音:支持5段自定义语音(如“您好,请问需要帮助吗?”),可通过按键切换。

2. 系统架构

系统采用“检测-控制-执行-反馈”四层架构:

  • 检测层:双路红外对管传感器(进入端/离开端)、光敏电阻(ADC接口)。

  • 控制层:STM32F103C8T6单片机(核心处理器)、定时器(信号防抖)、中断服务程序(事件响应)。

  • 执行层:ULN2003驱动芯片(步进电机控制)、VS1053语音模块(语音播放)、LED指示灯(状态提示)。

  • 反馈层:LCD12864显示屏(模式/音量/语音状态)、按键(交互输入)。

三、元器件选型与功能解析

1. 主控芯片:STM32F103C8T6

选型依据

  • 性能优势:基于ARM Cortex-M3内核,主频72MHz,支持实时仿真与跟踪,满足多任务处理需求。

  • 外设丰富:集成GPIO、SPI、I2C、UART、ADC等接口,可直接连接红外传感器、语音模块、显示屏。

  • 开发便捷:支持Keil、IAR等开发环境,提供HAL库与标准外设库,缩短开发周期。

  • 成本效益:相比高端STM32系列,F103C8T6在满足功能的前提下成本更低,适合教学与中小型项目。

功能实现

  • 红外信号处理:通过GPIO读取双路红外传感器状态,判断人体进入/离开方向。

  • 步进电机控制:利用定时器PWM输出控制ULN2003驱动芯片,实现电机正反转与速度调节。

  • 语音模块通信:通过SPI接口向VS1053模块发送语音数据,支持WAV格式音频播放。

  • 显示与交互:通过I2C接口驱动LCD12864显示屏,实时更新模式、音量、语音状态;通过按键中断实现手动控制。

2. 红外感应模块:双路红外对管传感器

选型依据

  • 检测距离:0-3m可调,覆盖常见门体宽度。

  • 方向识别:通过“进入端+离开端”双传感器布局,区分人体进入与离开方向,避免重复触发。

  • 抗干扰能力:采用调制脉冲信号,有效过滤环境光干扰。

功能实现

  • 进入检测:当人体先遮挡“进入端”传感器后遮挡“离开端”传感器时,判定为进入事件,触发开门。

  • 离开检测:当人体先遮挡“离开端”传感器后遮挡“进入端”传感器时,判定为离开事件,触发关门。

  • 防抖处理:通过STM32定时器500ms定时扫描传感器状态,过滤误触发信号。

3. 步进电机控制模块:ULN2003驱动芯片+28BYJ-48步进电机

选型依据

  • 电机型号:28BYJ-48为四相五线步进电机,步距角5.625°/步,通过减速比64:1的齿轮箱实现高精度控制。

  • 驱动芯片:ULN2003为达林顿阵列驱动芯片,最大驱动电流500mA,可直接驱动28BYJ-48电机,无需额外电源模块。

  • 成本与可靠性:28BYJ-48电机与ULN2003组合成本低(约15元),且运行稳定,适合教学与小型项目。

功能实现

  • 开门控制:电机正转一周(2048步),驱动门体完全打开。

  • 关门控制:电机反转一周,驱动门体完全关闭。

  • 防夹功能:在关门过程中若红外传感器检测到人体,立即停止电机并反向旋转。

4. 语音播报模块:VS1053语音芯片

选型依据

  • 功能丰富:支持MP3/WAV/AAC等格式解码,内置16MB Flash存储,可存储多段语音。

  • 接口兼容:通过SPI接口与STM32通信,支持SD卡扩展,便于语音文件更新。

  • 音质优良:采用PWM输出,搭配8Ω 0.5W喇叭,声音清晰无杂音。

功能实现

  • 语音播放:根据STM32指令播放指定语音文件(如“欢迎光临”)。

  • 音量调节:通过PWM占空比调整输出功率,实现5级音量控制。

  • 夜间模式:当光敏电阻检测到环境光低于阈值时,自动将音量降至Level 1。

5. 显示模块:LCD12864液晶屏

选型依据

  • 显示内容:支持128×64像素分辨率,可分区域显示模式、音量、语音状态等信息。

  • 接口简单:通过I2C接口与STM32通信,仅需2根线(SCL/SDA),节省GPIO资源。

  • 低功耗:工作电流约2mA,适合电池供电场景。

功能实现

  • 模式显示:左上区域显示“Day Mode”或“Night Mode”。

  • 音量显示:右上区域显示“Volume: Level X”(X为1-5)。

  • 语音状态:下方区域显示当前播放语音编号(如“Playing Voice 1”)。

6. 电源模块:LM2596S降压芯片

选型依据

  • 输入范围:支持7-35V宽电压输入,兼容12V/24V电源适配器。

  • 输出稳定:固定5V输出,最大电流3A,可为STM32、步进电机、语音模块等供电。

  • 效率高:转换效率达85%,减少发热。

功能实现

  • 电源分配:通过LM2596S将输入电压降至5V,为ULN2003驱动芯片、VS1053语音模块供电。

  • 3.3V转换:通过AMS1117-3.3芯片将5V降至3.3V,为STM32单片机供电。

四、硬件电路设计

1. 主控电路

STM32F103C8T6最小系统包括晶振电路(8MHz高速晶振+32.768kHz低速晶振)、复位电路(按键复位)、调试接口(SWD)。

2. 红外感应电路

双路红外传感器输出端接STM32的GPIO口(PA0-PA3),通过上拉电阻确保无遮挡时输出高电平。

3. 步进电机驱动电路

ULN2003的IN1-IN4接STM32的GPIO口(PB0-PB3),OUT1-OUT4接28BYJ-48电机线圈,COM端接12V电源正极。

4. 语音模块电路

VS1053的SCK、MISO、MOSI接STM32的SPI接口(PB5-PB7),XCS、XDCS、DREQ接普通GPIO口,复位端接STM32控制。

5. 显示模块电路

LCD12864的SCL、SDA接STM32的I2C接口(PB10-PB11),背光端接可调电阻控制亮度。

6. 电源电路

LM2596S输入端接12V电源适配器,输出端接5V总线;AMS1117-3.3输入端接5V总线,输出端接3.3V总线。

五、软件程序设计

1. 主程序流程

int main(void) {
System_Init();       // 系统初始化(时钟、GPIO、中断)
Sensor_Init();       // 传感器初始化(红外、光敏)
Motor_Init();        // 电机初始化(ULN2003)
Voice_Init();        // 语音模块初始化(VS1053)
Display_Init();      // 显示屏初始化(LCD12864)

while(1) {
Sensor_Scan();   // 扫描红外传感器状态
Mode_Switch();   // 根据光敏电阻切换白天/夜间模式
Display_Update();// 更新显示屏信息
Key_Process();   // 处理按键输入
}
}

2. 红外检测与方向判断

void Sensor_Scan(void) {
uint8_t enter_state = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);
uint8_t leave_state = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2);

if (enter_state == 0 && leave_state == 1) {  // 进入事件
Door_Open();
Voice_Play(1);  // 播放“欢迎光临”
}
else if (leave_state == 0 && enter_state == 1) {  // 离开事件
Door_Close();
}
}

3. 步进电机控制

void Door_Open(void) {
for (int i = 0; i < 2048; i++) {  // 正转2048步
Motor_Step(1);  // 正转一步
Delay_ms(2);
}
}

void Door_Close(void) {
for (int i = 0; i < 2048; i++) {  // 反转2048步
Motor_Step(0);  // 反转一步
Delay_ms(2);
}
}

4. 语音播报控制

void Voice_Play(uint8_t id) {
GPIO_ResetBits(GPIOB, GPIO_Pin_6);  // 复位VS1053
Delay_ms(10);
GPIO_SetBits(GPIOB, GPIO_Pin_6);

for (int i = 0; i < id; i++) {  // 发送id个脉冲
GPIO_SetBits(GPIOB, GPIO_Pin_7);
Delay_us(100);
GPIO_ResetBits(GPIOB, GPIO_Pin_7);
Delay_us(100);
}
}

5. 环境光检测与模式切换

cvoid Mode_Switch(void) {uint16_t adc_value = ADC_GetConversionValue(ADC1);if (adc_value < 1000) {  // 夜间模式Voice_SetVolume(1);  // 音量Level 1LCD_ShowString(0, 0, "Night Mode");}else {  // 白天模式Voice_SetVolume(4);  // 音量Level 4LCD_ShowString(0, 0, "Day Mode");}}

六、系统测试与优化

1. 功能测试

  • 红外感应测试:模拟人体进入/离开,系统1秒内触发开门/关门,无误触发。

  • 语音播报测试:播放5段语音,切换流畅,夜间模式音量自动降低。

  • 防夹测试:在关门过程中遮挡传感器,门体立即停止并反向开门。

2. 稳定性测试

  • 连续运行:连续模拟20次人体进入/离开,系统无检测错误或语音误触发。

  • 低功耗测试:5分钟无人体检测时,系统进入低功耗模式,LCD背光关闭,电流降至10mA。

3. 优化方向

  • 增加温湿度检测:集成DHT11传感器,实现环境数据语音播报。

  • 支持Wi-Fi通信:通过ESP8266模块实现远程控制与数据上传。

  • 优化语音算法:采用ADPCM压缩降低存储空间需求。

七、结论

本系统以STM32F103C8T6为核心,通过双路红外传感器、ULN2003驱动芯片、VS1053语音模块的协同工作,实现了自动迎客门的智能化控制。系统功能完整、交互流畅,满足商场、酒店等场景的迎宾需求,同时具备扩展性强、成本低廉的优势,可作为智能家居领域的教学与开发参考案例。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告