Come installare Venus OS su Raspberry Pi 4 e realizzare una centralina di gestione per Camper, Van o Baita con monitoraggio delle celle di una batteria LiFePO4

12 settembre 2024

Quest'oggi vi vogliamo spiegare come realizzare una centralina di gestione per camper, van o baita, tramite Raspberry Pi 4, con installato Venus OS.
Nel tutorial vi mostreremo inoltre come monitorare le celle delle batterie LiFePO4 attraverso il bluetooth, direttamente su un pannello touch da 7", senza bisogno di acquistare un Victron Energy Cerbo GX.

Avevamo già trattato questo argomento tempo fa, spiegando come avevamo realizzato la centralina di gestione del nostro van.
Trovate l'articolo a questo link.

In questo caso la guida sarà differente, visto che utilizzeremo uno schermo touch hdmi installato a una distanza di 10m, e controlleremo anche lo stato della batteria al litio, monitorando le celle LiFePO4.

Acquistiamo un Raspberry Pi 4

Innanzitutto, ci serve un Raspberry Pi 4 ed una scheda Micro SD.

Su Amazon si possono trovare le varie versioni di Raspberry Pi 4 subito disponibili a questo link:
https://amzn.to/4gkeNRw

Ci serve inoltre una scheda Micro SD (consigliamo Sandisk):
https://amzn.to/4dZwpka

Raspberry pi

Procuriamoci uno schermo touch HDMI per il Raspberry Pi

Per poter comandare la centralina con comodità, abbiamo bisogno di uno schermo touch.

Scegliamo lo schermo touch HDMI da 7" più economico presente su Amazon:
https://amzn.to/4d1fWKT

Noi abbiamo realizzato la custodia in legno, ma per chi volesse si trovano delle custodie in plastica già pronte, adatte a questo modello di schermo:
https://amzn.to/3B3amuk
https://amzn.to/3MDSV66

Touch screen display hdmi

Ovviamente è indispensabile anche un cavo HDMI:
https://amzn.to/3iNExN2

Un piccolo convertitore micro HDMI a HDMI:
https://amzn.to/4d5VOr8

Ed un cavo Micro Usb:
https://amzn.to/3BibYh0

N.B.: in caso si intendano utilizzare cavi lunghi (per esempio 10m), si dovrà acquistare una prolunga usb attiva, visto che i cavi usb normali hanno lunghezza massima di 5m. Spesso i cavi usb da 10m presenti su Amazon sono solo per ricarica e non vanno bene in questo caso, visto che non hanno i fili di trasporto dati.

Dotiamoci di relè compatibili con Raspberry Pi 4 e Venus OS

Se si vorrà sfruttare la possibilità di accendere o spegnere alcuni apparati a 12V, 24V o 230V tramite Venus OS, sarà necessario collegare dei relè al fidato Raspberry Pi.

Attenzione: non tutti i relè funzionano correttamente, bisognerà acquistare quelli "High Level Trigger", ovvero con le uscite che si "attivano" mandando corrente (in questo caso 5V).

Per non sbagliare, è possibile acquistare questo modello, che ha un pin per l'impostazione del Level Trigger di ogni porta:
https://amzn.to/4bgxhPF

4 channel relay with customized trigger

N.B.: attenzione all'acquisto dei relè, la maggioranza sono "Low Level Trigger", quindi in caso di dubbi consigliamo di utilizzare il nostro link qui sopra.

Indispensabili saranno anche alcuni cavetti "jumper wire" per collegare la scheda con i relè al Raspberry Pi:
https://amzn.to/3HhjH2x

Colleghiamo il Raspberry Pi ai relè ed allo schermo touch

Innanzitutto abbiamo alimentato tutti gli apparati a 5V da un piccolo convertitore DC 12V/24V a 5V.

Abbiamo poi connesso lo schermo touch al Raspberry Pi tramite il cavo HDMI ed il relativo convertitore.
Per quanto riguarda l'alimentazione dello schermo touch, il cavo usb va connesso direttamente ad una delle porte USB del Raspberry Pi.
Così facendo infatti si abiliterà la funzione touch dello schermo.

Questo è il nostro convertitore DC DC Step Down da 12V/24V a 5V da 10A 50W:
https://amzn.to/3P5UZEm

Tobsun convertitore 24v 12v 5v

Abbiamo poi acquistato questo cavo Usb-C maschio con morsettiera per alimentare il Raspberri Pi 4:
https://amzn.to/3UAe1Ul

