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

基于STM32单片机的语音控制智能停车场设计

基于STM32单片机的语音控制智能停车场设计


1. 系统功能介绍

随着智能交通与物联网技术的发展,智能停车系统成为现代智慧城市的重要组成部分。传统停车场需要人工管理和人工判断车位占用情况,效率低且易出错。为了实现停车场的自动化与智能化管理,本设计提出一种基于STM32单片机的语音控制智能停车场系统,可通过语音识别实现车位的自动控制,同时配合红外检测实现车位实时状态显示。

本系统以 STM32F103C8T6 单片机为核心,结合 语音识别模块红外车位检测模块OLED显示模块继电器控制模块 等电路,实现停车场车位占用检测与语音控制开关功能,能够有效提升管理效率与用户体验。

1.1 系统主要功能

  1. 车位检测功能
    系统通过红外对管检测各个车位是否有车辆停放,实时判断车位占用状态。共设置三个车位(车位1、车位2、车位3)。

  2. 信息显示功能
    OLED显示屏实时显示三个车位的状态(占用或空闲)、当前停车总数、剩余空位数,方便用户与管理人员直观了解停车场情况。

  3. 语音控制功能
    用户可通过语音模块发出命令,例如“打开1号车位”或“关闭2号车位”,系统识别语音指令后自动控制对应车位的继电器开关,实现智能语音交互。

  4. 自动统计功能
    当检测到车位变化时,系统自动更新车位统计信息并实时显示。

1.2 系统总体构成

系统由以下几部分组成:

  • 主控模块:STM32F103C8T6单片机
  • 语音识别模块
  • 红外对射检测模块
  • OLED显示模块
  • 继电器控制模块
  • 电源电路模块
  • 晶振与复位电路

这些模块共同组成一个完整的嵌入式系统,实现停车场车位检测、显示、控制及语音交互的智能化功能。


2. 系统电路设计

系统的硬件设计是整个智能停车场控制系统的基础,采用模块化结构设计,便于功能扩展和维护。以下分别介绍各个功能模块的设计与作用。

2.1 STM32主控电路设计

STM32F103C8T6 是一款基于 ARM Cortex-M3 内核的高性能32位单片机,具有低功耗、高运算速度、丰富的外设接口和较强的扩展能力。

主要特性:

  • 主频72MHz,运算速度快;
  • 内部带有Flash和SRAM,程序存储方便;
  • 拥有丰富的I/O口,可连接多种外设;
  • 内置多个定时器、USART接口和I²C接口,方便连接语音模块、显示模块等设备。

主要连接关系:

  • PINA~PINB:连接红外检测模块输入;
  • USART1:连接语音识别模块;
  • I2C接口:连接OLED显示屏;
  • GPIO口:控制3个继电器模块;
  • 电源引脚:由5V电源模块稳压供电。

系统采用外部12MHz晶振作为主时钟,保证系统稳定运行,同时配置复位电路,以防止单片机运行异常。

2.2 语音识别模块电路设计

语音识别模块是系统的交互核心,用于识别用户的语音指令并转换为串口数据发送给STM32。常用模块为 LD3320AI-Thinker语音识别模块,支持离线语音识别功能。

工作原理:

用户通过语音发出命令,如“打开1号车位”或“关闭3号车位”,语音模块识别关键词后,通过串口将特定数据包(如“OPEN1”、“CLOSE3”)发送给STM32。STM32解析接收到的串口数据后,执行对应的车位控制操作。

主要电气连接:

  • 模块TXD → STM32 RXD(USART1)
  • 模块RXD → STM32 TXD(USART1)
  • VCC → 5V电源
  • GND → 公共地

模块波特率设为9600bps,采用标准TTL串口通信方式。

2.3 红外车位检测模块电路设计

车位检测部分采用 红外对管检测模块,用于实时检测车位是否有车辆停放。每个车位配备一对红外发射与接收管,当有车辆进入车位时,红外信号被遮挡,接收端输出低电平,单片机据此判断该车位被占用。

模块特性:

  • 检测距离可调;
  • 输出为数字信号(高/低电平);
  • 抗干扰性能好。

