Files
helios-evcs/README.md
2026-04-21 02:04:23 +08:00

183 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Helios EVCS
_这是一个毕业设计项目旨在尝试实现一个完整的电动汽车充电站管理系统EV CSMS和配套的演示用充电桩终端。_
## 📋 项目概述
Helios EVCS 是一个全栈解决方案,用于管理和监控电动汽车充电基础设施。项目包含 CSMS充电管理系统的前端应用和后端服务。并设计了一个基于 ESP32 的,可演示用的充电桩终端固件和 PCB 设计。
## 已知问题
在设计实践的过程中,目前已发现硬件设计存在下列问题,未来可能会修复,也可能不会。现在进行了软件修补的方案在列表中有说明。如果修复了硬件则会划掉那一项。
### 严重
- [ ] SW3、SW4 两个 CC 模拟开关在 PCB 布局上放反了,目前在引脚定义中对调了两个 IO。
- [ ] SW3、SW4 没有绿波电龙,在当前电磁环境下出现了强烈的干扰,目前在固件中加了积分滤波算法来稳定开关状态。
- [ ] KEY1、KEY2 连接的 Input Only GPIO错误地设计为低电平有效同时硬件上没有上拉电阻所以两个按钮完全无效。软件无法解决这个问题因此调整了刷卡充电的逻辑。
### 优化
- [ ] IM1281C 的两根负载线如采用单芯铜线,弯折后很难装配,需要灵活控制下长度,或者在 IM1281C 焊接之前先把先穿好。
- [ ] 可以设计螺丝孔位来在背部安装亚克力面板,防止误触背面的交流电焊盘。
## 🏗️ 项目结构
```
helios-evcs/
├── apps/ # 应用程序包
│ ├── csms/ # 后端 CSMS 平台服务Hono + Node.js
│ └── web/ # 前端云平台应用Next.js 15 + React 19[submodule]
├── hardware/ # 硬件和固件工程
│ ├── firmware/ # 充电桩固件
│ └── pcb/ # PCB 设计文件KiCAD
├── package.json
├── pnpm-workspace.yaml
└── pnpm-lock.yaml
```
## 📦 工作区包
### `apps/csms` - CSMS 后端
- **技术栈**Node.js + Hono + TypeScript
- **端口**3001
- **职责**
- OCPP 协议实现
- 充电设备管理
- 用户认证与授权
- 实时数据处理
- RESTful API 接口
### `apps/web` - CSMS 前端
- **技术栈**Next.js 16 + React 19 + Tailwind CSS
- **端口**3000
- **职责**
- 充电桩管理
- 概览监控面板
- 储值卡管理
- 用户管理
- 充电会话历史
- 远程启动/停止充电
### `hardware/` - 硬件和固件工程
- **firmware/** - 充电桩微控制器固件代码
- 设备驱动实现
- 通信协议栈
- 实时控制逻辑
- **pcb/** - PCB 电路板设计
- KiCAD 工程文件
- 电路原理图
- PCB 布局设计
- BOM 物料清单
- 制造文件Gerber
## 🚀 快速开始
### 前置要求
- Node.js >= 20
- pnpm >= 10.18.2
### 安装依赖
```bash
# 安装根工作区和所有子包的依赖
pnpm install
```
### 开发
```bash
# 启动所有开发服务器CSMS + Web
pnpm dev
# 迁移数据库
pnpm --filter csms run db:migrate
# 仅启动后端
pnpm dev:csms
# 仅启动前端
pnpm dev:web
```
访问:
- 前端应用http://localhost:3000
- 后端 APIhttp://localhost:3001
### 构建
```bash
# 构建所有包
pnpm build
# 仅构建后端
pnpm build:csms
# 仅构建前端
pnpm build:web
```
### 生产启动
```bash
# 启动后端
pnpm start:csms
# 启动前端
pnpm start:web
# 生产环境使用 docker compose
docker compose up -d --build
```
## 🔧 工作区管理
### 使用 pnpm filter 运行特定包命令
```bash
# 在指定包中运行命令
pnpm --filter csms <command>
pnpm --filter web <command>
# 示例:在 csms 中运行测试
pnpm --filter csms run test
```
### 安装包到特定工作区
```bash
# 在根安装(所有包共用)
pnpm add <package> -w
# 在特定包中安装
pnpm --filter csms add <package>
pnpm --filter web add <package>
```
## 📚 技术文档
### 后端开发
- 详见 `apps/csms/README.md`
- Hono 框架文档https://hono.dev
- OCPP 协议规范https://www.openchargealliance.org
### 前端开发
- 详见 `apps/web/README.md`
- Next.js 文档https://nextjs.org/docs
- Tailwind CSShttps://tailwindcss.com
## 👤 作者
- **Timothy Yin** - master@uniiem.com
## 🔗 相关资源
- 前端仓库https://github.com/HoshinoSuzumi/helios
- OCPP 标准https://www.openchargealliance.org