Apriti Sesamo con Android, Tasker, EeePC, DLP-IOR4 e un telecomando apricancelli cinese

Ultimamente, sono arrivato ad avere, contemporaneamente:

  1. Chiave dell’auto
  2. Chiave del cancello esterno
  3. Chiave della porta condominiale
  4. Chiave della porta di casa
  5. Chiave del garage
  6. Chiave dell’antifurto della bici
  7. Telecomando del cancello
  8. Chiavetta badge dell’ufficio
  9. Chiavetta per le macchinette del caffè
  10. Chiave RSA per il conto online
  11. Chiave elettronica per l’antifurto di casa

Di queste, quelle che odio di più, sono quelle che desiderano ardentemente diventare dei fichissimi portachiavi: sono inutilmente grosse, pensando erroneamente di farti un gran favore ad assumere quel ruolo di capo mazzo di chiavi. Ho la tasca che pesa 2kg.

Oggi festeggio: ne ho segata via una. Il telecomando del cancello (anche lui, ovviamente un portachiavi). Vediamo come.

Grazie ad un suggerimento di Marco D’Itri in un thread su Friendfeed ho acquistato un DLP-IOR4. Trattasi di una interfaccia USB che controlla 4 uscite su relè, controllabile semplicemente inviando un byte sulla seriale emulata.



Ho collegato il DLP ad un vecchissimo EeePC 700, con su una distribuzione Debian fatta per EeePC, collegato perennemente alla adsl di casa già da qualche anno e ora delicatamente buttato per terra dietro alla TV.

 

Su di lui gira Apache e degli script PHP che scrivono sulla seriale /dev/ttyUSB0 gli opportuni comandi per accendere/spegnere i 4 relè.

Ho comprato su Ebay uno di quei telecomandi autoapprendenti da pochi euro, come questo, e l’ho aperto svitando le 3 viti in burro per poterci saldare due fili su uno dei quattro microswitch (operazione delicatissima su elementi spessi meno di un millimetro).

Dopodichè ho richiuso in modo che l’involucro blocchi i cavi che potrebbero essere facilmente strappati via.

Bene, una volta collegati  i due cavi ad uno dei 4 relè, la parte hardware è terminata.

L’obiettivo è fare in modo che una richiesta HTTP ad un certo url a cui risponde l’EeePC accenda per qualche secondo il relè che, attivando il telecomando, farà aprire il cancello.

Ok ok, ma… questo significa che dovrò usare il browser del telefono (un HTC Desire Z) ogni volta che dovrò aprire il cancello. E’ scomodo.

E’ in questo che viene in aiuto una meravigliosa applicazione Android: Tasker!

Tasker è un gestore di eventi, contesti e proprietà di quasi tutti gli aspetti di un terminale Android. Si può attivare qualsiasi funzione in base al verificarsi di qualsiasi evento. E’ graficamente brutto, il sito ufficiale è fatto malissimo ma chissenefrega: è un software del tipo set-and-forget e mai-più-senza.

Io lo uso per attivare la sincronizzazione solo quando è in wifi, è alimentato e non è notte, per spegnere il wifi quando non sono nè a casa nè in ufficio, per attivarmi il gps solo quando certi programmi si avviano, per controllare applicazioni esterne (come SMS Backup) e per mostrarmi un menù di cose da fare quando inserisco il jack cuffie.

In questo caso l’ho programmato per:

  1. Rilevare la connessione alla mia rete wifi
  2. Annunciare la connessione in corso
  3. Effettuare una richiesta HTTP con gli opportuni parametri
  4. Annunciare l’esito positivo o negativo

 

Il risultato è che quando mi avvicino a casa, Tasker accende il wifi in automatico rilevando la cella GSM, il cellulare si collega alla mia rete wifi, Tasker fa una connessione HTTP, l’EeePC scrive sulla seriale, il DLP accende un relè, il telecomando si attiva, e il cancello elettrico si apre 🙂

Ecco il tutto in un video (dove attivo il wifi manualmente per testare). Se aguzzate le orecchie sentite il rumore del relè e notate la lucina blu sul telecomando:

TODO:

  1. Rilevare il fatto che sono effettivamente stato fuori casa tramite variabili da impostare in Tasker (ora si attiva anche se semplicemente riavvio o riconnetto il cellulare)
  2. Fargli riprovare un tot di volte, in caso di errori
  3. Cambiare la frase in “apriti sesamo”, mi sembra giusto…

 

Ah, una delle tante cose fighe di Tasker è il fatto che si possa mettere un pulsante come widget che esegua direttamente un task: ora ho, sul cellulare, il pulsante apricancello 🙂

 

Domande e insulti nei commenti, se volete.