基於 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 的無人停車場系統,是一個集成 嵌入式控制、無線通信、雲端計算、物聯網整體架構 的典型工程案例。系統具備成本低、易部署、功能豐富、適合擴展的特點,是智慧停車領域一個非常成熟的實現方案。
如果你正在做畢業設計、企業項目或競賽,這套方案完全可落地,並擁有很強的展示與實用價值。