Interagire con Twitter utilizzando la libreria TwitterLibrary, Arduino ed ethernet shield

Nonostante le grandi potenzialità della scheda Arduino ci sono applicazioni in cui ci si rende conto di alcuni limiti, fortunatamente possono essere superati elegantemente utilizzando hardware aggiuntivo, o, nel nostro caso, software aggiuntivo che gira sul web. L’applicazione web fa da ponte tra Arduino e Twitter, permette di interpretare semplici dati inviati dalla scheda per poi interfacciarsi con il nostro account Twitter.

Tweeter App

Twitter è un social network che sta avendo, anche nel nostro paese, un ottimo successo e, vista la sua semplicità e velocità,  risulta interessante per realizzare applicazioni per tenere aggiornati i nostri contatti su attività e acquisizioni della scheda Arduino.

Esistono diverse librerie che svolgono questo compito, nel mio caso ho usato quella sviluppata da NeoCat, prelevabile seguendo il link di download nella pagina del playground.
Dopo aver scaricato il pacchetto bisogna scompattarlo nella cartella libraries di Arduino.
Il passo successivo è quello di richiedere un key-token che autorizzerà il nostro sketch ad interagire con l’applicazione remota e con il nostro account Twitter; semplicemente bisogna cliccare sul link  Get a token to post a message using OAuth presente sul sito arduino-tweet.appspot.com.

Tweeter library

Verremo reindirizzati su Twitter.com per autorizzazione l’applicazione ad eseguire alcuni compiti come appunto la pubblicazione di tweet.
Cliccando sul pulsante Autorizza app otterremmo il Key token da inserire nello sketch.

Get Key Token

Il codice che segue è un esempio pratico di quanto esposto

[c]
#include <SPI.h>
#include <Ethernet.h>
#include <Twitter.h>

//Imposto mac address
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

//Setto indirizzo ip della ethernet
byte ip[] = { 192, 168, 1, 177 };

//Inserisci il tuo token key (http://arduino-tweet.appspot.com/)
Twitter twitter("INSERISCI-TOKEN-KEY");

//corpo del tweet
char msg[] = "Ciao Twitter, sono Arduino!";

void setup()
{
//int Ethernet shield
Ethernet.begin(mac, ip);
delay(500);
//Init Seriale
Serial.begin(9600);

Serial.println("Connessione in corso…");

//scrivi il post su twitter
if (twitter.post(msg))
{
//se la connessione è stata stabilita ottieni
//il codice di stato
int status = twitter.wait();

if (status == 200)
{
Serial.println("OK.");
}
else
{
Serial.print("Codice di errore: ");
Serial.println(status);
}
}
else
{
Serial.println("Connessione fallita");
}
}

void loop()
{
//fai qualcosa…
delay(100);
}
[/c]

Se non ci sono intoppi, dopo aver caricato lo sketch, potremmo osservare sulla nostra pagina Twitter che il post è stato correttamente gestito.

Vista la possibilità di gestire anche dei GSM shield possiamo loggare su twitter, da postazioni remote, valori di sensorio lo stato di eventuali attuatori.

E’ veramente sorprendente accorgersi delle infinite possibilità di questa piccola scheda, con poco sforzo e con una spesa minima si possono davvero realizzare progetti divertenti e utili.