信号接线示意:

  • 车位1检测信号 → STM32 GPIO PA0
  • 车位2检测信号 → STM32 GPIO PA1
  • 车位3检测信号 → STM32 GPIO PA2

通过采集3路信号,单片机可以准确判断停车场内每个车位的状态。

2.4 OLED显示模块电路设计

显示部分采用 0.96英寸OLED显示屏,分辨率为128×64,通信方式为I²C。显示内容包括:

  • 三个车位的占用状态;
  • 当前已停车数量;
  • 空闲车位数量。

模块连接:

  • SDA → PB7
  • SCL → PB6
  • VCC → 3.3V
  • GND → 公共地

OLED模块功耗低、对比度高,适合实时数据显示。

2.5 继电器控制模块电路设计

系统采用3个继电器模块分别控制3个车位的“开”与“关”。当用户通过语音发出“打开1号车位”指令时,对应继电器吸合,模拟闸门打开;当发出“关闭1号车位”时,继电器断开,闸门关闭。

控制逻辑:

  • 输出高电平 → 继电器吸合(打开车位);
  • 输出低电平 → 继电器断开(关闭车位)。

连接方式:

  • 继电器1控制线 → STM32 PB0
  • 继电器2控制线 → STM32 PB1
  • 继电器3控制线 → STM32 PB2

继电器驱动电路中使用NPN三极管(如9013)作为开关管,保护单片机I/O口不被高电流损坏。

2.6 电源及辅助电路设计

系统使用5V直流供电,通过AMS1117-3.3稳压芯片为STM32和OLED提供3.3V电源。电源部分增加滤波电容与反接保护二极管,确保系统在复杂环境下稳定运行。


3. 程序设计

系统软件设计采用 模块化结构,分为以下几个部分:

  • 主程序模块
  • 红外检测模块
  • OLED显示模块
  • 语音识别模块
  • 继电器控制模块

程序采用C语言编写,使用Keil5进行编译,并通过ST-Link下载到STM32单片机中。

3.1 主程序设计

主程序负责系统初始化与循环任务,包括定时扫描车位状态、接收语音命令、更新显示内容、控制继电器等操作。

#include "stm32f10x.h"
#include "oled.h"
#include "usart.h"
#include "relay.h"
#include "infrared.h"
#include "voice.h"int main(void)
{OLED_Init();          // 初始化OLEDUSART1_Init(9600);    // 初始化串口通信Infrared_Init();      // 初始化红外检测Relay_Init();         // 初始化继电器控制Voice_Init();         // 初始化语音识别模块while(1){Check_CarState();  // 检测车位状态Display_Info();    // OLED显示信息Voice_Command();   // 处理语音指令}
}

3.2 红外检测程序设计

红外检测模块用于检测车位占用状态,通过读取GPIO输入状态判断是否有车。

uint8_t car_state[3] = {0, 0, 0}; // 0空闲 1占用void Check_CarState(void)
{car_state[0] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);car_state[1] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1);car_state[2] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2);
}

3.3 OLED显示程序设计

OLED显示模块负责将车位状态、已停车数和空车位数显示出来。

void Display_Info(void)
{uint8_t used = car_state[0] + car_state[1] + car_state[2];uint8_t free = 3 - used;OLED_ShowString(0,0,"Parking Info:");OLED_ShowString(0,2,"Slot1:");OLED_ShowString(40,2, car_state[0] ? "Occupied" : "Empty");OLED_ShowString(0,3,"Slot2:");OLED_ShowString(40,3, car_state[1] ? "Occupied" : "Empty");OLED_ShowString(0,4,"Slot3:");OLED_ShowString(40,4, car_state[2] ? "Occupied" : "Empty");OLED_ShowString(0,6,"Used:");OLED_ShowNum(40,6,used,1);OLED_ShowString(60,6,"Free:");OLED_ShowNum(100,6,free,1);
}

3.4 语音识别与命令解析程序设计

当语音识别模块识别到指令时,通过串口发送字符串到STM32,单片机解析指令后执行相应动作。

