Coder Social home page Coder Social logo

microocpp's Introduction

Icon   MicroOcpp

Build Status Unit tests codecov

OCPP 1.6 client for microcontrollers. Portable C/C++. Compatible with Espressif, Arduino, NXP, STM, Linux and more.

Formerly ArduinoOcpp (migration guide): the initial version of this library used the Arduino API but this dependency was dropped some time ago and the old name has become outdated. Despite the new name, nothing changes for existing users and the Arduino integration will continue to be fully functional.

Reference usage: OpenEVSE | Technical introduction: Docs | Website: www.micro-ocpp.com

✔️ Works with SteVe and 15+ commercial Central Systems

✔️ Eligible for public chargers (Eichrecht-compliant)

✔️ Supports all OCPP 1.6 feature profiles

Tester / Demo App

Main repository: MicroOcppSimulator

(Beta) The Simulator is a demo & development tool for MicroOcpp which allows to quickly assess the compatibility with different OCPP backends. It simulates a full charging station, adds a GUI and a mocked hardware binding to MicroOcpp and runs in the browser (using WebAssembly): Try it

Screenshot

Usage

OCPP server setup: Navigate to "Control Center". In the WebSocket options, add the OCPP backend URL, charge box ID and authorization key if existent. Press "Update WebSocket" to save. The Simulator should connect to the OCPP server. To check the connection status, it could be helpful to open the developer tools of the browser.

If you don't have an OCPP server at hand, leave the charge box ID blank and enter the following backend address: wss://echo.websocket.events/ (this server is sponsored by Lob.com)

RFID authentication: Go to "Control Center" > "Connectors" > "Transaction" and update the idTag with the desired value.

Developers guide

PlatformIO package: ArduinoOcpp

MicroOcpp is an implementation of the OCPP communication behavior. It automatically initiates the corresponding OCPP operations once the hardware status changes or the RFID input is updated with a new value. Conversely it processes new data from the server, stores it locally and updates the hardware controls when applicable.

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 MicroOcpp.h. Also check out the Docs.

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/[email protected] in the PIO library manager.

OCPP 2.0.1 and ISO 15118

The call for funding for the OCPP 2.0.1 upgrade is open. The version 1.6 support has successfully been funded by private companies who share an interest in using this technology. OCPP is most often seen as a non-differentiating feature of chargers and is therefore perfectly suited for Open Source collaboration. If your company needs OCPP 2.0.1, please use the contact details at the end of this page to receive the more details about the funding plan and why it is beneficial to engage in the upgrade (for hardware manufacturers and CPOs).

MicroOcpp is a good foundation for starting the OCPP 2.0.1 development:

🎉 Tested by hundreds, including backend operators. The Simulator encourages quick compatibility tests

🔨 Comes with development tools and a CI/CD specialized for OCPP

👨‍🏫 Academic background: roots in a research project

🔐 Unit tests with valgrind, AddressSanitizer and UndefinedBehaviorSanitizer

❤️ Contributions are highly welcome. Open to building a team

A note on ISO 15118: this library facilitates the integration of ISO 15118 by handling its OCPP-side communication. A public demonstration will follow with the first collaboration on an open OCPP 2.0.1 + ISO 15118 integration.

Contact details

I hope the given documentation and guidance can help you to successfully integrate an OCPP controller into your EVSE. I will be happy if you reach out!

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

microocpp's People

Contributors

matth-x avatar agruenb avatar pedro-fuoco avatar fbisinger avatar nelopauselli avatar zhushengsheng001 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.