智碳EMS开源能源管理系统开源教程
智碳 EMS(zhitan-ems)是一套基于 Spring Boot + 若依(Ruoyi)框架开发的开源能源碳管理系统,主要面向企业、园区、工矿、公共建筑等场景,提供能耗数据采集、实时监测、碳核算、智能告警、报表分析等能力。
以下是一份完整的开源使用教程,涵盖从项目获取到部署上线的全流程:
一、项目概述
智碳 EMS 采用前后端分离架构,核心功能包括:
- 实时监测:水、电、气、热等能耗数据实时采集与可视化
- 能耗分析:日/月/年同比环比、尖峰平谷分析、分项能耗统计
- 碳管理:内置国标碳排放因子,支持碳盘查、碳追踪、碳汇报
- 智能告警:超限告警、异常波动检测、多渠道通知
- 设备管理:设备台账、维保记录、运行状态监控
- 报表中心:自动生成能耗报表,支持导出打印
二、技术架构
| 层级 | 技术选型 |
| 后端 | Spring Boot + Ruoyi + MyBatis |
| 前端 | Vue 3 + Vite + Element Plus |
| 关系数据库 | PostgreSQL 14(兼容 MySQL) |
| 时序数据库 | InfluxDB 2.7+(可切换 TDengine) |
| 缓存 | Redis |
| 消息通信 | MQTT |
| 定时任务 | Quartz |
| 可视化 | ECharts |
三、环境准备
部署前需准备以下环境:
- 操作系统:Linux(推荐 Ubuntu 20.04+ 或 CentOS 7+)
- 硬件配置:建议 4 核 16G 内存及以上,500G 以上硬盘空间
- 软件依赖:Docker 20.10+、Docker Compose 2.0+
四、Docker 一键部署(推荐)
项目提供了完整的容器化部署方案,约 30 分钟即可完成:
步骤 1:克隆项目仓库
1. git clone https://gitee.com/liulingling1993/zhitan-ems.git
2. cd zhitan-ems/docker步骤 2:配置环境变量
编辑 .env 文件,修改数据库密码、InfluxDB 配置等参数。
步骤 3:启动服务
1. docker-compose up -d步骤 4:初始化数据库
执行 sql/public-v3.sql 脚本初始化 PostgreSQL 数据库。
步骤 5:访问系统
打开浏览器访问 http://服务器IP,使用默认账号登录:
- 用户名:
admin - 密码:
123456
五、分步部署(手动部署)
如果希望手动部署各组件,可按以下步骤操作:
1. 部署 PostgreSQL
1. docker run -d \
2. --name postgres \
3. -p 5432:5432 \
4. -e POSTGRES_DB=zhitan_ems \
5. -e POSTGRES_USER=postgres \
6. -e POSTGRES_PASSWORD=postgres \
7. postgres:14-alpine导入项目根目录的 SQL 脚本初始化库表。
2. 部署 Redis
1. docker run -d --name redis -p 6379:6379 redis:6.2.21 --appendonly yes3. 部署 InfluxDB
1. docker run -d --name influxdb -p 8086:8086 influxdb:latest初始化 org、bucket 并保存访问 token。
4. 启动后端 API 服务
编写 .env.file 环境配置文件,填入数据库、MQTT、时序库连接信息,然后启动镜像:
1. docker run -d -p 8080:8080 --env-file .env.file zhitancorp/zhitan-api:latest5. 部署前端页面
部署 Vue 前端并配置反向代理对接后端接口。
六、项目代码结构
项目采用模块化设计,核心目录如下:
1. zhitan-ems
2. ├── zhitan-admin # 项目启动入口
3. ├── zhitan-framework # 核心框架:权限、MQTT、定时任务、时序数据封装
4. ├── zhitan-common # 公共工具类、常量、全局配置
5. ├── zhitan-quartz # 数据统计、能耗汇总定时任务模块
6. ├── zhitan-generator # 代码生成器,快速搭建自定义业务模块
7. ├── zhitan-system # 系统基础管理:用户、角色、权限、字典
8. └── zhitan-vue # Vue3 前端全套源码七、设备接入
系统部署完成后,可接入现场设备:
- Modbus 协议设备:在采集网关中配置设备 IP 地址、端口号、寄存器地址等参数,即可实现数据自动采集
- 其他协议设备:可通过开发对应的协议插件来支持(系统支持 Modbus、DL/T645、OPC UA、MQTT 等主流协议)
- 模拟数据:如暂无硬件设备,可使用系统提供的模拟数据功能体验各项功能
- 另外,数据采集网关(MQTT ➡️ 时序库)为独立仓库,地址为:https://github.com/zhitan-cloud/zhitan-gateway
八、在线体验
如果暂时不想部署,可以先通过官方演示环境体验:
- 演示地址:https://demo-ems.zhitancloud.com/
- 演示账号:
guestUser/guest@123456(或guestUser/guestUser)
九、开源协议与注意事项
开源协议:AGPL + ZTPL 双协议
- AGPL 协议适用于开源学习
- ZTPL 协议适用于企业商用(需获取授权)
仓库范围:本开源仓库仅包含能碳平台后台管理端,数据采集程序和数据清洗服务需参考其他仓库或自行实现
官方文档:完整文档位于 Wiki 目录
- GitHub Wiki:https://github.com/zhitan-cloud/zhitan-ems/wiki
- Gitee Wiki:https://gitee.com/liulingling1993/zhitan-ems/wikis
十、适用人群
- Java 后端 / 物联网开发者:学习 MQTT 设备对接、时序数据库处理、工业可视化开发
- 弱电 / 系统集成商:基于框架快速交付工厂、园区能源管控项目
- 企业运维 / 信息化人员:私有化部署替代高价商用系统
- 双碳咨询从业者:依托内置碳核算模块赋能绿色工厂咨询业务