L'idea alla base di questo progetto è quella che mi sta più a cuore quando parlo di smart home: i tuoi dati restano a casa tua. Niente abbonamenti, niente server di terzi, nessun sensore che spedisce la temperatura del tuo salotto chissà dove. Solo hardware che possiedi e software open source. Ecco come l'ho realizzato.
Hardware e Setup
La lista della spesa è volutamente minimale. Non serve molto per iniziare:
- Raspberry Pi 5 (4 GB): il cervello del sistema. Ci gira sopra n8n, il database e Grafana, tutto insieme, senza fatica. Un Pi 4 va comunque benissimo.
- Sensore DHT22: misura temperatura e umidità con buona precisione (±0,5 °C). Costa pochi euro ed è il classico punto di partenza per l'IoT casalingo.
- Cavi jumper e una resistenza da 10kΩ: per collegare il DHT22 ai pin GPIO. Il sensore ha tre fili — alimentazione, dati e massa — e la resistenza di pull-up sulla linea dati rende le letture stabili.
- Alimentatore ufficiale: con il Pi 5 conviene non risparmiare sull'alimentazione, per evitare riavvii sotto carico.
Un dettaglio che apprezzo: il consumo energetico. L'intero setup assorbe in media 4-6 watt, anche con tutti i servizi attivi. Tenendolo acceso 24/7 si parla di circa 1,50 € al mese in bolletta — meno di un caffè, per un sistema sempre operativo.
Leggere i Dati con Python e n8n
Il DHT22 si interroga facilmente da Python con la libreria adafruit-circuitpython-dht. Il mio script fa tre cose: legge il sensore, costruisce un piccolo JSON con temperatura, umidità e timestamp, e lo invia a n8n.
Il ponte tra il sensore e l'automazione è un webhook n8n. Lo script Python fa una semplice POST verso l'URL del webhook ogni 60 secondi (gestito da un cron di sistema). Il flusso è questo:
- Lo script Python legge il DHT22 e invia
{ "temp": 24.3, "hum": 48, "ts": "..." }al webhook. - Il nodo Webhook di n8n riceve i dati e li passa al flusso.
- Un nodo di scrittura salva la lettura in un database time-series (uso InfluxDB, ma anche una tabella SQLite va benissimo per iniziare).
- Lo stesso flusso valuta se la temperatura ha superato una soglia — e qui entrano in gioco gli alert, di cui parlo più avanti.
Il vantaggio di passare da n8n invece di scrivere tutto in Python è che ogni modifica alla logica — una nuova soglia, una nuova destinazione, un nuovo alert — la faccio trascinando nodi, senza toccare codice e senza riavviare nulla.
Dashboard Real-time con Grafana su Pi
I dati grezzi non dicono molto: servono i grafici. Grafana è lo strumento perfetto e gira tranquillamente sullo stesso Raspberry Pi.
L'installazione è diretta: si aggiunge il repository ufficiale di Grafana, si installa il pacchetto e si abilita il servizio. In pochi minuti hai l'interfaccia web raggiungibile dalla rete locale sulla porta 3000.
La configurazione che conta è il datasource:
- Aggiungi InfluxDB (o il database che hai scelto) come sorgente dati, puntando a
localhostvisto che gira sulla stessa macchina. - Crei un pannello con la query sulla temperatura e imposti il refresh automatico a 30 secondi.
- Aggiungi un secondo pannello per l'umidità e, volendo, una soglia visiva che colora di rosso il grafico quando si supera il limite.
Vedere la curva della temperatura aggiornarsi in tempo reale sul telefono, mentre sei comodamente sul divano, dà una piccola ma concreta soddisfazione da maker.
Alert Automatici su Telegram
Una dashboard è utile solo se la guardi. Per essere avvisato anche quando non ci sto pensando, ho aggiunto gli alert su Telegram direttamente dentro n8n.
La logica è semplice e vive nello stesso flusso che riceve i dati dal sensore:
- Un nodo IF controlla a ogni lettura se la temperatura supera la soglia (per me 28 °C in estate, sotto i 16 °C in inverno).
- Se la soglia è superata, un nodo Telegram mi invia un messaggio del tipo "Ufficio a 29,1 °C — accendere il condizionatore?".
- Un controllo anti-spam: salvo l'orario dell'ultimo alert e ne invio uno nuovo solo se è passata almeno un'ora, così non ricevo venti notifiche per la stessa ondata di caldo.
Con qualche nodo in più, lo stesso meccanismo potrebbe addirittura azionare una presa smart per accendere un ventilatore — ma quella è materia per un prossimo articolo.
Conclusione
Con meno di cento euro di hardware e qualche ora di smanettamento, ho un sistema di monitoraggio ambientale che è tutto mio: nessun abbonamento, nessun dato che esce di casa, totale libertà di modificarlo. È il piccolo progetto perfetto per capire come si parlano sensori, automazione e visualizzazione.
L'IoT fai-da-te non è solo un hobby: è il modo migliore per riprendere il controllo della tecnologia che ci circonda. Se questi temi ti appassionano, iscriviti alla newsletter — il prossimo articolo lo dedico proprio all'automazione di una presa smart.