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.
This library allows your EVSE 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)
Try it (no hardware required): ArduinoOcppSimulator
- 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 your EVSE
- works with any TLS implementation and WebSocket library. E.g.
- Arduino networking stack: Links2004/arduinoWebSockets, or
- generic embedded systems: Mongoose Networking Library
For simple chargers, the necessary hardware and internet integration is usually far below 1000 LOCs.
Technical introduction: ArduinoOcpp Docs
Please take examples/ESP/main.cpp
as the starting point for your 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
.
Mandatory:
- bblanchon/ArduinoJSON (please upgrade to version
6.19.1
)
If compiled with the Arduino integration:
- Links2004/arduinoWebSockets (please upgrade to version
2.3.6
)
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.
- reach full compliance to OCPP 1.6 Smart Charging Profile
- integrate Authorization Cache
- get ready for OCPP 2.0.1 and ISO 15118
Feature profile | supported | in progress |
---|---|---|
Core | ✔️ | |
Smart charging | ✔️ | |
Remote trigger | ✔️ | |
Firmware management | ✔️ |
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!