OCPP客户端与服务端测试

近期参与ISO15118充电协议的开发,主要涉及车与桩的PLC通信。但是桩与平台端却是使用OCPP,本人对OCPP知之甚少。故而网上找了些开源项目,运行起来看看OCPP的样子,揭开OCPP的神秘面纱。


运行环境:Ubuntu 22.04 虚拟机

OCPP客户端:MicroOcpp. 项目地址:

OCPP服务端:SteVe. 项目地址:


  1. 先下载需要用到的库以及编译依赖:
bash 复制代码
# 安装 git
sudo apt install git -y
# 安装 OpenJDK 21 和 Maven
sudo apt install openjdk-21-jdk maven -y
# 安装 MySQL 服务器
sudo apt install mysql-server -y
# 安装编译工具
sudo apt install cmake libssl-dev build-essential

# 检查安装的版本
java --version
mvn --version
mysql --version

  1. 下载代码
bash 复制代码
# 下载MicroOcpp
git clone --recurse-submodules https://github.com/matth-x/MicroOcppSimulator
cd MicroOcppSimulator

# 下载SteVe
git clone https://github.com/steve-community/steve.git

  1. 编译
  • 编译MicroOcpp
bash 复制代码
cmake -S . -B ./build
cmake --build ./build -j 16 --target mo_simulator
  • 编译SteVe
bash 复制代码
# 登录 MySQL 
sudo mysql -u root -p

登陆数据库后,执行以下命令

bash 复制代码
-- 创建数据库,使用 utf8 字符集
CREATE DATABASE stevedb CHARACTER SET utf8 COLLATE utf8_unicode_ci;

-- 创建本地用户 steve,并设置密码
CREATE USER 'steve'@'localhost' IDENTIFIED BY 'xxxx';

-- 授予用户对 stevedb 数据库的所有权限
GRANT ALL PRIVILEGES ON stevedb.* TO 'steve'@'localhost';

-- 使权限生效
FLUSH PRIVILEGES;

-- 退出 MySQL
EXIT;

修改src/main/resources/application-prod.properties 连接数据库

bash 复制代码
# Database configuration
#
db.ip = localhost
db.port = 3306
db.schema = stevedb
db.user = steve
db.password = xxxx

最后编译

bash 复制代码
# 使用项目自带的 Maven 包装器进行编译
./mvnw clean package
  1. 运行
bash 复制代码
# 运行steve生成的 jar 文件
java -jar target/steve.war

# 运行MicroOcpp生成的bin 文件
./build/mo_simulator

然后就可以通过浏览器打开页面查看控制台了。

MicroOcpp: http://127.0.0.1:8000

Steve: http://127.0.0.1:8080/steve/

登录密码为src/main/resources/application-prod.properties配置项里

  1. 运行配置

对于ocpp服务端steve而言,需要新建充电站点。登录后依次点击DATA MANAGENT/CHARGE POINTS,点击Add New进行添加,注意密码设置为16~20个字符;

这样steve端就设置好了,然后需要将ocpp服务端URI设置到ocpp客户端。

这样就可以在steve上看到桩的信息了。

接着需要在steve端创建ID Tag,这个操作类似于先将ID卡录入平台,然后桩和车插好电后,然后刷卡,卡信息进入平台比对。如果验证通过则开始充电。操作过程如下:登录steve后,DATA MANAGENT/OCPP TAGS,点击Add New进行添加

这样就完成了。

  1. 启动充电

点击Connectors,然后进入Connector 1控制台,打开EVSE Options,然后修改状态为Ready,最后点击Update EVSE就可以了。也可以在点击页面上的Fetch All就可以看到状态更新了。

然后在Transaction Options页面输入我们刚创建的ID Tag,最后点击Update Transaction,就看到开始充电了。

  1. 最后刷新一下MicroOcpp与Steve的状态

至此,完成充电交互模拟。接下来再进行抓包分析吧。

相关推荐
论迹复利5 小时前
PSA Certified 是什么——物联网芯片安全认证的三级体系
物联网·struts·安全
MetrixAeroCore7 小时前
AI玩具出海用物联网卡还是eSIM?200国漫游和本地落地卡成本差多少?
物联网
数智顾问10 小时前
(84页PPT)PWC海科集团生物医药业务5年发展战略项目建议书(附下载方式)
大数据·人工智能·物联网
MetrixAeroCore11 小时前
智能快递柜格口监控物联网卡在老旧小区弱网环境下多运营商切换组网方案
物联网
北京晶数信息科技11 小时前
加油站成品油智慧监管系统项目建设实施汇报(一)
大数据·物联网·产品经理·需求分析
TurMass工程师11 小时前
什么是 TurMass™ Mesh?它在电力物联网感知网络中起什么作用?
物联网·电力物联网·turmass·turmassmesh
测功机之家12 小时前
国内口碑好的测功机公司找哪家
python·物联网
AimerMilet21 小时前
物联网卡流量池是什么意思?企业用划算吗?
物联网
Xxtaoaooo1 天前
DolphinDB 物联网数据平台全景:一份从架构到落地的实践地图
物联网·系统架构·时序数据库·数据库架构·dolphindb
DS小龙哥1 天前
基于物联网设计的室内环境监测系统(从0讲解如何接入涂鸦智能平台)
物联网