Molto utili saranno anche alcuni connettori Wago:
https://amzn.to/3VSIFt8

I 4 relè li abbiamo collegati al Raspberry Pi come segue:
- relè 1 > Pin 40 / GPIO 21
- relè 2 > Pin 11 / GPIO 17
- relè 3 > Pin 13 / GPIO 27
- relè 4 > Pin 15 / GPIO 22

Per comodità ecco qui una immagine dei numeri di Pin e GPIO del Raspberry Pi.

Raspberry pi pinout gpio

Scarichiamo Venus OS

Una volta eseguiti tutti i collegamenti, procediamo con lo scaricamento del Venus OS.

Il sistema operativo Victron Energy è presente in due versioni, normale o large.

La large ha installati Node-RED e Signal K server, è quindi possibile una programmazione più personalizzata, però a scanso di un maggior consumo di risorse.

Più informazioni riguardo a questa versione si possono trovare qui:
https://www.victronenergy.com/live/venus-os:large

E' possibile passare alla versione large anche in seguito, senza dover rifare tutto il lavoro da capo.

A questo link si possono scaricare le versioni (large e normale) per Raspberry Pi 2 e 3:
https://updates.victronenergy.com/feeds/venus/release/images/raspberrypi2/

A questo, le versioni (large e normale) per Raspberry Pi 4:
https://updates.victronenergy.com/feeds/venus/release/images/raspberrypi4/

Mentre a questo le versioni in beta testing:
https://updates.victronenergy.com/feeds/venus/candidate/images/

Da qui scarichiamo l'ultima versione di Venus OS normale disponibile in questo momento per il nostro Rpi 4:
https://updates.victronenergy.com/feeds/venus/release/images/raspberrypi4/venus-image-raspberrypi4.wic.gz

Installiamo Venus OS nel Raspberry Pi

Noi usiamo Linux Debian nei nostri pc, quindi qui di seguito i comandi per l'installazione sulla Micro SD da linea di comando.

In caso di Windows come sistema operativo sul pc, è possibile utilizzare Balena Etcher, Rufus o software simili, per la scrittura dell'immagine sulla Micro SD.

Inseriamo la Micro SD nel pc e controlliamo a quale unità corrisponde:

sudo fdisk -l
[...]
Disk /dev/sde: 7,47 GiB, 8018460672 bytes, 15661056 sectors
Disk model: Mass-Storage
[...]​​

Nel nostro caso troviamo l'unità mappata come "/dev/sde".

Aggiorniamo i repository:

sudo apt update

Installiamo gzip:

sudo apt install gzip​

Scompattiamo l'immagine:

gunzip venus-image-raspberrypi4.wic.gz

Entriamo nella cartella appena creata:

cd venus-image-raspberrypi4.wic​

Scriviamo l'immagine sulla Micro SD, in questo caso in "/dev/sde":

sudo dd if=venus-image-raspberrypi4.wic of=/dev/sde bs=4M status=progress​

Assicuriamoci che la scrittura sia terminata e che tutti i dati in cache siano stati scritti:

sudo sync​

Ora possiamo scollegare la Micro SD dal pc.

Configuriamo Venus OS

Inseriamo la schedina Micro SD nel Raspberry Pi e lo accendiamo collegandoci il cavo di alimentazione usb-c che, nel nostro caso, viene dal convertitore a 5V.

Inizialmente vanno eseguiti dei comandi da linea di comando, quindi è necessario connettere anche una tastiera.
Per scrivere "/" ed "-" consigliamo di usare il tastierino numerico in quanto la codifica della tastiera NON è italiana.

Rendiamo il file system scrivibile con questo comando:

/opt/victronenergy/swupdate-scripts/remount-rw.sh

Abilitiamo lo schermo touch digitando questo comando:

mv /etc/venus/headless /etc/venus/headless.off

Espandiamo il file system:

/opt/victronenergy/swupdate-scripts/resize2fs.sh

Riavviamo il sistema:

shutdown -r now

Ora il sistema si dovrebbe avviare abilitando lo schermo ed il touch.
Non vi preoccupate se il touch non risponde perfettamente, fra poco lo calibreremo.

Impostiamo la lingua italiana:

Settings > Display & language > Language > Italiano

Abilitiamo l'accesso come Superutente:

Impostazioni > Generali > Livello di accesso > Utente e installatore (la password è ZZZ)

