I always wanted to use IFTTT with the Electric Imp, but, sadly, there is not an Electric Imp or a generic webservice channel on IFTTT. So I decided to use the GTalk channel, since I thought that it was the fastest and more secure way to get near real time messages from IFTTT.
The process is simple: I’ve made a simple Node.js application, that gets the GTalk message from IFTTT and converts it into an HTTP call to the Electric Imp webservices.
The Node.js application - called IFWTW (If Whatever Than Whatever) - is on my github and can be forked freely. It’s designed to be deployed on the Heroku platform, so you can have it hosted for free. Since Heroku puts the free webapps in a sleep state after a while they’ve not been called, I provided a very simple web page for the application, and I used the Electric Imp’s planner Variable Tick Tock and HTTP Call features to call it every 10 minutes.
You can freely fork the source code, configure it, make it run locally and eventually deploy it on heroku in less than 10 minutes.
Sadly, I discovered that the IFTTT GTalk support is very poor, and it’s very far from being real time. So the application can be reconfigured to check your email and use the email channel instead. I hope that IFTTT will have a better support for GTalk in the future.
Last thing. Since my application listens for an XMPP message, and it works pretty well, you can use it to communicate with your Electric Imp via Jabber/GTalk, even if you don’t use IFTTT
I hope you will have fun with this little project, and that it will help to expand the already near infinite possibilities of use that the Electric Imp provides.
I’m sorry for the short message and zero examples provided, but I think that things like using the Imp with webservice are already deeply discussed. Feel free to make any question, I will be happy to answer if I can!
If IFTTT will never support the Electric Imp, maybe this code can be the base for a service for everyone, I can just add a database and a Google OAuth process to make it multiuser.
Cheers!
Stefano
Mesi fa, un mio amico designer mi chiese se fosse possibile fare una lampada che si accendesse alla ricezione di una email, di un messaggio twitter o facebook. Ovviamente, dopo anni di esperienza con Arduino, ho risposto con un entusiastico “Si, certamente!” e mi sono subito messo a lavorare. Ne ho realizzate svariate versioni. La prima, con Arduino, collegato via USB al computer, e mi sono subito reso conto che non era pratico dover tenere connesso un computer ad una lampada. Allora ne ho realizzata un’altra, con Arduino ed uno shield ethernet, ma ormai nessuno ha una casa cablata con l’ethernet, e costringere il mio amico a comprare un access point mi sembrava esagerato. Ho provato con uno shield WiFi, ma era comunque costoso, e soprattutto avrei dovuto configurare Arduino con i dati della sua rete in modo permanente, visto che era privo di un’interfaccia (vedi monitor e tastiera) per permettergli di configurare la rete.
Allora, non ancora scoraggiato, sono passato al Raspberry Pi: ne avevo comprato uno e non vedevo l’ora di usarlo. Il RaspberryPi con un dongle WiFi USB (comunque non semplice da configurare) sembrava una buona soluzione, anche se decisamente overkill, visto che di tutte le strepitose features del Raspberry avevo usato solo il GPIO. Come se non bastasse, ho dovuto anche creare dei web services per leggere la casella di posta del mio amico, e creare una connessione basata su socket per inoltrare gli eventi al RaspberryPi (avevo usato pusher.com, figata). Ho spedito tutto in un pacco al mio amico, che non è per niente uno scemo, e abbiamo passato quasi una giornata al telefono per configurarlo e farlo funzionare correttamente. Da tecnico quale sono, mi rendo conto di dare per scontate molte, troppe cose, e che questo genere di dispositivi è ancora veramente lontano dall’utente finale. Ad ogni modo, una bella proof of concept ma decisamente scomoda come soluzione, e poco replicabile. Non mi piacciono le cose non facilmente replicabili.
Insomma, nell’era dell’Internet delle cose, ho capito che era troppo difficile collegare le cose ad internet. Fin quando non mi sono imbattuto, quasi per caso, nella chiave di (s)volta di questo mondo. Electric Imp.
Del resto, ogni problema ha la sua soluzione.
Electric Imp è un piccolo dispositivo specificamente progettato per connettere ad Internet dei dispositivi elettronici, analogici o digitali, altrimenti non connessi.

