Questo progetto utilizza un Arduino per leggere i valori da due inverter Aurora (Power-One / ABB) tramite interfaccia RS485 e visualizzarli su un terminale seriale (es. PuTTY).
Maggiori informazioni: articolo su drhack.it
- Panoramica
- Requisiti
- Hardware
- Software
- Cablaggio
- Installazione e compilazione
- Configurazione
- Utilizzo (PuTTY/terminali)
- Output atteso
- Risoluzione problemi
- Sicurezza ed avvertenze
- Contribuire
- Licenza
- Riferimenti
- Obiettivo: interrogare 1–2 inverter Aurora via RS485, leggere alcune grandezze (es. potenza istantanea, tensione/corrente stringa, energia, stato) e stamparle su Serial Monitor / PuTTY.
- Architettura: Arduino ↔ RS485 transceiver (MAX485 o compatibile) ↔ Bus RS485 ↔ Inverter 1/2.
- Modalità: polling periodico degli inverter con stampa formattata su seriale.
Nota: il protocollo “Aurora” è proprietario ABB/Power‑One. Assicurarsi di avere il manuale del protocollo e gli indirizzi dei dispositivi impostati correttamente sugli inverter.
- 1x Arduino compatibile (es. UNO, Nano, Mega).
- 1x Modulo RS485 TTL (es. MAX485/75176 o equivalenti).
- Cavi per bus RS485 (coppia twistata consigliata), terminazioni 120 Ω se necessarie.
- Facoltativo: secondo modulo RS485 se si preferisce isolare le linee o usare setup multipli.
- Alimentazione stabile per Arduino e trasduttori.
- Arduino IDE (o Arduino CLI).
- Eventuali librerie per RS485/seriale software se richieste dallo sketch (es. AltSoftSerial/NeoSWSerial). Verificare nello sketch quali sono effettivamente usate.
- Un terminale seriale (PuTTY, screen, minicom, CoolTerm, ecc.).
Schema tipico (esempio, verificare i pin nello sketch):
-
Modulo RS485:
- RO → RX Arduino (es. D0 su hardware serial o pin RX di una seriale software)
- DI → TX Arduino (es. D1 su hardware serial o pin TX di una seriale software)
- RE e DE collegati insieme → pin digitale Arduino (es. D2) per abilitare trasmissione
- VCC → 5V (o 3.3V secondo modulo)
- GND → GND Arduino
- A/B → Bus RS485 (A ↔ A, B ↔ B dell’inverter)
-
Bus RS485:
- Topologia a linea, terminazione 120 Ω alle estremità se tratte lunghe.
- Messa a terra di riferimento condivisa se necessario.
- Evitare stelle e derivazioni lunghe.
-
Inverter Aurora:
- Collegare ai morsetti RS485 secondo manuale ABB/Power‑One.
- Impostare indirizzi univoci per ogni inverter sul bus (es. 2 e 3).
Nota: i pin riportati sono di esempio. Controllare i define nello sketch per i pin effettivi (TX/RX e pin RE/DE).
- Clonare o scaricare questo repository.
- Aprire lo sketch Arduino nell’IDE.
- Verificare:
- Board selezionata (es. “Arduino Uno”).
- Porta seriale corretta.
- Eventuali librerie richieste dallo sketch installate.
- Compilare e caricare il firmware su Arduino.
Nel file principale dello sketch (o in un header di configurazione) di solito sono presenti:
- Indirizzi RS485 degli inverter (device address). Esempio:
INVERTER_ADDR_1 = 2,INVERTER_ADDR_2 = 3. - Pin RE/DE del modulo RS485 (trasmit enable). Esempio:
RS485_DE_RE_PIN = 2. - Scelta della porta seriale usata per RS485 (HardwareSerial, SoftwareSerial, AltSoftSerial).
- Baud rate e parametri seriali:
- Serial USB per debug/terminali (es. 9600 o 115200 8N1).
- Serial RS485 verso inverter (tipicamente 19200 8N1 per protocollo Aurora, verificare sul manuale e nella configurazione dell’inverter).
- Intervallo di polling (es. 1–5 secondi).
- Selezione delle grandezze da leggere (comandi del protocollo).
Aggiornare questi valori in base al proprio impianto. Se lo sketch include commenti o #define esplicativi, seguirli come fonte primaria.
- Collegare Arduino al PC via USB.
- Aprire PuTTY (o altro terminale) e selezionare:
- Porta COM di Arduino.
- Baud rate: quello configurato per la seriale USB nello sketch (es. 9600 o 115200).
- Dati: 8 bit, Parità: Nessuna, Stop: 1 (8N1).
- Aprire la sessione: dovreste vedere messaggi periodici con i dati degli inverter.
Suggerimenti:
- Se non appare nulla, provare a premere il tasto reset su Arduino o riaprire la porta.
- Verificare che il baud del terminale corrisponda a
Serial.begin(...)dello sketch.
In base allo sketch, è tipico vedere righe testuali come:
- Timestamp/loop counter
- Indirizzo inverter interrogato
- Grandezze principali (esempi):
- Potenza AC istantanea [W]
- Tensione DC [V], Corrente DC [A]
- Energia giornaliera [Wh/kWh], totale [kWh]
- Stato/Allarmi inverter
Esempio di formato possibile: [Addr 2] P=1234 W | Vdc=350.2 V | Idc=3.5 A | E_day=5.21 kWh | Stato=OK [Addr 3] P=1178 W | Vdc=348.9 V | Idc=3.4 A | E_day=4.98 kWh | Stato=OK
Il formato esatto dipende dall’implementazione nello sketch.
- Nessun dato sul terminale:
- Controllare baud e parametri seriali.
- Verificare che lo sketch stampi realmente su
Serial.
- Timeout o risposte vuote dagli inverter:
- Verificare cablaggio A/B non invertito.
- Abilitare correttamente RE/DE durante la trasmissione (pin giusto, logica HIGH/LOW).
- Terminazioni 120 Ω e resistenze di bias (se richieste) sul bus.
- Indirizzi inverter corretti e univoci.
- Lunghezza e qualità del cavo RS485 (coppia twistata, schermata per ambienti disturbati).
- Dati errati o intermittenti:
- Condividere GND di riferimento se necessario.
- Ridurre il baud rate RS485 o aumentare il timeout.
- Alimentazione stabile al modulo RS485.
- Operare sull’impianto FV solo se qualificati. Gli inverter e i quadri elettrici possono contenere tensioni pericolose.
- Effettuare i collegamenti RS485 a impianto spento e in sicurezza.
- Rispettare le normative e le indicazioni del costruttore dell’inverter.
- Questo progetto è fornito “così com’è”, senza garanzie. Utilizzarlo a proprio rischio.
Contributi, issue e miglioramenti sono benvenuti:
- Aprire una issue per bug/feature.
- Proporre una pull request con modifiche documentate.
- Migliorare la documentazione aggiungendo dettagli su pin, baud e comandi effettivamente usati nello sketch.
Per favore, mantenere uno stile di codice coerente e aggiungere commenti dove utile.
[Specificare la licenza del progetto, ad esempio MIT, GPL-3.0 o altra. Se non è stata ancora scelta, aggiungere un file LICENSE.]
- Manuale protocollo “Aurora Communication Protocol” (ABB/Power‑One).
- Articolo originale di riferimento
- Documentazione Arduino (Serial, SoftwareSerial/AltSoftSerial).
- Note applicative RS485 (terminazioni, biasing, cablaggio).
Sezione da aggiornare con:
- Pin definitivi usati dallo sketch (TX/RX, RE/DE).
- Baud rate e parametri confermati (USB e RS485).
- Elenco comandi Aurora effettivamente interrogati e mapping valori stampati.
- Esempi di output reali per 1 e 2 inverter.
- Versioni testate di Arduino/librerie.