Come costruire un display per l’impianto solare con Claude Code in meno di un’ora (e funziona davvero)

,
Home » Come costruire un display per l’impianto solare con Claude Code in meno di un’ora (e funziona davvero)

Sì: stavolta l’Intelligenza Artificiale non è una parola da inserire nel titolo per fare scena. È stata una leva concreta. In meno di un’ora, usando Claude Code, ho messo insieme un progetto completo (firmware + logica di visualizzazione) per avere un display hardware sempre acceso che mostra in tempo reale i dati del mio impianto fotovoltaico, prendendoli da Solar Assistant via MQTT.

Repository: https://github.com/alexlanni/solar-assistant-display

README (principio di funzionamento):
https://github.com/alexlanni/solar-assistant-display/blob/main/README.md

Perché un display fisico, quando esistono app e dashboard?

Perché alcune informazioni non le vuoi “cercare”, le vuoi vedere al volo. Quando sei in casa o nel locale tecnico, un display sempre acceso ti dà subito risposta a domande tipo:

  • Sto andando in autoconsumo o sto importando dalla rete?
  • La batteria sta caricando o scaricando?
  • Quanti watt stanno producendo i pannelli in questo momento?
  • Quanto sto consumando adesso?
  • Quanto ho prodotto/consumato oggi (energia giornaliera)?

È la differenza tra “apro l’app, carico il grafico, cerco il widget” e “guardo e basta”.


Cosa fa questo progetto (in pratica)

Il sistema è composto da:

  • Wemos D1 Mini (ESP8266) come microcontrollore
  • Display grafico 128×64 QC12864B con controller ST7920
  • Wi-Fi + MQTT per leggere i valori esposti da Solar Assistant
  • Una dashboard compatta renderizzata sul display con refresh costante

Il firmware:

(1) si connette al Wi-Fi, (2) si connette al broker MQTT, (3) si sottoscrive ai topic, (4) aggiorna a schermo lo stato dell’impianto a intervalli regolari.


Architettura “semplice ma solida”

La cosa interessante non è solo “leggo MQTT e stampo a schermo”, ma come lo fai senza impiantarti quando la rete cade o il broker non risponde. Ho impostato una logica pratica e robusta:

  • Refresh display ogni 2 secondi: abbastanza rapido da essere “live”, senza sprecare risorse.
  • Reconnect MQTT non bloccante ogni 5 secondi: se il broker cade, non si pianta tutto.
  • Gestione valori “stale” dopo 30 secondi: se non arrivano dati recenti, evito di mostrare numeri vecchi come se fossero attuali.

Quando un valore è stale, le potenze possono diventare ?, la grid può andare a 0 W come fallback e le energie giornaliere restano (sono accumulatori e hanno senso anche con aggiornamenti intermittenti).


Convenzioni dei valori (per non impazzire con i segni)

Per evitare equivoci, ho adottato convenzioni chiare:

  • Battery power: positiva = caricamento, negativa = scaricamento
  • Grid power: positiva = import, negativa = export

Questo ti consente di capire al volo se stai assorbendo dalla rete o stai immettendo.


Hardware: pochi componenti, poche complicazioni

Il display usa il controller ST7920 in modalità seriale 3-wire (SW SPI) ed è pilotato con la libreria U8g2. Questa scelta è comoda perché riduce i pin e rende il rendering affidabile.

Il risultato è un “cruscotto” minimalista che sta bene anche in un contenitore stampato in 3D o in una scatola da quadro.


La parte “AI”: cosa ha fatto davvero Claude Code

Qui viene il punto interessante: non si tratta di far scrivere a caso del codice. L’approccio che mi ha fatto risparmiare tempo è stato:

  • Descrivere obiettivo e vincoli (MCU, display, MQTT, refresh, fallback, segni)
  • Iterare velocemente con patch piccole e verificabili (topic, layout, rendering)
  • Validare in pratica: compila, flash, guardo il display, correggo

Claude Code è stato un acceleratore su struttura del progetto, gestione degli edge case (reconnect/stale) e pulizia del rendering. Poi però il firmware resta deterministico: l’AI ti fa correre, ma il controllo rimane tuo.


Foto reale del progetto


Come usarlo (senza fare i vaghi)

  1. Clona il repository.

  2. Configura Wi-Fi e broker MQTT come indicato nel README.

  3. Flasha il firmware sul Wemos.

  4. Verifica che Solar Assistant stia pubblicando i topic attesi.

  5. Accendi: il display diventa il tuo “strumento da quadro”.


Idee per evolverlo (fase 2)

  • Case stampato in 3D con supporto a parete
  • Icone (sole, batteria, rete) per migliorare la leggibilità
  • Modalità notturna / riduzione luminosità (se supportata)
  • Pagine a rotazione: oggi / ieri / medie
  • Alert via MQTT quando SOC scende sotto soglia o grid import supera X

Conclusione

Questo è uno di quei progetti dove l’AI non sostituisce il maker: lo potenzia. Con un microcontrollore economico e un display semplice, ti porti a casa un oggetto estremamente pratico: un cruscotto sempre acceso che ti dice la verità dell’impianto in tempo reale.

Se vuoi partire da qui:


Ciao, sono Alessandro Lanni

Sviluppatore di software e Software Architect con oltre 20 anni di esperienza. Lavoro come responsabile dell’area sviluppo software per un noto provider di hosting italiano, dove mi occupo di architetture, modernizzazione di piattaforme, integrazioni API e automazioni a supporto dei team e dei prodotti.

In questo blog raccolgo appunti ed esperienze su sviluppo software, architetture, cloud, AI e automazione, insieme a sperimentazioni nel mondo dell’elettronica, dell’IoT, della fotografia, della musica e dell’aeromodellismo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *