Kompletny projekt ładowarki EV oparty na EVerest z obsługą OCPP 1.6J.
Docelowy sprzęt: Odroid C4 z Armbian, sterownik ładowarki i watomierze podłączone przez Modbus RTU (RS485).
[OCPP Server (SteVe)]
| WebSocket (OCPP 1.6J)
[Odroid C4 / Armbian]
|
[EVerest Core]
├── OCPP Module ← komunikacja z serwerem OCPP
├── EvseManager ← maszyna stanu ładowania (IEC 61851)
├── Auth ← autoryzacja RFID/kart
├── SerialCommHub ← Modbus RTU master (RS485)
├── GenericPowermeter ← watomierz przez Modbus
└── BSP Module ← sterownik ładowarki przez Modbus
| |
/dev/ttyUSB0 /dev/ttyUSB1
(ładowarka) (watomierz / izometr)
| Urządzenie | Port | Baudrate | Adres |
|---|---|---|---|
| Sterownik ładowarki | /dev/ttyUSB0 | 9600 | 1 |
| Watomierz (np. SDM630) | /dev/ttyUSB1 | 9600 | 2 |
| Izometr (opcja) | /dev/ttyUSB1 | 9600 | 3 |
Na komputerze deweloperskim (z tym repo):
./deploy.sh 192.168.1.100 rootSkrypt skopiuje projekt i uruchomi wszystkie kroki instalacji.
cd ocpp-server
cp .env.example .env
docker compose up -dPanel SteVe: http://localhost:8180/steve
Login: admin / hasło z .env
Websocket OCPP: ws://TWOJE_IP:8180/steve/websocket/CentralSystemService/CP001
ssh root@192.168.1.100
bash armbian/01-system-prep.sh
bash armbian/02-install-docker.sh
bash armbian/03-deploy-services.shOCPP/
├── armbian/ # Skrypty instalacji na Armbian
│ ├── 01-system-prep.sh # Aktualizacja systemu, konfiguracja
│ ├── 02-install-docker.sh # Docker + Docker Compose
│ └── 03-deploy-services.sh # Start EVerest i konfiguracja
├── everest/ # Konfiguracja EVerest
│ ├── docker-compose.yml # EVerest + MQTT broker
│ ├── .env.example
│ ├── mosquitto.conf
│ └── config/
│ ├── everest-config.yaml # Główna konfiguracja modułów
│ ├── ocpp-config.json # Klucze OCPP 1.6
│ └── modbus/
│ ├── energy-meter.yaml # Mapa rejestrów watomierza
│ └── isolation-monitor.yaml
├── ocpp-server/ # Serwer OCPP (SteVe) do testów
│ ├── docker-compose.yml
│ ├── .env.example
│ └── README.md
├── systemd/
│ └── everest.service # Autostart EVerest
└── deploy.sh # Deployment SSH
- Odroid C4 (4GB RAM, eMMC/SD 16GB+)
- Armbian Bookworm (Debian 12) lub Ubuntu Jammy
- 2× adapter USB→RS485 (np. CH340/CP2102)
- Sterownik ładowarki z interfejsem Modbus RTU
- Watomierz 3-fazowy z Modbus RTU (np. Eastron SDM630)
- Opcjonalnie: izometr/IMD z Modbus RTU (dla DC)
Edytuj everest/config/everest-config.yaml:
ChargePointId— unikalny ID stacjiCentralSystemURI— adres serwera OCPP- Porty szeregowe i adresy Modbus urządzeń
Edytuj everest/config/modbus/energy-meter.yaml:
- Mapa rejestrów dla konkretnego modelu watomierza
- BootNotification, Heartbeat
- Authorize, StartTransaction, StopTransaction
- StatusNotification, MeterValues
- RemoteStartTransaction, RemoteStopTransaction
- ChangeAvailability, Reset
- GetConfiguration, ChangeConfiguration
- UnlockConnector
- SmartCharging (SetChargingProfile)