Nato dalle menti geniali di Hugo Fiennes, ex iPhone engineering manager, Kevin Fox, ex Gmail Designer e Peter Hartley, mago del firmware, (insomma, non proprio dei pivelli), Electric Imp ha la forma di una SDCard (attenzione, è solo una scelta di design, anche se è identico, non è una SDCard!) che si inserisce in una piccola breakout board che presenta 6 porte di I/O completamente configurabili, una porta mini usb per l’alimentazione, e dei pin per connetterlo ad un alimentatore o ad una batteria.
Ma l’hardware è solo la metà di Electric Imp. L’altra metà è una interfaccia web che consente di programmarlo (si, si programma dal web, non va connesso fisicamente al computer) e un robusto strato di webservices che risolve ogni problema di comunicazione tra l’Electric Imp ed Internet.
Il modo in cui si configurano i parametri di rete dell’Electric Imp è tanto semplice quanto geniale, una di quelle cose che ti fa sentire scemo perché non ci hai mai pensato prima. I brillanti ingengeri alle spalle di questa soluzione hanno sviluppato un’applicazione per iPhone/Android che comunica i parametri di configurazione della rete WiFi all’Imp tramite segnali luminosi: si inseriscono nell’app i parametri della propria rete, e il telefono inizia a lampeggiare furiosamente. Se lo accostiamo ai nostri occhi, forse diventiamo epilettici, invece se lo accostiamo all’Electric Imp, che è dotato di un sensore ottico, gli trasmettiamo (sparaflesciamo?) la configurazione di rete. L’imp inizia a lampeggiare con un rassicurante color verde, e ci comunica che è configurato e visibile su internet. Figata.
Questo vuol dire che appena si riceve l’Electric Imp (per ora acquistabile solo da SparkFun e Adafruit) si accende, si configura, ed è subito visibile online.
Questo vuole anche dire che se noi sviluppiamo una soluzione basata su Electric Imp e la diamo ad un amico, o, meglio ancora la vendiamo, chiunque sia in grado di usare uno smartphone è in grado di configurarlo. Yuppi.
Ora scendiamo un po’ più sul tecnico.
Ho già scritto che l’Electric Imp si presenta come una SD Card. Questa scelta è stata fatta per riusare, anche se in modo diverso, tutti i socket SD già presenti sul mercato, del resto, se esiste una cosa fatta, perché reinventarla? Inoltre sotto forma di SD card, l’Imp ha un aspetto più familiare ed amichevole per tutti i non tecnici. Il microprocessore su cui è basato l’Electric Imp è un Cortex M3, un sacco di potenza di calcolo in così poco spazio! L’Imp ha 128 kB di RAM, di cui 40Kb sono disponibili per il codice. Supporta reti WiFi 802.11 B/G/N, e consuma veramente poco: sebbene raggiunga picchi di 450mA il cosnumo medio è di 100mA e in standby consuma ~6uA. Viene alimentato a 3.3V, anche se funziona bene tra ~2.5V e 3.6V, che tradotto vuol dire che si possono realizzare progetti che possono andare avanti per anni con un paio di pile AA ricaricabili (evitare le alcaline, la loro resistenza interna non va d’accordo con i picchi di consumo) e con tutti i trasformatori USB. Il dispositivo ha un chip di crittografia Atmel e ha un ID univoco a 72bit.
Sono disponibili due diverse breakout board: Hannah e April. Hannah ha un port expander I2C per aumentare il numero di pin a disposizione, un LED RGB, un accelerometro su tre assi, un potenziometro, due pulsanti, un sensore di temperatura, un sensore di campo e due output per servomotori, oltre che a 5 GPIO e bus I2C. Insomma è una board creata per giocherellare un po’con il codice, prendere dimestichezza e avere un feedback immediato. April è invece la scelta che ho fatto io: una board minuscola, minimale, con i pin per l’alimentazione e 6 pin di I/O completamente configurabili. Infatti i pin possono essere configurati come ingressi o uscite analogici o digitali, seriale, I2C. Quando configurati come output digitali possono essere configurati come open drain, con o senza resistenza pullup, tutto via software… un sogno!
Veniamo invece al software. Electric Imp si programma tramite una GUI Web based. Il linguaggio scelto è lo Squirrel, che è un linguaggio di alto livello imperativo e ad oggetti basato sul C. Questo vuol dire che non abbiamo bisogno di un editor (anche se io passo sempre per Sublime configurato come editor C), o di un repository esterno del codice, perché i nostri firmware vengono salvati sul nostro account su www.electricimp.com
Un altro strumento messo a disposizione su www.electricimp.com è il planner, uno strumento interamente visuale per configurare il nostro imp, e connetterlo a webservices, a COSM, ad altri imp ed altro ancora.

