基于 STM32 的无人停车场项目系统【开源项目】
基于 STM32 的无人停车场项目系统【开源项目、免费】
随着智慧城市、物联网的快速发展,无人化、智能化的停车场系统已经逐渐成为趋势。传统停车场依赖人工值守,效率低、易出错,而基于 STM32 控制器结合 ESP8266 无线通信模块的无人停车解决方案,则能够实现自动识别、远程控制、在线支付、车辆管理等功能,大幅降低人力成本。
本文将从系统架构、核心模块、通信协议、软件设计以及实现细节等方面,深入解析“基于 STM32 + ESP8266 的无人停车场项目”的完整技术方案。
源码分享
直接放到之前写的文章里了,免费开源,下载学习即可。
https://blog.csdn.net/weixin_52908342/article/details/155577063

一、项目概述
本项目构建一个低成本、可扩展、适合中小型停车场使用的 无人停车系统。系统以 STM32 为主控,负责传感器采集、控制闸机、计费逻辑等本地动作;通过 ESP8266 实现与云端服务器的 Wi-Fi 通信,使停车场具备远程监控与管理能力。整体设计目标包括:
- 自动识别车辆进出(红外/超声波检测)
- 通过 ESP8266 与服务器交互,实现车位状态上报
- 自动计费与云端账单同步
- APP/网页端查看车位与账单信息
- 闸机自动抬杆 / 落杆控制
- 数据上云,实现多端同步管理
适合用于:小区、写字楼、校园、企业园区的无人化停车管理。
二、系统总体架构

系统主要由以下几个部分构成:
1. 现场端(Edge)
- STM32F103(主控)
- 红外车检传感器 / 地磁模块 / 超声波测距
- 道闸电机驱动(PWM/继电器)
- 车牌识别模块(可选)
- OLED/TFT 屏显示车位信息
- 按键输入(管理员调试)
2. 通信模块
-
ESP8266(通过 UART 与 STM32 通信)
- 负责 Wi-Fi 配网
- 上报数据到服务器
- 接收服务器下发指令(如远程开闸)
3. 云服务端
- 支持 REST API 或 MQTT
- 保存停车记录与车位状态
- Web/APP 端查看界面
4. 用户端
-
微信小程序 / 网页控制台
- 查看车位状态
- 在线缴费
- 查询停车历史记录
这样,整个系统构成了一个 边缘计算 + 云端协同 的完整无人停车系统。
三、硬件设计详解

1. 主控 STM32F103
为什么选择它?
- 高性价比
- SPI、UART、GPIO 资源丰富
- 能轻松驱动传感器、OLED、继电器、电机
STM32 负责:
- 读取车位状态(传感器)
- 计算车辆在场时间
- 控制闸机开合
- 与 ESP8266 通信(命令/数据同步)
2. 车检传感器
常见方案:
| 方案 | 优点 | 缺点 |
|---|---|---|
| 红外对射 | 成本低 | 户外稳定性差 |
| 超声波 | 室内可靠 | 环境噪声影响 |
| 地磁传感器 | 最专业 | 成本高 |
本项目使用 超声波 SR04 来检测车辆是否驶入/驶出。
3. ESP8266 通信模块
ESP8266 通过 UART 与 STM32 连接,实现:
- 连接 Wi-Fi
- MQTT/HTTP 与服务器交互
- 上报车位状态
- 接收远程开闸命令
典型指令结构(JSON 格式):
{
"cmd": "open_gate",
"parking_id": 1
}
STM32 收到后执行开闸动作。
4. 道闸电机驱动
两种方案:
- 继电器控制 24V 电机
- PWM + H 桥控制 DC 电机
这里以继电器方式为例(便宜 + 易用):
STM32 → GPIO → 光耦 → 继电器 → 电机
实现抬杆 / 落杆动作。
四、软件架构设计
1. STM32 软件架构
采用 HAL 库 + 状态机设计:
init()
while(1)
{
read_sensor();
update_parking_state();
handle_gate_control();
sync_with_esp8266();
timer_tick();
}
关键模块包括:
- 车位检测模块
- 计费模块(按分钟计费)
- 事件状态机(ENTRY / EXIT)
- ESP8266 通信模块
- 本地显示(OLED)
2. STM32 与 ESP8266 通信协议设计
采用自定义简洁协议(JSON 格式):
1)车辆进入报告
{
"event": "car_in",
"timestamp": 1733301920,
"slot_id": 8
}
2)车辆离开报告
{
"event": "car_out",
"timestamp": 1733302122,
"slot_id": 8,
"duration": 320
}
3)服务器下发开闸指令
{
"cmd": "open_gate",
"slot_id": 8
}
STM32根据指令执行动作并反馈。
3. ESP8266 固件流程
若使用 AT 固件:
STM32 发送 AT 指令 → ESP8266 → 连接 Wi-Fi → 发送数据
也可以烧录 ESP8266(如 NodeMCU),直接处理 MQTT/HTTP。
流程示例:
连接Wi-Fi
↓
连接 MQTT 服务器
↓
订阅开闸指令
↓
接收 STM32 上传的数据并转发云端
↓
云端推送指令到 ESP8266
↓
ESP8266 下发给 STM32
五、计费系统设计
停车费用通常采用:
- 按分钟计费
- 阶梯收费
- 月卡用户豁免
示例算法:
int calc_fee(int duration_min)
{
if (duration_min <= 30)
return 0;
return (duration_min - 30) * 0.1; // 0.1元/分钟
}
所有计费数据将同步到服务器,并通过前端展示给用户。
六、云端平台设计
支持以下 API:
| API | 功能 |
|---|---|
| /car/in | 记录车辆入场 |
| /car/out | 记录车辆离场 + 计费 |
| /slot/status | 查询车位状态 |
| /gate/open | 远程开闸 |
开发可以使用:
- Node.js
- Python Flask/Django
- Spring Boot
数据库:MySQL / PostgreSQL
消息系统:MQTT(推荐)
七、系统功能演示流程
以下是典型停车流程:
1. 车辆驶入
- 超声波检测到车辆
- STM32 记录入场时间
- ESP8266 上报服务器
- 服务器确认
- 闸机自动抬杆
- 车辆进入
2. 停车期间
- 服务器显示车位“已占用”
- 用户可以查看实时停车时长
3. 车辆离开
- STM32 检测车辆离开
- 计算停车时间
- 上传服务器
- 完成计费
- 闸机放行
无人化流程完整实现。
八、项目亮点与扩展方向
✔ 低成本可落地
STM32 + ESP8266 的组合非常低成本,非常适合小型项目商用。
✔ 具备云端管理能力
支持远程开闸/实时同步车位状态。
✔ 可扩展车牌识别
搭配摄像头 + OCR 模块,可直接识别车牌。
✔ 支持支付系统
接入微信/支付宝支付,实现真正无人化收费。
✔ 支持多车位扩展
一个主控可管理多个车位节点。
九、总结
基于 STM32 + ESP8266 的无人停车场系统,是一个集成 嵌入式控制、无线通信、云端计算、物联网整体架构 的典型工程案例。系统具备成本低、易部署、功能丰富、适合扩展的特点,是智慧停车领域一个非常成熟的实现方案。
如果你正在做毕业设计、企业项目或竞赛,这套方案完全可落地,并拥有很强的展示与实用价值。
- 点赞
- 收藏
- 关注作者
评论(0)