隨著全球電動汽車產(chǎn)業(yè)的迅猛發(fā)展,充電基礎(chǔ)設(shè)施的智能化與標(biāo)準(zhǔn)化已成為行業(yè)迫切需求。OCPP(Open Charge Point Protocol即開放充電點(diǎn)協(xié)議)作為連接充電樁與中央管理系統(tǒng)的"通用語言",正成為解決設(shè)備互聯(lián)互通難題的關(guān)鍵技術(shù)。 一、OCPP:為何是出海歐標(biāo)的必選項(xiàng)? OCPP是一個開放、標(biāo)準(zhǔn)的通信協(xié)議,它確保了不同制造商生產(chǎn)的充電樁能夠與任何兼容的后臺管理系統(tǒng)進(jìn)行無縫通信。集成OCPP協(xié)議意味著為產(chǎn)品賦予“標(biāo)準(zhǔn)通信接口”,其核心價值在于: 打破互聯(lián)壁壘:使充電樁能接入任何符合OCPP標(biāo)準(zhǔn)的第三方運(yùn)營平臺,提升產(chǎn)品適配性; 滿足法規(guī)要求:滿足歐盟對充電設(shè)施互操作性的強(qiáng)制法規(guī),是市場準(zhǔn)入的前提; 解鎖智能功能:支持遠(yuǎn)程控制、充電計費(fèi)、狀態(tài)監(jiān)控與固件OTA,大幅減少上層應(yīng)用開發(fā)量; 降低集成成本:采用廣泛認(rèn)可的協(xié)議棧,避免私有協(xié)議帶來的定制開發(fā)和長期維護(hù)成本。
二、MicroOcpp:專為嵌入式設(shè)備優(yōu)化的輕量級方案 針對資源受限的嵌入式環(huán)境,MicroOcpp提供了理想的OCPP協(xié)議棧實(shí)現(xiàn),其主要優(yōu)勢包括: 極低資源占用:采用C/C++編寫,專為微控制器和嵌入式 Linux優(yōu)化; 全面協(xié)議支持:完整兼容OCPP 1.6,并支持升級至2.0.1; 模塊化設(shè)計:可僅編譯所需功能,最大化利用硬件資源; 開發(fā)友好:提供清晰的API接口與豐富的示例,集成門檻低。
三、部署實(shí)踐:從零構(gòu)建OCPP通信系統(tǒng) 1、服務(wù)端環(huán)境搭建 使用Docker容器快速部署SteVe OCPP服務(wù)器,SteVe作為開源中央管理系統(tǒng),提供了完整的充電樁管理能力,包括WebSocket通信維護(hù)、充電狀態(tài)監(jiān)控、遠(yuǎn)程控制指令下發(fā)等功能。 - xmr@ubuntu:~/MicroOCPP$ wget
- xmr@ubuntu:~/MicroOCPP$ tar -xzvf steve-3.6.1.tar.gz
- xmr@ubuntu:~/MicroOCPP$ cd steve-steve-3.6.1
- xmr@ubuntu:~/MicroOCPP/steve-steve-3.6.1$ ls
- docker-compose.yml k8s LICENSE.txt mvnw.cmd README.md
- Dockerfile LICENSE-HEADER.txt mvnw pom.xml src website
復(fù)制代碼
2、客戶端部署關(guān)鍵步驟 在MYD-YF13X平臺部署MicroOcpp客戶端的過程中,我們充分利用了平臺提供的Linux 6.6.78系統(tǒng)環(huán)境。首先交叉編譯MicroOcpp源碼庫,生成針對ARM架構(gòu)的優(yōu)化可執(zhí)行文件。隨后配置GPIO引腳模擬充電槍連接狀態(tài):使用兩個GPIO口分別代表兩個充電接口的狀態(tài)檢測。 - xmr@ubuntu:~$ mkdir MicroOCPP
- xmr@ubuntu:~$ cd MicroOCPP
- xmr@ubuntu:~/MicroOCPP$ git clone --recurse-submodules https://github.com/MYiR-Dev/Ocpp_Mongoose_demo.git -b myd-yf13x
- xmr@ubuntu:~/MicroOCPP$ cd Ocpp_Mongoose_demo
- xmr@ubuntu:~/MicroOCPP/Ocpp_Mongoose_demo$ tree -L 2
- ├── CMakeLists.txt
- ├── external
- │ ├── ArduinoJson
- │ ├── MicroOcpp
- │ ├── MicroOcppMongoose
- │ └── mongoose
- ├── include
- │ └── hardware.h
- ├── libs
- └── src
- ├── hardware.c
- └── main.c
復(fù)制代碼
3、服務(wù)端與客戶端通信建立 部署完成后,客戶端成功與SteVe服務(wù)器建立WebSocket連接: - root@myd-yf13x:~/Microocpp# export LD_LIBRARY_PATH=/home/root/Microocpp/lib
- root@myd-yf13x:~/Microocpp# ./yf13x_ocpp_client &
- oot@myd-yf13x:~/Microocpp# Starting MicroOcpp on STM32MP135P...
- GPIO PC13 already exported.
- GPIO PI7 already exported.
- PC13 and PI7 simulate evse connecto
- [MO] info (MicroOcpp.cpp:379): initialized MicroOcpp v1.2.0 running OCPP 1.6.0
- OCPP client initialized. Entering main loop...
- [MO] warning (MicroOcppMongooseClient.cpp:707): Insecure connection (WS)
- [MO] info (MicroOcppMongooseClient.cpp:711): connection ws://192.168.40.187:8180/steve/websocket/CentralSystemService/stm32mp1-charger1 -- connected!
- [MO] info (BootNotification.cpp:92): request has been Accepted
- [MO] info (StatusNotification.cpp:52): New status: Available (connectorId 0)
- [MO] info (StatusNotification.cpp:52): New status: Available (connectorId 1)
- [MO] info (StatusNotification.cpp:52): New status: Available (connectorId 2)
復(fù)制代碼
服務(wù)端管理界面將實(shí)時顯示新上線的充電樁,證明底層鏈路與協(xié)議交互正常。
4、狀態(tài)上報功能驗(yàn)證 通過操作GPIO電平變化模擬充電槍插拔過程,我們觀察到客戶端實(shí)時向服務(wù)器上報狀態(tài)變更。 - root@myd-yf13x:~/Microocpp# echo 0 > /sys/class/gpio/PI7/value
- root@myd-yf13x:~/Microocpp# [MO] info (StatusNotification.cpp:52): New status: Available (connectorId 2
- root@myd-yf13x:~/Microocpp# echo 0 > /sys/class/gpio/PC13/value
- root@myd-yf13x:~/Microocpp# [MO] info (StatusNotification.cpp:52): New status: Available (connectorId 1)
復(fù)制代碼
服務(wù)器界面同步更新連接器狀態(tài),證明整個通信鏈路工作正常。 充電槍可用狀態(tài) 結(jié)語 隨著全球充電樁市場標(biāo)準(zhǔn)化程度不斷提高,OCPP協(xié)議支持已成為產(chǎn)品競爭力的關(guān)鍵要素。米爾基于MYC-YF13X平臺提供的OCPP完整解決方案,不僅大幅降低了開發(fā)門檻,更確保了產(chǎn)品的標(biāo)準(zhǔn)符合性和市場適應(yīng)性。
|