In conclusione: l’Electric Imp è la base perfetta per tutte quelle realizzazioni dove la connessione ad Internet è centrale. Se dovessi fare una soluzione stand alone ed offline, userei Arduino, stessa cosa se dovessi fare periferiche USB (in quel caso userei Arduino Leonardo), se dovessi fare cose multimediali invece userei il RaspberryPi.
Insomma, Electric Imp ha risolto il mio problema, ovvero quello di fare una lampada, e mi ha fatto venire in mente un sacco di altre idee, alcune delle quali realizzate mentre le atre sono ancora in cantiere, ma soprattutto mi ha messo una gran voglia di fare! Quindi restate sintonizzati sul nostro blog perché a breve vi illustrerò le mie realizzazioni!
A presto!
Jeko
Grazie per avermi fatto passare tanti meravigliosi momenti, io e mia sorella chiusi in casa, pomeriggi interi a ridere e a sognare mondi meravigliosi. Grazie davvero.
Tutte le intro della LucasArts dal 1986 al 2009.
Labyrinth (1986)
Maniac mansion (1987)
Zak McKracken and the Alien Mindbenders (1988)
Indiana Jones and the last crusade (1989)
Loom (1990)
The secret of Monkey Island (1990)
Monkey Island 2: Le Chuck’s Revenge (1991)
Indiana Jones and the Fate of Atlantis (1992)
Day of the Tentacle (1993)
Sam & Max Hit the Road (1993)
Full Throttle (1995)
The Dig (1995)
The Curse of Monkey Island
Grim Fandango (1998)
Escape from Monkey Island (2000)
Tales of Monkey Island (2009)
What an amazing weekend we had!
The last days had been hard to get through despite meticulous preparation, yet the event turned out a success. Organizers and coaches were overcome by the energy and sheer enthusiasm of girls of all ages and from all experiences that had chosen to delve into…
Finalmente! Era un sacco di tempo che avevo bisogno di una abat-jour e di un posto dove mettere il cellulare vicino al letto. L’idea mi è venuta quando sono adato dai cinesi sopra il Billa. Hanno tutto. Ma proprio tutto! Dal fermacapelli all’erpice agli organi umani e forse hanno anche il calippo frizzante che non si trova più da nessuna parte. Ad ogni modo ho comprato questo kit doccia a 9.90 (nobenobanta). Pensavo di mettere i led nei forellini della doccia, poi ho fatto un paio di esperimenti e sembrava di avere un disco volante in stanza, decisamente non adatta a leggere. Per leggere di notte ci vuole un fascio di luce concentrato, per evitare di illuminare il mondo a giorno. Ho quindi deciso di sfruttare la manodopera svedese, e ho usato la lampada di IKEA JANSJÖ che è perfetta: ha un led con un bel colore bianco caldo (senza l’effetto azzurro tron che hanno i led di natale a Roma), una lente che concentra il fascio alla perfezione, l’alimentatore e un filo bello lungo. In un paio di ore di lavoro che vi risparmio ho innestato la lampada nella doccia e questo è il risultato! Il portasapone ha il buco per il filo e per l’iPhone è perfetto! :D