Una volta tornati nel menu Generale, con la riga Livello di accesso sottolineata di azzurro, tenere premuta la freccia a destra della tastiera.
Apparirà il livello di accesso Superutente.

Impostare una password di root:

Impostazioni > Generali > Livello di accesso > Set root password > impostare quello che si vuole

Abilitare SSH:

Impostazioni > Generali > Livello di accesso > SSH su LAN > Abilitare

Impostiamo il Wi-Fi:

Impostazioni > Wi-Fi > Connettersi alla rete desiderata cliccandoci sopra ed inserendo la password

Una volta connesso nella stessa scheda si può visualizzare l'INDIRIZZO_IP assegnato.

Oppure se si preferisce la rete cablata:

Impostazioni > Ethernet

Volendo adesso si può scollegare la tastiera.

Ora finalmente possiamo collegarci tramite SSH da un altro pc.

ssh root@INDIRIZZO_IP

Se utilizzi Windows puoi collegarti tramite Putty.

Lo schermo touch hdmi da 7" che abbiamo acquistato ha una risoluzione maggiore di quella standard di Venus OS.
Dobbiamo quindi impostare alcuni parametri affinchè questa sia corretta ed il touch sia calibrato alla perfezione:

nano /u-boot/config.txt
[...]
sotto:
[all]
inserire:
hdmi_group=2
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
hdmi_drive=1
hdmi_blanking=1
[...]

L'ultimo parametri hdmi_blanking serve per poter mandare in stand-by lo schermo tramite una impostazione che andremo a configurare fra poco.

Salvare con: CTRL + x

Riavviamo il sistema:

shutdown -r now

Adesso lo schermo dovrebbe apparire con la risoluzione corretta ed il touch rispondere con precisione.

Colleghiamoci di nuovo tramite SSH.

Ora abilitiamo lo spegnimento dello schermo dopo X secondi.
Prima di tutto dobbiamo verificare quale device sia attivato.

Testiamo il primo e vediamo se succede qualcosa:

echo "1" > /sys/class/graphics/fb1/blank
echo "0" > /sys/class/graphics/fb1/blank

Se non succede nulla proviamo con il secondo:

echo "1" > /sys/class/graphics/fb0/blank
echo "0" > /sys/class/graphics/fb0/blank

Attiviamo l'auto-spegnimento, in base al device attivo (nel nostro caso il fb1):

echo "/sys/class/graphics/fb1/blank" > /etc/venus/blank_display_device

Riavviamo il sistema:

shutdown -r now

Impostiamo il tempo di spegnimento:

Impostazioni > Display e lingua > Tempo di spegnimento display > 30 sec

Colleghiamoci di nuovo tramite SSH.

Abilitiamo tutti e 4 i relè (di default ne è abilitato solo 1):

nano /etc/venus/gpio_list
[...]
# Relay 1 Pin 40 / GPIO 21
21 out relay_1
# Relay 2 Pin 11 / GPIO 17
17 out relay_2
# Relay 3 Pin 13 / GPIO 27
27 out relay_3
# Relay 4 Pin 15 / GPIO 22
22 out relay_4
[...]

Eseguiamo il backup del file di controllo stato dei relè e lo editiamo come segue (qui di default ne sono abilitati 2):

cp /opt/victronenergy/dbus-systemcalc-py/delegates/relaystate.py /opt/victronenergy/dbus-systemcalc-py/delegates/relaystate_Backup.py
nano /opt/victronenergy/dbus-systemcalc-py/delegates/relaystate.py
[...]
('/Relay/0/State', '/Settings/Relay/0/InitialState', 0, 0, 1),
('/Relay/1/State', '/Settings/Relay/1/InitialState', 0, 0, 1),
('/Relay/2/State', '/Settings/Relay/2/InitialState', 0, 0, 1),
('/Relay/3/State', '/Settings/Relay/3/InitialState', 0, 0, 1)
[...]

Eseguiamo il backup del file di configurazione dei relè e lo editiamo come segue (qui di default ne sono abilitati 2):

cp /opt/victronenergy/gui/qml/PageSettingsRelay.qml /opt/victronenergy/gui/qml/PageSettingsRelay_Backup.qml
nano /opt/victronenergy/gui/qml/PageSettingsRelay.qml
[...]
property VBusItem relay1Item: VBusItem { bind: "com.victronenergy.system/Relay/1/State" }
property bool hasRelay1: relay1Item.valid
property VBusItem relay2Item: VBusItem { bind: "com.victronenergy.system/Relay/2/State" }
property bool hasRelay2: relay2Item.valid
property VBusItem relay3Item: VBusItem { bind: "com.victronenergy.system/Relay/3/State" }
property bool hasRelay3: relay3Item.valid

