NirmalyaLenka/Smart-Parking-Assistant-System
GitHub: NirmalyaLenka/Smart-Parking-Assistant-System
这是一个低成本的物联网智能停车系统,通过扫描二维码帮助驾驶员实时找到可用车位。
Stars: 0 | Forks: 0
# 智能停车助手系统
一个基于物联网的低成本智能停车系统,通过扫描入口处的二维码帮助驾驶员实时寻找空闲车位。该系统支持将二轮车和四轮车分区管理,并通过连接至 ESP8266 微控制器的超声波传感器自动更新车位可用状态。
## 项目功能
当驾驶员到达停车场时,他们扫描入口大门处放置的二维码。这会在手机上打开一个网页,显示哪些车位空闲、哪些已被占用,并按车辆类型分组。页面会自动刷新,因此信息始终是实时的。用户无需下载应用、无需登录、无需复杂设置。
## 为何采用此方案
大多数商业停车管理系统仅硬件成本就高达数十万卢比,需要专有软件,且安装耗时数月。本系统使用的组件每车位成本低于 300 卢比,基于开源软件运行,并且可在周末内完成搭建。对于小型学院、医院、住宅小区、商业综合体和小型企业来说,这是一个实用且即时的解决方案。
二维码方式对用户零摩擦。他们无需安装任何东西。任何带摄像头的手机均可使用。
## 仓库结构
### 根目录级别
- `README.md` - 本文件。从硬件到软件全面解释整个项目。
- `LICENSE` - MIT 许可证。您可自由使用、修改和部署此项目用于任何目的。
- `.gitignore` - 告知 Git 忽略敏感配置文件、node_modules 和编译后的二进制文件,以避免它们进入版本控制。
### /firmware
此文件夹包含直接在 ESP8266 NodeMCU 板上运行的代码。
- `firmware/parking_sensor.ino` - 主 Arduino 程序。它读取所有超声波传感器的数据,判断车位是否被占用或空闲,并通过 Wi-Fi 使用 HTTP POST 将 JSON 数据发送至后端服务器。它循环运行,每两秒发送一次数据。
- `firmware/config.h` - 存储您的 Wi-Fi 凭据(SSID 和密码)以及后端服务器 IP 地址。此文件已列在 .gitignore 中,以避免您意外将密码提交至 GitHub。
- `hardware/wiring_diagram.md` - 纯文本描述如何将每个传感器连接到 ESP8266 GPIO 引脚,包括电压电平和接地连接。在焊接任何部件前请先阅读此文档。
### /backend
此文件夹包含一个简单的 Node.js 服务器,作为 ESP8266 与用户前端之间的桥梁。
- `backend/server.js` - 核心服务器。它基于 Express 运行,暴露两个端点:一个 POST 端点接收来自 ESP8266 的传感器数据,一个 GET 端点供前端轮询以获取当前车位状态。当通过浏览器访问时,它还会提供前端 HTML 文件。
- `backend/package.json` - 列出 Node.js 依赖项(仅 Express 和 cors)。在此文件夹中运行 `npm install` 即可开始。
- `backend/.env.example` - 显示服务器所需的环境变量,例如端口号。将其复制为 `.env` 并填写。实际的 `.env` 文件不会被提交。
### /frontend
这是用户扫描二维码时看到的界面。
- `frontend/index.html` - 完整的单页停车显示界面。显示所有车位的可视化网格,绿色表示空闲,红色表示占用。二轮车和四轮车有独立区域。每三秒自动刷新一次。适用于任何屏幕尺寸。
- `frontend/style.css` - 所有视觉样式。采用深色工业主题和清晰的颜色编码。使用纯 CSS 编写,无需构建步骤。
- `frontend/script.js` - 每三秒从后端获取车位数据,并在不重新加载页面的情况下更新车位网格。能够优雅地处理连接错误,即使服务器出现问题显示界面也不会中断。
### /hardware
物理构建的文档。
- `hardware/bill_of_materials.md` - 完整的组件清单,包含印度卢比的大致价格、每车位所需数量以及采购渠道(Amazon India、Robu.in、本地电子商店)。此处估算了一个 20 车位停车场的总系统成本。
- `hardware/sensor_placement_guide.md` - 解释传感器安装高度、角度要求,以及天气和日照如何影响读数。还包括室外使用的外壳建议。
- `hardware/pcb_notes.md` - 针对希望制作简单定制 PCB 以整洁固定 ESP8266 和传感器连接器(而非永久使用面包板)的用户的注意事项。
### /qr-generator
- `qr-generator/generate_qr.py` - 一个小型 Python 脚本,接收您部署的前端 URL 并生成可打印的二维码图像。使用 pip 安装 qrcode 库,更新 URL 变量并运行。输出为高分辨率 PNG,可在任何打印店打印。
### /demo
- `demo/index.html` - 一个完全自包含的演示页面,可在任何浏览器中运行,无需任何服务器或硬件。它通过随机更新模拟传感器数据,让您无需购买任何组件即可看到完整系统的运行效果。这也是在向他人展示项目时分享的文件。
## 硬件组件
该系统基于经济实惠且广泛可用的部件构建。
ESP8266 NodeMCU 是主控制器。成本约为 200-250 卢比,内置 Wi-Fi,这是选择它而非 Arduino Uno 或 ATmega 板的核心原因。无需单独的 Wi-Fi 扩展板。
HC-SR04 超声波传感器负责检测。每个成本 35-50 卢比,在 5 厘米至 3 米的距离内检测车辆极为可靠,并且在印度随处可购。每个传感器覆盖一个车位。
电源通过标准 5V 适配器供电,如果站点已有以太网,也可使用 PoE 设置。ESP8266 连接 20 个传感器,总电流远低于 500mA。
如果使用 CD74HC4067 等多路复用器,单个 ESP8266 最多可处理 10-12 个传感器。对于更大的停车场,可部署多个 ESP8266 板,每个覆盖一个区域,并全部报告给同一个后端。
## 入门指南
### 步骤 1 - 设置后端
您需要在计算机或 Raspberry Pi 等小型服务器上安装 Node.js。
```
cd backend
npm install
cp .env.example .env
# 编辑 .env 并设置端口
node server.js
```
记下此机器的 IP 地址。您的 ESP8266 和二维码都需要指向它。
### 步骤 2 - 刷写固件
在 Arduino IDE 中打开 firmware 文件夹。如果尚未安装,请安装 ESP8266 板包。打开 `config.h` 并填写您的 Wi-Fi 名称、密码和后端服务器 IP。将 `parking_sensor.ino` 上传到您的 NodeMCU。
### 步骤 3 - 连接传感器
按照 `hardware/wiring_diagram.md` 中的接线指南操作。每个 HC-SR04 使用两个 GPIO 引脚(Trig 和 Echo)。先用串口监视器测试确认读数,然后再安装。
### 步骤 4 - 生成并打印二维码
更新 `qr-generator/generate_qr.py` 中的 URL 以指向您的后端服务器地址并运行它。打印生成的二维码,并放置在停车场入口处,最好覆膜或置于塑料盖后。
### 步骤 5 - 测试
在浏览器中打开 `demo/index.html` 以验证前端显示是否正确。然后将前端切换至指向您运行的后端,并从手机扫描二维码。
## 未来扩展
该系统设计为可扩展。以下是其自然发展的方向。
自动道闸集成是最直接的下一步。连接到 ESP8266 的伺服电机或继电器可控制栏杆机。当所有四轮车车位已满时,道闸保持关闭,入口显示屏显示已满消息,防止驾驶员进入拥挤的停车场。
可通过在入口处使用 Raspberry Pi 摄像头叠加车牌识别功能。这能实现无需手动登记的入口记录。
可在后端添加月度或每日报告,显示高峰时段、平均占用率和车位利用率。对停车场业主规划人员配置和定价非常有用。
可通过嵌入 UPI 二维码支付集成到车位详情页,让驾驶员无需前往支付柜台即可支付停车费。
多层停车场管理很简单。每层有自己的 ESP8266 节点集,全部报告给同一个后端。前端显示楼层选择器。
使用小型太阳能板和电池组进行太阳能供电,使系统完全脱离电网,适用于露天场地、活动场所和农村地区。
智慧城市集成是长期应用。市政公司可在数百个路边和公共停车场部署此系统,并将数据馈送到全市停车应用中。这减少了人们四处寻找停车位造成的交通拥堵,对减少燃油消耗和排放具有重要意义。
医院和机场应用极大地受益于无障碍筛选功能,该功能单独跟踪残障人士专用车位并进行适当预留。
## 联系方式
如果您正在部署此系统、有疑问或希望合作扩展它,请通过 carmodbhai@gmail.com 联系我们。
欢迎提交错误报告和拉取请求。如果您构建了此系统并且它能正常工作,分享您的设置照片或描述将不胜感激。
## 许可证
MIT 许可证。可自由使用。
标签:Arduino开发, ESP8266, HTTP通信, IoT应用, MITM代理, Wi-Fi连接, 两轮车辆, 二维码技术, 低成本解决方案, 停车位查询, 后端开发, 四轮车辆, 多模态安全, 子域名暴力破解, 数据可视化, 智能交通, 智能停车系统, 物联网, 用户友好界面, 网页接口, 自动化检测, 超声波传感器, 车辆管理, 逆向工具