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
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
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
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
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.
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.
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.
Potrebbero interessarti
-
In questo tutorial vi mostriamo come è possibile realizzare un piccolo impianto fotovoltaico a 12V, con una batteria al litio LiFePO4, senza inverter, con un budget di spesa minimo, adatto a camper, van e per una baita o casetta off-grid. segue »
-
In questa guida vi spieghiamo come realizzare un impianto fotovoltaico ad isola completo, a 12V, con 2 batterie al litio LiFePO4 Redodo e un inverter da 3000W Vevor, con un budget di spesa medio, adatto a camper, van e per una baita o casetta off-grid. segue »
-
Scopriamo come monitorare le celle di una batteria LiFePO4 dotata di BMS bluetooth direttamente da Victron Venus OS: dal Cerbo GX o, come nel nostro caso, dal Raspberry Pi. segue »
-
Starlink è la connessione ad internet perfetta per chi viaggia in van? Mostriamo come modificare l'antenna in fai-da-te, montarla piatta sul camper ed alimentarla con la batteria servizi, senza inverter. segue »
-
In questo tutorial spieghiamo come costruire una micro camera wifi con un Raspberry PI Zero W o Zero 2 W ed il software Motion Eye. segue »
-
Riscaldamento elettrico per il van: come scaldare il camper senza webasto e cinebasto
Ecco come scaldiamo il nostro VW T4 "Vaniglia" gas-free anche d'inverno: con 4+1 tipologie differenti di riscaldamento elettrico. segue »