MbItemOptions {
id: relay1Function
description: hasRelay1 ? qsTr("Function (Relay 2)") : qsTr("Function")
bind: Utils.path(bindPrefix, "/Settings/Relay/1/Function")
show: hasRelay1
possibleValues:[
MbOption { description: qsTr("Manual"); value: 2 },
MbOption { description: qsTr("Temperature"); value: 4 }
]
}

MbSwitch {
id: manualSwitch1
name: qsTr("Relay 2 On")
bind: "com.victronenergy.system/Relay/1/State"
show: hasRelay1 && relay1Function.value === 2 // manual
}

MbSwitch {
id: manualSwitch2
name: qsTr("Relay 3 On")
bind: "com.victronenergy.system/Relay/2/State"
show: hasRelay2 // manual
}

MbSwitch {
id: manualSwitch3
name: qsTr("Relay 4 On")
bind: "com.victronenergy.system/Relay/3/State"
show: hasRelay3 // manual
}
[...]

Riavviamo il sistema:

shutdown -r now

Ora possiamo configurare i relè a nostro piacimento:

Impostazioni > Relè

N.B.: solo i primi 2 relè hanno possibilità di essere usati con il controllo temperatura, mentre il 3 e 4 solo con apertura/chiusura manuali.

Ricordarsi che questi ultimi comandi vanno ri-eseguiti ad ogni aggiornamento:
- file system scrivibile
- configurazione risoluzione display e touch
- auto-spegnimento display
- abilitazione ed impostazione relè

Esiste uno script che fa tutto in automatico, ma installa diverse cose ed a noi personalmente non piace.
Preferiamo quelle 2 volte l'anno che aggiorniamo il sistema eseguire questi comandi a mano e controllare eventuali bugs.

Ora è possibile disattivare il Superutente se desiderato:

Impostazioni > Generali > Livello di accesso > Utente e installatore (la password è ZZZ)

Se lo si desidera, si può abilitare la consolle remota per visualizzare lo schermo su browser esterno:

Impostazioni > Consolle Remota

Si può accedere da:
http://INDIRIZZO_IP

Attiviamo la pubblicazione dei dati e la possibilità di comandare il sistema dal cloud Victron Energy:

Impostazioni > Portale VRM Online

Attivarla, checkare "Comunicazione bidirezionale VRM" e segnare l'ID portale VRM.
Ci si può registrare ed accedere da:
https://vrm.victronenergy.com/login
Una volta eseguito l'accesso, cliccare su:

Aggiungi impianto > Cerbo GX / Cerbo-S GX > Inserire l'ID portale VRM, il nome dell'impianto e confermare con "Richiedi accesso"

Per terminare colleghiamo tutti i cavi usb delle interfacce di comunicazione Victron Energy provenienti dallo SmartShunt, dall'Inverter, dal Regolatore di Carica, etc., al Raspberry Pi e possiamo procedere alla loro configurazione come desiderato.

Controllare lo stato della batteria al litio e monitorare le celle LiFePO4

Per chi fosse interessato ad avere il monitoring completo delle celle LiFePO4 sul sistema Venus OS, tramite bluetooth, consigliamo di seguire la guida che abbiamo scritto proprio su questo argomento. Ecco il link.

Sono pochi e semplici passaggi da seguire, che vi permetteranno di avere sempre tutto sotto controllo.

Monitor celle lifepo4

Conclusioni

Il tutorial termina qui, speriamo di essere stati chiari ed aver spiegato tutto nel migliore dei modi.

Non abbiamo trattato la connessione e la configurazione dei vari apparati Victron visto che ognuno è libero di impostare a proprio piacimento i vari parametri e quello che va bene a noi potrebbe NON andar bene per qualcun altro.

Diciamo però che la connessione di un Regolatore di Carica MPPT, di un inverter Multiplus, etc, sono delle operazioni semplici ed alla portata di tutti.
Essenzialmente basta acquistare il cavo dati usb apposito e collegarlo dall'apparato al Raspberry Pi.
Verrà poi rilevato in automatico sulla centralina con Venus OS e quindi visualizzato sullo schermo touch.

Per ogni dubbio o domanda puoi contattarci nei commenti dei video oppure tramite la pagina Contattaci.

Condividi

Potrebbero interessarti