Files
helios-evcs/README.md
2025-11-16 23:31:11 +08:00

206 lines
4.5 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充电管理系统和前端 Web 云平台应用。并设计了一个基于 ESP32演示用的充电桩终端固件和 PCB 设计。
## 🏗️ 项目结构
```
helios-evcs/
├── apps/ # 应用程序包
│ ├── csms/ # 后端 CSMS 平台服务Hono + Node.js
│ └── web/ # 前端云平台应用Next.js 15 + React 19[submodule]
├── hardware/ # 硬件和固件工程
│ ├── firmware/ # 充电桩固件
│ └── pcb-kicad/ # PCB 设计文件KiCAD
├── package.json
├── pnpm-workspace.yaml
├── pnpm-lock.yaml
└── .gitmodules
```
## 📦 工作区包
### `apps/csms` - 充电管理系统后端
- **技术栈**Node.js + Hono + TypeScript
- **端口**3001默认
- **职责**
- OCPP 协议实现
- 充电设备管理
- 用户认证与授权
- 实时数据处理
- RESTful API 接口
### `apps/web` - 前端管理界面(子模块)
- **技术栈**Next.js 15 + React 19 + Tailwind CSS
- **端口**3000默认
- **源仓库**https://github.com/HoshinoSuzumi/helios
- **职责**
- 充电站管理界面
- 实时监控面板
- 数据可视化
- 用户管理
### `hardware/` - 硬件和固件工程
- **firmware/** - 充电桩微控制器固件代码
- 设备驱动实现
- 通信协议栈
- 实时控制逻辑
- **pcb-kicad/** - PCB 电路板设计
- KiCAD 工程文件
- 电路原理图
- PCB 布局设计
- BOM 物料清单
## 🚀 快速开始
### 前置要求
- Node.js >= 18
- pnpm >= 10.18.2
### 安装依赖
```bash
# 安装根工作区和所有子包的依赖
pnpm install
```
### 开发
```bash
# 启动所有开发服务器CSMS + Web
pnpm dev
# 仅启动后端
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
```
## 📝 Scripts 说明
| 命令 | 描述 |
| ----------------- | ---------------------- |
| `pnpm dev` | 启动所有服务的开发模式 |
| `pnpm dev:csms` | 启动后端开发服务器 |
| `pnpm dev:web` | 启动前端开发服务器 |
| `pnpm build` | 构建所有包 |
| `pnpm build:csms` | 构建后端 |
| `pnpm build:web` | 构建前端 |
| `pnpm start:csms` | 生产环境启动后端 |
| `pnpm start:web` | 生产环境启动前端 |
## 🔧 工作区管理
### 使用 pnpm filter 运行特定包命令
```bash
# 在指定包中运行命令
pnpm --filter csms <command>
pnpm --filter helios-web <command>
# 示例:在 csms 中运行测试
pnpm --filter csms run test
```
### 安装包到特定工作区
```bash
# 在根安装(所有包共用)
pnpm add <package>
# 在特定包中安装
pnpm --filter csms add <package>
pnpm --filter helios-web add <package>
```
## 📁 Git 子模块管理
`apps/web` 作为 Git 子模块管理:
```bash
# 初始化并更新子模块
git submodule update --init --recursive
# 更新子模块到最新版本
git submodule update --remote
# 克隆包含子模块的仓库
git clone --recurse-submodules <repo-url>
```
在子模块内修改后的工作流:
```bash
# 在 apps/web 目录内提交更改
cd apps/web
git add .
git commit -m "feat: xxx"
git push
# 返回主仓库,更新子模块引用
cd ..
git add apps/web
git commit -m "chore: update helios submodule"
git push
```
## 📚 技术文档
### 后端开发
- 详见 `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