168 lines
3.4 KiB
Markdown
168 lines
3.4 KiB
Markdown
# Helios EVCS
|
||
|
||
_这是一个毕业设计项目,旨在尝试实现一个完整的电动汽车充电站管理系统(EV CSMS)和配套的演示用充电桩终端。_
|
||
|
||
## 📋 项目概述
|
||
|
||
Helios EVCS 是一个全栈解决方案,用于管理和监控电动汽车充电基础设施。项目包含 CSMS(充电管理系统)的前端应用和后端服务。并设计了一个基于 ESP32 的,可演示用的充电桩终端固件和 PCB 设计。
|
||
|
||
## 🏗️ 项目结构
|
||
|
||
```
|
||
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
|
||
- 后端 API:http://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 CSS:https://tailwindcss.com
|
||
|
||
## 👤 作者
|
||
|
||
- **Timothy Yin** - master@uniiem.com
|
||
|
||
## 🔗 相关资源
|
||
|
||
- 前端仓库:https://github.com/HoshinoSuzumi/helios
|
||
- OCPP 标准:https://www.openchargealliance.org
|