char voice_cmd[10];void Voice_Command(void)
{if (USART1_ReceiveString(voice_cmd)){if (strcmp(voice_cmd,"OPEN1")==0) Relay_On(1);else if (strcmp(voice_cmd,"OPEN2")==0) Relay_On(2);else if (strcmp(voice_cmd,"OPEN3")==0) Relay_On(3);else if (strcmp(voice_cmd,"CLOSE1")==0) Relay_Off(1);else if (strcmp(voice_cmd,"CLOSE2")==0) Relay_Off(2);else if (strcmp(voice_cmd,"CLOSE3")==0) Relay_Off(3);}
}

3.5 继电器控制程序设计

继电器控制函数根据语音指令开关指定车位。

void Relay_On(uint8_t num)
{switch(num){case 1: GPIO_SetBits(GPIOB, GPIO_Pin_0); break;case 2: GPIO_SetBits(GPIOB, GPIO_Pin_1); break;case 3: GPIO_SetBits(GPIOB, GPIO_Pin_2); break;}
}void Relay_Off(uint8_t num)
{switch(num){case 1: GPIO_ResetBits(GPIOB, GPIO_Pin_0); break;case 2: GPIO_ResetBits(GPIOB, GPIO_Pin_1); break;case 3: GPIO_ResetBits(GPIOB, GPIO_Pin_2); break;}
}

4. 系统运行与调试说明

  1. 语音控制测试
    打开语音识别模块电源,确保波特率匹配后,通过语音说出指令,如“打开1号车位”,系统应响应继电器动作。

  2. 红外检测测试
    在车位前放置障碍物或车辆模型,OLED显示应实时变化,反映车位占用状态。

  3. 显示测试
    系统上电后OLED应显示当前停车信息,随着车位状态变化实时更新。

  4. 综合调试
    通过语音命令与红外检测相结合,实现车位自动控制与语音交互,验证系统功能的完整性与可靠性。


5. 总结

本系统实现了语音识别与车位检测相结合的智能停车场控制系统,具有操作直观、功能全面、响应迅速的特点。通过STM32单片机作为主控核心,系统能够稳定地实现车位检测、语音控制、继电器驱动及信息显示。该设计不仅提升了停车场的智能化水平,还具有良好的可扩展性,可进一步拓展为手机APP远程控制或云端停车数据管理系统,为智能交通提供有力的技术支持。

http://www.dtcms.com/a/449824.html

相关文章:

  • (Kotlin协程十三)Dispatchers.Main, IO, Default 分别适用于什么场景?它们的底层是什么?
  • 郑州网站建设 seo郑州网络营销公司哪家好
  • 中山精品网站建设信息手机可以创建网站吗
  • 学习Java第三十二天——黑马点评43~47
  • 宿迁网站推广公司做企业宣传网站
  • 优选算法-双指针:6.和为s的两个数字
  • [linux仓库]System V 进程通信详解:System V消息队列、信号量
  • css过渡属性
  • Linux系统--文件系统--动静态库
  • Spring进阶 - SpringMVC实现原理(二)DispatcherServlet处理请求的过程
  • SQL 面试高频:INNER JOIN vs LEFT JOIN 怎么考?
  • 【51单片机】【protues仿真】基于51单片机智能路灯控制系统
  • 3d模型免费素材网站wordpress如何修改行距
  • 再探类对象——C++入门进阶
  • 公司网站如何维护wordpress去掉title前空格及keywords最后的逗号
  • 仙居谁认识做网站的广告投放平台代理
  • 智慧餐厅管理系统qq群排名优化软件官网
  • InnoDB核心限制与应对策略
  • 贵州建设厅监理协会网站前后端分离实现网站开发
  • QNX 开发环境搭建
  • Java技术栈 —— 使用MinIO进行大文件分片上传与下载
  • `modprobe`命令 与 `KVM`模块 笔记251006
  • 山东省建设监理协会网站打不开赣州招聘网最新招聘
  • 贵阳网站建设设计个人网页设计作品集分析
  • 音乐介绍网站怎么做做暧暧小视频网站
  • 公网带宽1m能建设电商网站吗wordpress新建数据库
  • C57-断言函数assert
  • 网站的制作建站人汽车业务网站开发公司
  • 详解指针2
  • 第一章 :感知机(上)