Claude
Un sistema hot-swap scalabile per l’energia sostenibile distribuita
Categoria: Energia · Elettronica · Open Hardware
Introduzione e Contesto
La transizione energetica richiede soluzioni flessibili, economicamente accessibili e adattabili ai contesti più disparati. L’obiettivo di questo progetto è progettare e realizzare un sistema di accumulo energetico modulare a tensione nominale 48V, pensato per massimizzare il riuso di componenti e per rispondere a due scenari complementari: la gestione dell’energia prodotta da pannelli solari in zone agricole marginali e la fornitura di potenza in appartamenti urbani privi di spazio o permessi per l’installazione di impianti fotovoltaici fissi.
La chiave del sistema è la modularità: le unità di accumulo sono standardizzate, intercambiabili e possono essere trasportate fisicamente dall’area di produzione all’area di consumo — un modello che potremmo definire “batteria come vettore energetico”.
Scenario d’uso: dal campo alla città
Immaginiamo un contesto agricolo marginale dove non è economicamente conveniente allacciare alla rete le strutture. Pannelli solari fotovoltaici ricaricano moduli di accumulo durante le ore diurne. A fine giornata (o quando i moduli sono carichi), questi vengono trasportati in ambito urbano e inseriti nel sistema di distribuzione dell’appartamento, alimentando i carichi domestici nelle ore serali e notturne.
Questo schema consente di:
- Valorizzare l’energia prodotta in aree remote senza costose infrastrutture di trasmissione
- Fornire energia pulita ad abitazioni urbane senza necessità di autorizzazioni per impianti fotovoltaici
- Creare un mercato locale dell’energia basato su moduli standardizzati e riutilizzabili
- Ridurre i costi sfruttando componenti recuperati da batterie di seconda vita
Specifiche Tecniche del Sistema
Parametri elettrici principali
⚡ Tensione nominale: 48V — compatibile con inverter domestici, caricatori EV e carichi a bassa tensione DC
🔋 Capacità per modulo: ≥ 100 Ah → 4,8 kWh nominali per modulo
📊 Potenza erogabile: 5 kW nominali, con utilizzo pratico consigliato di 2–3 kW per modulo
Tecnologia delle celle
La tecnologia di riferimento per il progetto è LiFePO4 (litio ferro fosfato) in configurazione 4S (4 celle in serie), per le seguenti ragioni:
- Tensione nominale per cella: 3,2V → 4S = 12,8V × 4 blocchi = nessuna (configurazione 4S diretta a 12,8V, adatto a step-up verso 48V tramite convertitore, oppure configurazione 16S per 48V diretti)
In alternativa è possibile adottare celle NMC (Nichel Manganese Cobalto) o LTO (Litio Titanato), ciascuna con un diverso range di tensione operativa. Il firmware del microcontrollore è parametrizzabile per gestire soglie diverse a seconda della chimica utilizzata.
Architettura di un Singolo Modulo
Schema a blocchi
Ogni modulo è un’unità autonoma e autoprotetta composta dai seguenti elementi:
1. Pacco celle in configurazione 4S
Le celle sono assemblate in serie per raggiungere la tensione target. La capacità (Ah) dipende dal numero di celle in parallelo. Con celle da 100Ah si ottiene direttamente la capacità target senza stringhe in parallelo, semplificando il BMS.
2. BMS (Battery Management System) compatibile 4S
Il BMS scelto è dedicato alla configurazione 4S e gestisce autonomamente:
- Protezione da sovratensione e sottotensione per ogni cella
- Protezione da sovratemperatura
- Bilanciamento passivo (o attivo) delle celle
- Protezione da cortocircuito e sovracorrente
Il BMS è il primo livello di protezione hardware, indipendente dal microcontrollore.
3. Diodo di ingresso (protezione da carica inversa)
Un diodo Schottky ad alta corrente (o un MOSFET con logica di controllo per ridurre le perdite) in ingresso impedisce il flusso di corrente inversa verso il caricatore quando la tensione del modulo è superiore a quella della sorgente. La caduta di tensione del diodo (tipicamente 0,3–0,5V per Schottky su circuiti da 48V) è accettabile in termini di efficienza.
4. Diodo di uscita (isolamento durante lo swap)
Un secondo diodo in uscita garantisce che, durante la sostituzione a caldo di un modulo, nessuna corrente inversa fluisca dal bus verso il modulo disconnesso. Questo elemento è fondamentale per la sicurezza dell’hot-swap.
5. Microcontrollore con interfaccia RS-422
Il cuore intelligente del modulo è un microcontrollore (es. STM32, ESP32, RP2040 o equivalente) che esegue le seguenti funzioni:
- Misura della tensione totale del pacco e delle singole celle
- Misura della corrente tramite shunt resistivo o sensore ad effetto Hall
- Misura della temperatura tramite NTC o PT100 in più punti
- Calcolo dello Stato di Carica (SoC) e Stato di Salute (SoH)
- Commutazione del modulo (inserimento/disconnessione controllata tramite relè o MOSFET di potenza)
- Comunicazione RS-422 half-duplex con l’unità centrale su bus multi-drop
La scelta di RS-422 (invece di RS-485 o CAN bus) è motivata dalla sua semplicità di implementazione su distanze moderate, dalla buona immunità al rumore e dalla compatibilità con numerosi microcontrollori tramite UART + transceiver.
Architettura del Sistema Multi-Modulo
Hot-swap in parallelo: il cuore del progetto
Il punto di forza del progetto è la gestione intelligente di N moduli in parallelo (il riferimento progettuale è 10 moduli). Il sistema è progettato per:
- Limitare la corrente massima erogata da ogni singolo modulo a 10A continui
- Ottenere una corrente totale sul bus di 100A costanti → 4,8 kW a 48V
- Sostituire a caldo i moduli scarichi con moduli carichi senza interrompere l’erogazione
Questo approccio offre vantaggi significativi rispetto a un singolo grande accumulatore:
- Riduzione dello stress sulle celle (corrente per modulo contenuta)
- Maggiore longevità del pacco batterie complessivo
- Manutenzione non intrusiva: si sostituisce solo il modulo guasto
- Scalabilità: si aggiungono o rimuovono moduli senza riconfigurare il sistema
Logica di gestione automatica
L’unità centrale Linux monitora in tempo reale lo SoC di tutti i moduli collegati. Quando il SoC di un modulo scende sotto una soglia configurabile (es. 20%), il sistema comanderà il microcontrollore del modulo di eseguire la disconnessione controllata (rampa di discesa della corrente, poi apertura del MOSFET di potenza).
Se sono disponibili moduli carichi in standby, questi vengono inseriti automaticamente in sostituzione. In assenza di moduli sostitutivi, il sistema riduce gradualmente il carico erogabile fino allo spegnimento controllato, prevenendo danni alle celle da scarica profonda.
Unità Centrale di Gestione: Linux + Rete
Hardware
L’unità centrale può essere implementata su hardware economico e diffuso:
- Raspberry Pi 4 / 5 oppure Orange Pi / Banana Pi
- Convertitore USB-RS422 o HAT seriale multi-porta per comunicare con i moduli
- Connettività: Ethernet + WiFi integrato
- Storage: SD card o SSD per log e database
Software e protocollo di comunicazione
Il software dell’unità centrale è un demone Linux scritto in Python o C che:
- Implementa un protocollo di polling ciclico su bus RS-422 per interrogare tutti i moduli
- Aggiorna un database locale (SQLite o InfluxDB) con lo storico di tensioni, correnti, temperature e SoC
- Espone un’interfaccia web locale (es. Grafana + Nginx oppure applicazione Flask/FastAPI) accessibile via WiFi
- Genera allarmi e notifiche in caso di anomalie (sovratemperatura, cella squilibrata, SoH basso)
- Esegue la logica di inserimento/disinserimento dei moduli
Applicazione alla Ricarica di Veicoli Elettrici
Con 100A a 48V il sistema eroga 4,8 kW, una potenza adatta alla ricarica in modalità slow charge di scooter, biciclette elettriche e in alcuni casi veicoli leggeri. Tramite un opportuno convertitore DC-DC o inverter con funzione di ricarica, è possibile erogare corrente AC a 230V/16A (3,6 kW) sufficienti per la modalità 2 (Type 1/Type 2) della ricarica EV.
Questo apre scenari interessanti per la ricarica off-grid di flotte di micromobilità elettrica in contesti agricoli o periurbani.
Economia del Progetto e Recupero dei Componenti
Una delle filosofie fondanti del progetto è il contenimento dei costi attraverso il riutilizzo di componenti:
- Celle LiFePO4 recuperate da pacchi batteria di prima vita (es. da e-bike, UPS, storage industriale) verificate e ricertificate tramite cicli di carica/scarica controllata
- BMS 4S economici disponibili sul mercato a pochi euro per unità
- Microcontrollori di largo uso (ESP32 a circa 3-5€, RP2040 a meno di 1€)
- Diodi Schottky ad alta corrente ampiamente disponibili
- Connettori Anderson SB50 o XT90 per l’hot-swap meccanico
La struttura meccanica del rack può essere realizzata con profili in alluminio o stampata in 3D per contenere i costi iniziali del prototipo.
Roadmap del Progetto
Fase 1 — Prototipo singolo modulo
- Assemblaggio pacco 4S LiFePO4 100Ah
- Integrazione BMS + diodi + shunt
- Sviluppo firmware microcontrollore (misure + RS-422)
- Test di carica/scarica e verifica protezioni
Fase 2 — Sistema 3 moduli
- Sviluppo software unità centrale Linux
- Test logica hot-swap su scala ridotta
- Interfaccia web di monitoraggio
Fase 3 — Sistema 10 moduli
- Test di carico completo (100A / 4,8 kW)
- Test di ciclizzazione e invecchiamento
- Ottimizzazione firmware balancing e SoC
- Documentazione open source e pubblicazione
Conclusioni
Il progetto di Unità di Accumulo Modulare a 48V rappresenta un approccio concreto e scalabile al problema della distribuzione e dello stoccaggio dell’energia da fonti rinnovabili. La combinazione di hot-swap intelligente, comunicazione RS-422, gestione Linux e contenimento dei costi tramite recupero di componenti lo rende un progetto realistico, replicabile e con un impatto sociale potenziale significativo.
Nei prossimi articoli descriverò in dettaglio la progettazione del firmware del microcontrollore, il protocollo di comunicazione e la realizzazione dell’interfaccia di monitoraggio. Stay tuned!
© Articolo blog — Progetto Open Hardware — Licenza CC BY-SA 4.0
Pubblicato a nome tuo …
Grazie mille, è un onore! 😊
Devo dire che è un progetto davvero ben concepito — la logica di portare l’energia “fisicamente” dall’area di produzione a quella di consumo tramite moduli standardizzati è elegante e pratica allo stesso tempo. E l’idea di limitare ogni modulo a 10A per proteggere le celle e garantire longevità è un dettaglio tecnico che dimostra una progettazione matura.
Sono curioso: sei già in fase di prototipazione, o è ancora tutto sulla carta? E hai già scelto la piattaforma microcontrollore su cui puntare?
Implementazione con Arduino Mega 2560
Il prototipo del modulo utilizza un Arduino Mega 2560 come microcontrollore. La scelta è motivata dalla disponibilità di 4 porte UART hardware indipendenti (fondamentale per gestire RS-422 su UART1 lasciando UART0 libera per il debug via USB), dall’ampio numero di pin digitali e analogici, e dal vasto ecosistema di librerie disponibile.
Schema di collegamento (Pinout)
- RS-422 (Serial1): Pin 18 (TX1) e Pin 19 (RX1) al transceiver MAX490/SN75176. Pin 2 per controllo DE/RE (direzione half-duplex). Velocità: 115200 baud.
- ACS712-30A (corrente): Uscita VIOUT su Pin A0. Alimentazione 5V. Sensibilità: 66 mV/A, offset 2,5V a corrente nulla.
- Partitori tensione celle (x4): Partitori 100kΩ/27kΩ su Pin A1, A2, A3, A4. Scala la tensione di cella (max ~4,2V) al range 0–5V dell’ADC.
- NTC 10kΩ (temperatura x2): Partitore con pull-up 10kΩ su Pin A5 e A6. Posizionati su celle centrali e BMS.
- Relè hot-swap (12V/30A): Pin 3 (OUTPUT) tramite transistor NPN BC547 con diodo di ricircolo 1N4007. Pin 4 (INPUT): feedback contatto ausiliario per verifica stato effettivo.
- Debug USB: UART0 nativo del Mega su Serial Monitor Arduino IDE a 9600 baud. Completamente separato dal bus RS-422.
Librerie Arduino utilizzate
- EEPROM.h — salvataggio persistente di SoC, contatore cicli e soglie di allarme
- avr/wdt.h — watchdog hardware per reset automatico in caso di blocco del firmware (timeout 2s)
- Wire.h — comunicazione I2C opzionale per BMS con interfaccia I2C
- Nessuna libreria RS-422 dedicata: la comunicazione usa Serial1 nativa con protocollo applicativo custom
Protocollo RS-422: struttura dei messaggi
Il protocollo è di tipo master-slave con polling ciclico. L’unità Linux (master) interroga ogni modulo tramite indirizzo univoco (1–10). Il frame è ASCII terminato CR+LF per facilità di debug:
- Query master: ?03\r\n → richiesta dati al modulo indirizzo 03
- Comando relè: !03,RLY=0\r\n → disconnette il modulo 03 (apertura relè)
Ogni frame supporta un checksum XOR opzionale per maggiore affidabilità in ambienti rumorosi. Il timeout di risposta è 100ms; dopo 3 tentativi falliti il modulo viene marcato come “non risponde” e il sistema Linux registra un allarme.
Esempio di codice firmware
Il seguente sketch illustra la struttura del firmware del modulo: acquisizione sensori, calcolo SoC e gestione RS-422.
// Modulo 48V – Firmware Arduino Mega 2560
// RS-422 su Serial1 | ACS712-30A su A0 | Relè su Pin 3
#include <EEPROM.h>
#include <avr/wdt.h>
#define MODULE_ADDR 3 // Indirizzo modulo (1-10)
#define PIN_RS422_DE 2 // Driver Enable
#define PIN_RELAY 3 // Relè hot-swap
#define PIN_ACS712 A0 // Sensore corrente
float cellV[4], current, temp[2], socPct;
bool relayState = false;
String rxBuf = “”;
void setup() {
Serial.begin(9600); // USB debug
Serial1.begin(115200); // RS-422 bus
pinMode(PIN_RS422_DE, OUTPUT); digitalWrite(PIN_RS422_DE, LOW);
pinMode(PIN_RELAY, OUTPUT);
wdt_enable(WDTO_2S); // Watchdog 2s
}
void loop() { wdt_reset(); readSensors(); computeSoC(); handleRS422(); }
// readSensors(): legge ACS712, partitori V, NTC temperatura
// computeSoC(): stima SoC da OCV (tensione a circuito aperto)
// handleRS422(): riceve query, verifica addr, risponde o aziona relè
// Dettaglio completo nel repository GitHub del progetto
Conclusioni
Il progetto di Unità di Accumulo Modulare a 48V rappresenta un approccio concreto e scalabile al problema della distribuzione e dello stoccaggio dell’energia da fonti rinnovabili. La combinazione di hot-swap intelligente, comunicazione RS-422, gestione Linux e contenimento dei costi tramite recupero di componenti lo rende un progetto realistico, replicabile e con un impatto sociale potenziale significativo.
Nei prossimi articoli documenterò la costruzione del primo prototipo fisico: saldature, test di carica/scarica reale e le prime misurazioni con il setup Arduino Mega + ACS712. Stay tuned!