Skip to content

zhushengsheng001/ArduinoOcpp

 
 

Repository files navigation

Icon   ArduinoOcpp

Build Status Unit tests codecov

OCPP-J 1.6 client for embedded microcontrollers. Portable C/C++. Compatible with Espressif, NXP, Texas Instruments and STM.

Reference usage: OpenEVSE

PlatformIO package: ArduinoOcpp

Website: www.arduino-ocpp.com

Fully integrated into the Arduino platform and the ESP32 / ESP8266. Runs on ESP-IDF, FreeRTOS and generic embedded C/C++ platforms.

Make your EVSE ready for OCPP 🚗🔌🔋

This library allows EVSEs to communicate with an OCPP Backend and to participate in commercial charging networks. You can integrate it into an existing firmware development, or start a new EVSE project from scratch with it.

✔️ Works with SteVe and 15+ commercial Central Systems

✔️ Tested in many charging stations

✔️ Eligible for public chargers (Eichrecht-compliant)

Technical introduction: ArduinoOcpp Docs

Try it (no hardware required): ArduinoOcppSimulator

Features

  • handles the OCPP communication with the charging network
  • implements the standard OCPP charging process
  • provides an API for the integration of the hardware modules of the EVSE
  • works with any TLS implementation and WebSocket library. E.g.

The necessary hardware and internet integration is usually far below 1000 LOCs.

Developers guide

Please take examples/ESP/main.cpp as the starting point for the first project. It is a minimal example which shows how to establish an OCPP connection and how to start and stop charging sessions. The API documentation can be found in ArduinoOcpp.h.

Dependencies

Mandatory:

If compiled with the Arduino integration:

In case you use PlatformIO, you can copy all dependencies from platformio.ini into your own configuration file. Alternatively, you can install the full library with dependencies by adding matth-x/ArduinoOcpp in the PIO library manager.

OCPP 2.0.1 and ISO 15118

The OCPP 2.0.1 upgrade is being worked on. Further details will be announced soon.

ISO 15118 is a must-have for future chargers. It will hugely improve the security and user-friendliness of EV charging. ArduinoOcpp facilitates the integration of ISO 15118 by handling its OCPP-side communication. This is being validated now in a proprietary firmware development.

However, no public ISO 15118 integration exists at the moment. If your company considers working on an open source ISO 15118 stack, it would be great to discuss a potential collaboration on an open source OCPP 2.0.1 + ISO 15118 solution.

Supported Feature Profiles

Feature profile supported in progress
Core ✔️
Smart charging ✔️
Remote trigger ✔️
Firmware management ✔️
Local auth list management ✔️
Reservation ✔️

Fully OCPP 1.6 compliant ✔️

Further help

I hope this guide can help you to successfully integrate an OCPP controller into your EVSE. If something needs clarification or if you have a question, please send me a message.

✉️ : matthias A⊤ arduino-ocpp DО⊤ com

If you want professional assistance for your EVSE project, you can contact me as well. I'm looking forward to hearing about your ideas!

About

OCPP 1.6 client for microcontrollers

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.6%
  • Other 1.4%