Il comune condizionatore di casa non è connesso ad Internet, non può essere azionato da remoto e per accenderlo bisogna usare il suo telecomando.
Questo funzionamento è ovviamente corretto, perché se non sei in casa è inutile accendere l’aria condizionata, ma possiamo immaginare almeno un paio di situazioni in cui intervenire da remoto sia utile. Prima scena: è una giornata caldissima, devi rientrare a casa e sai che troverai una calura bestiale appena aprirai l’uscio. Se tu potessi far partire il condizionatore quando esci dall’ufficio, arriveresti a casa con la temperatura perfetta. Seconda situazione: sei partito per le ferie estive, ma non ricordi se hai spento l’aria condizionata, poterlo fare da remoto sarebbe l’ideale.
In quest’articolo racconterò come hackerare il condizionare di casa e connetterlo ad Internet per comandarlo dal cellulare. Tuttavia, non troverete tutti i dettagli tecnici, anche se ci sono i link ai sorgenti, perché è tutto caricato sulla pagina del relativo progetto presente su Hackaday.
Costruire un telecomando per il condizionatore
Per risolvere i problemi raccontati sopra, si può costruire un telecomando ad infrarossi, che parli con il condizionatore e che sia connesso al wifi di casa. In questo modo si può costruire un sistema app-internet-wifi-telecomando che parla con il condizionatore e lo trasforma in un condizionatore IOT (Internet Of Things).
Il condizionatore, nel mio caso un Daikin, riceve i comandi da un telecomando ad infrarossi, il quale a sua volta riceve i comandi dalla app installata sul mio smartphone tramite la rete internet.
L’hardware: Wemos Mini e gli altri componenti
Il telecomando è costituito da una scheda Wemos D1 R2 (o una Wemos Mini) che utilizza il microprocessore ESP-8266 per la connettività wi-fi in modo relativamente semplice. Usando questa scheda, rispetto ad un Arduino normale si può utilizzare Internet per i propri progetti, sempre tramite l’interfaccia Arduino IDE.
Il telecomando wifi deve parlare con il condizionatore e per farlo usa gli infrarossi emulando il telecomando originale. Al sistema ho aggiunto un sensore di temperatura e umidità DHT11 per monitorare la situazione. Poichè la comunicazione è monodirezionale (dal telecomando al condizionatore) è utile avere dei dati ambientali nel caso volessimo definire delle regole di azionamento automatico oppure per controllare se, dopo aver acceso il condizionatore da remoto, la temperatura stia effettivamente scendendo.
I componenti utilizzati (i link portano ad Amazon e se cliccate son felice):
- Wemos R1 D1
- infra red led
- resistenze e cavetti
- transistor npn BC547
- sensore umidità e temperatura DHT 11
Nello schema potete vedere le parti coinvolte nel progetto del telecomando remoto.
Comunicazione infrarossi col condizionatore Daikin
La comunicazione ad infrarossi avviene semplicemente attraverso un led ad infrarossi uguali a quelli che trovate nei telecomandi del televisore. Nello schema si vede che è comandato da un transistor NPN il cui scopo è amplificare la corrente in nodo da emettere impulsi ad una maggiore distanza.
La comunicazione ad infrarossi avviene tramite impulsi che, incasellati in sequenze di 1 e 0, permettono di codificare dei byte (gruppi di 8 bit) e consentono la trasmissione di comandi al condizionatore.
Per emulare i comandi di un dispositivo costruito da altri, bisogna scoprire i comandi stessi e memorizzarli. Per farlo, in linea teorica basta costruire un ricevitore di infrarossi e col telecomando originale inviare i comandi che si vogliono copiare. In questo modo, inviando poi gli stessi comandi copiati (e memorizzati) tramite Arduino ad un led infrarossi si può inviare un ordine al condizionatore.
Il discorso precedente è teorico, in quanto spesso i costruttori di dispositivi ad infrarossi vogliono oscurare i messaggi e proteggere il proprio lavoro da usi non previsti. Il condizionatore Daikin, infatti, in qualche modo cripta i messaggi, forse usando l’ora e la data, perché lo stesso messaggio inviato più volte porta sempre ad un messaggio diverso. Ho quindi cercato online la soluzione trovando la libreria scritta per Arduino IDE che permette di codificare i messaggi per il Daikin. Quando una cosa esiste già, quasi sempre va bene quella ed è inutile perdere tempo a rifarla.
App per controllare il condizionatore
Ho quindi costruito una App che permette di inviare un comando tramite la rete Internet al condizionatore, la app è realizzata utilizzando Phonegap, un sistema (di Adobe) che permette di costruire delle app installabili sul proprio cellulare (e anche caricabili negli store) partendo da codice HTML, CSS e JS.
Connettività, Internet e la rete di casa
Quando si costruisce un dispositivo connesso ad Internet, che riceve comandi dall’esterno, bisogna configurare in modo opportuno il router di casa perché altrimenti non sarà raggiungibile dall’esterno. Il router è la porta di ingresso alla nostra rete.
Bisogna assegnare un indirizzo IP locale al nostro dispositivo (in modo che sia sempre lo stesso) e mappare tale indirizzo IP locale ad una porta. In questo modo quello che arriva sul router di casa ad una certa porta viene inoltrato al dispositivo desiderato.
Costruzione del case, stampante 3D
Un buon progetto non è concluso se non lo si salda su una basetta e se non lo si chiude in una scatoletta (rima!). Per questo ho disegnato una scatola con il software SketchUp, in 3D, lasciando gli opportuni fori per far entrare l’alimentazione della scheda, per far uscire il led ad infrarossi (che deve essere orientato verso il condizionatore a cui deve parlare) e una grossa finestra per lasciare che il sensore di temperatura riesca a leggere la temperatura della stanza correttamente.
Il file di progetto 3D della scatola è qui.