Sensori di presenza per stanza con il BLE

Da un po' di tempo volevo che casa capisse in che stanza mi trovo, non solo se sono dentro o fuori. Non per curiosità o per tenere il conto di dove passa il tempo chi ci vive, ma per una ragione più pratica: se il software di automazione riesce a capire autonomamente la tua posizione,può gestire i dispositivi in maniera più intelligente e sopratutto autonoma, invece di dovergli dire ogni volta cosa fare. Luci che si accendono solo dove serve, non ovunque. Niente più comandi vocali per accendere una lampada mentre hai le mani occupate.

Il pezzo hardware è più economico di quanto pensassi. Ho preso cinque piccoli ESP32, quasi tutti M5Stack Atom Lite, uno per ogni stanza principale: soggiorno, camera, cucina, cameretta e ingresso. Ognuno fa da antenna BLE, ascolta i segnali Bluetooth in giro per casa e li rimanda a Home Assistant. Con abbastanza antenne sparse, un'integrazione chiamata Bermuda riesce a triangolare la posizione approssimativa di un dispositivo confrontando la potenza del segnale ricevuta da ciascun punto. Il nome non è casuale, immagino: anche qui, in un certo senso, si tratta di sparire e ricomparire da un punto all'altro senza una spiegazione troppo precisa del percorso in mezzo.

Flashare il primo ESP32 è stato semplice, quasi sospettosamente semplice: dal browser, senza installare niente, in dieci minuti era già online. Il secondo invece mi ha fatto perdere una sera intera per un conflitto tra due librerie LED che proprio non ne volevano sapere di stare insieme, finché non ho scoperto che bastava cambiare il framework di compilazione da Arduino a esp-idf. Una volta capito, ho copiato la stessa impostazione su tutti gli altri e sono filati lisci.

Un altro intoppo, più banale ma altrettanto fastidioso: la risoluzione del nome di rete non funzionava sempre al primo tentativo con l'installazione wireless. La soluzione più affidabile è stata prendere l'indirizzo IP direttamente dal router e forzare l'installazione via terminale specificando quello, invece di fidarmi della scoperta automatica.

Con tutti e cinque i proxy attivi e Bermuda configurato, la parte più delicata è stata la calibrazione. Il segnale Bluetooth rimbalza, attraversa i muri in modo diverso a seconda dei materiali, e le prime letture mi davano posizioni piuttosto ballerine: un momento ero "in cucina" secondo il sistema mentre ero fermo in soggiorno da venti minuti. Ci è voluta un po' di pazienza a piazzare le antenne in punti sensati, evitando angoli troppo schermati o troppo vicini a altri dispositivi elettronici, e a lasciare che il sistema raccogliesse dati per qualche giorno prima di fidarmi dei risultati.

Alla fine ha funzionato, e funziona bene. Non è instantaneo come vorrei, c'è sempre un piccolo ritardo tra il cambio stanza reale e quello rilevato, ma per gli scopi che avevo in mente va benissimo così.

Adesso ho cinque sensori di presenza per stanza affidabili, con il telefono e l'orologio tracciati singolarmente. La parte di infrastruttura è fatta. Quello che manca è la parte più divertente, ed è anche quella che conta davvero: prendere queste entità e costruire automazioni un po' più articolate di un semplice "se sono in cucina, accendi la luce della cucina", così la casa inizia davvero a semplificare le cose invece di aggiungerne. Ci sto già pensando, ma è materiale per un prossimo post.

← Torna a tutti i post