
Sono sempre più numerose le operazioni che possiamo far svolgere ad Arduino. Vediamo allora come fare per inviare messaggi su Twitter tramite Arduino in modo completamente automatico.
L'automazione è una gran bella cosa e poter eseguire in automatico, magari anche in nostra assenza, operazioni altrimenti monotone e tediose è un grosso vantaggio. Se poi possiamo realizzare il tutto a basso costo e divertendoci allora stiamo parlando di Arduino.
Ci servono:
- Arduino
- la libreria Twitter4J (necessaria per inviare in automatico messaggi su Twitter)
- ed un sensore per rilevare lo stato del fenomeno di nostro interesse, a voi la scelta. Di seguito usare un sensore magnetico, ma il tipo di sensore non cambia di molto la sostanza.
L'idea oggetto di questo articolo la di deve a pdxnat e tutti i dettagli sono disponibili al link indicato.
Ci proponiamo di realizzare un sistema per l'invio di messaggi su Twitter tramite Arduino in base ad input percepiti tramite sensore elettronico. Usiamo un sensore magnetico che funge sostanzialmente da interruttore che opportunamente posizionato su una porta consente di capire se la porta è aperta o chiusa. Si tratta ovviamente di un esempio di possibile applicazione, il vero obbiettivo non è far sapere al mondo quando la porta è aperta o chiusa ovviamente, bensì gestire il tutto tramite Arduino.
Lo schema a blocchi del sistema che vogliamo realizzare è mostrato nella figura sottostante.
Arduino accede alla rete tramite un computer anche se sarebbe stato possibile collegarsi direttamente a Twitter tramite Arduino usando la libreria Tweet Library Arduino (da cui è tratta l'immagine principale dell'articolo), ma è solo una variante sul tema.
L'idea di base è molto semplice. Colleghiamo il sensore ad un pin della scheda ed Arduino monitorerà lo stato di tale pin per capire in se la porta viene aperta o chiusa.
La parte principale del codice dovuta a pdxnat è ripostata di seguito:
int magReed_val = 0;
int currentDoorState = 1; // begin w/ circuit open
int previousDoorState = 1;
void setup(){
Serial.begin(9600);
pinMode(magReed_pin, INPUT);
}
void loop(){
watchTheDoor();
}
void watchTheDoor(){
magReed_val = digitalRead(magReed_pin);
if (magReed_val == LOW){ // open
currentDoorState = 1;
}
if (magReed_val == HIGH){ // closed
currentDoorState = 2;
}
compareStates(currentDoorState);
}
void compareStates(int i){
if (previousDoorState != i){
previousDoorState = i;
Serial.write(i);
delay(1000); //
}
}
Anche i meno esperti di programmazione possono vedere come il codice necessario sia di facile comprensione.
Scaricare ed installare la libreria Twitter4J (come già detto prima, si potrebbe fare tutto direttamente con Arduino usando la libreria Tweet Library (da cui è tratta l'immagine principale dell'arti) ma servirebbe anche il modulo di Arduino per il collegamento alla rete, quindi supponiamo di usare il computer). Eseguendo il relativo programma il codice di per Arduino riportato sopra sarà modificato di modo da includere le dovute linbrerie.
A questo punto non resta che registrarsi su Twitter e registrare anche un account per l'applicazione che abbiamo creato.
Lo schema del circuito, molto semplice ed intuito è mostrato sotto.
Sopra vediamo le due componenti del sensore magnetico tipicamente usate per monitorare l'apertura di una porta.
Soluzione molto interessante che si presta ad innumerevoli applicazioni. Per esempio una stazione metereologica su Twitter potrebbe essere fatta in questo modo, con le dovute modifiche al codice è l'aggiunta dei sensori necessari, ma questo è solo uno dei tanti esempi che potrebbero venire in mente.
Arduino è disponibile da Farnell


mmm..però dovremmo essere sicuri al 100000 per cento che l’allarme generato sia davvero un vero sisma… come possiamo provarlo..?
non so quando dovrebbe essere meno sensibile la scala…è un idea interessante quanto azzardata..bisognerebbe fare dei test come dicevo.. magari in giappone.. o vicino la faglia di san andreas 🙂
interessante! si potrebbe monitorare l’ energia immessa in rete da un impianto fotovoltaico, e far apparire giornalmente i dati su twitter.. in questo modo si potrebbe realizzare un sistema amatoriale, ma funzionale, per tenere sotto controllo il proprio impianto quando si è lontani da casa.
l’ implementazione non dovrebbe nemmeno essere difficile, in quanto arduino già è dotato di un ADC interno.. basterebbe aggiungere un trasformatore di corrente, e buttare giù qualche riga di codice per svolgere i vari conti.
Mi domando se puo’ avere un impiego pratico e sufficentemente affidabile, implementare una rete geografica per la rilevazione di eventi sismici, integrando come sensore un accelerometro a 3 assi e magari qualche altro sensore ambientale (ad esempio sonoro e barometrico) cosi’ da poter in qualche modo correlare tutte queste informazioni.
Quando tutti i sensori in una ben determinata zona segnalano una considerevole variazione, e tutta nello stesso verso, attivano un alert su twitter.
Tempo fa ho fatto qualche sperimentazione con un LIS302DL, in tecnologia MEMS, lo stesso sensore prodotto dalla STMicroelectronics e utilizzato sul primo modello di Iphone e sui telecomandi della WII.
Questo chip ha due scale, una a ±2g e l’altra ±8g. Impostando la scala meno sensibile probabilmente si potrebbe essere al riparo da falsi positivi
Molto interessante come cosa, manca solo la parte del codice per inviare i dati a Twitter, perché quel sorgente che hai messo comunica solo con il Serial Monitor se la porta è chiusa o aperta ma non con Twitter.
Comunque si potrebbe fare un po’ di tutto con questo giocattolino, ad esempio io avevo scritto un sorgente che senza comprare una shield ethernet mi consentiva di mandare online i miei dati rilevati dai sensori attaccati ad Arduino.
Quello che avevo fatto io, era di caricare lo Standard Firmata all’interno di Arduino e infine avevo scritto un software in C in modo che comunicasse con Arduino tramite la porta COM e dopo il software si prendeva questi dati li analizzava e li inviava in rete dove volevo, questo è solo uno dei tanti sistemi che ti consentono di fare questo senza spendere tanti soldi per comprare una shield ethernet.
Se posso consigliare, per quanto riguarda lo schema elettrico esiste un bel programmino che si chiama Fritzing reperibile qui:
http://fritzing.org/
è gratuito e ti consente di disegnare in modo adeguato, ed è progettato per Arduino.
La certezza sui terremoti non ce la puo’ dare nessuno, ma parlavo di questa ipotesi applicata ad Arduino (e perche’ no anche su board Microchip con ethernet), non direi del tutto azzardata perche’ gia’ da alcuni anni esistono network mondiali di Eartquake detector basati sugli accelerometri a bordo dei notebook e macbook che di norma servono a proteggere le testine dei dischi in caso di caduta accidentale.
Se grossi enti o universita’ come il San Diego Supercomputer Center hanno pensato di sfruttare anche questi dati, evidentemente ci sara’ un fondamento tecnico scientifico.
E’ chiaro che maggiore e’ la probabilita’ che il dato sia affidabile quante piu’ unita’ connesse rilevino in una zona concentrata e piu’ o meno allo stesso istante, una forte variazione ed in una determinata direzione (per essere piu’ precisi se ad esempio il terremoto fosse di tipo sussultorio le unita’ dovrebbero registrare tutte la variazione dell’accelerazione lungo il medesimo asse Z ma con valori di accelerazione alternativamente di segno positivo e negativo.
Allego qualche link interessante:
http://www.livescience.com/8133-ordinary-laptops-act-earthquake-detectors.html
http://www.labspaces.net/view_news_comments.php?newsID=4308
La soluzione di Quake-catcher mi sembra piu’ affidabile,
viene fornito un software scaricabile se si vuole collaborare, la rete prevede che venga collegato via USB anche un accelerometro ( kit fornito) e che venga fissato saldamente al terreno e correttamente orientato.
The Quake-Catcher software program:
http://qcn.stanford.edu
La mappa delle installazioni attuali e’ piuttosto cospicua e l’ultimo terremoto in Virginia del 23 agosto e’ stato rilevato anche con questo sistema.
http://qcn.stanford.edu/sensor/maptrig.php?cx=38&cy=-120&timeint=W
Ecco l’anteprima di un articolo in pubblicazione per Venerdi prossimo
La previsione dei terremoti è un argomento particolarmente sentito negli ultimi anni, soprattutto dopo la catena di eventi sismici che hanno scosso diverse aree della Terra a partire dalla tragedia dell’Indonesia del 26 dicembre 2004. Prevenire i terremoti è possibile? La scienza ufficiale afferma categoricamente di no, mentre studi indipendenti (alcuni dei quali potenzialmente validi) sostengono il contrario. Una delle soluzioni all’orizzonte potrebbero essere i MEMS (Micro Electro Mechanical System), gli accelerometri elettromeccanici ad alte temperature.
Stay tuned 🙂
Io mi stavo proccupando solo dell’aspetto tecnico scientifico della cosa, fattibilita’ del sistema.
Concordo con te che non si puo’ certo fare allarmismo gratuito, non solo per Napoli ma in tutta Italia.
Per come siamo abituati, anche con una previsione meteorologica sballata e pubblicata su twitter rischieremmo di creare caos nella popolazione e scatenare le ire di albergatori e operatori del turismo in genere…
Forse in paesi piu’ maturi del nostro allarmi, o per meglio dire, segnalazioni di questo genere sarebbero presi in considerazione con maggiore razionalita’ e sangue freddo.
L’argomento terremoti e la loro rilevazione mi ha sempre affascinato. Chissa’ se si fara’ cenno a soluzioni MEMS applicata ai sensori P-Wave (rilevano appunto l’onda di compressione primaria che si forma all’inizio di un terremoto e che ne precede di qualche minuto l’onda talvolta distruttiva S-Wave).
OOPS, non vorrei andare troppo oltre, come dici, saremo sintonizzati!
Il problema fondamentale di questo sistema è quanta gente in realtà prenderà sul serio queste informazioni di un terremoto, visto che di solito leggo tutti giorni una quantità di bufale su twitter.
È di solito visto che abito in una zona sismica mi rendo conto subito di un terremoto,
In questi casi riflesso di accedere alla televisione per vedere se è grave la situazione.
Un bel progetto, ma un po’ deluso dalla foto messa in anteprima pensavo che fosse completamente diverso e che finalmente era possibile attraverso una scheda di espansione di rete collegato a Arduino inviare messaggi su Twitteer, senza vera necessità di tenere un computer sempre acceso.
quest’articolo dai che interessante è già stato proposto nel passato
http://it.emcelettronica.com/twitter-toilet-la-vostra-toilet-su-twitter-con-arduino
Ma si sa con Arduino è sempre bello rileggere i progetti del passato o semplicemente piccole migliorie che rendono sempre interessante questo progetto
sai com’ è essendo napoletano mi sono immaginato cosa accadrebbe nella mia città se ..trovassero postato su face book una comunicazione tipo:
“….Rilevata possibile attività sismica nei pressi di Napoli…al xx% succederà qualcosa entro le ore hh:mm del gg/mm/aaaa ”
Secondo me comincia il pandemonio…. scusami ma nn vedo come dare questa segnalazione senza creare un macello di pazzi..il che va sicuramente va oltre al fatto di darla…quello va sicuramente fatto..la mia preoccupazione è per..cosa succederà dopo?!?!
Interessante questo fritzing, grazie
Beh per un applicazione come un astrazione meteorologica, si potrebbe adoperare benissimo, insomma si tratta di postare comunque dei messaggi sul famosissimo Social Network che tutti usano, ma non lo userei di certo per monitorare, lo stato dei sensori sparsi per casa, rischiando che qualcuno veda ciò che non voglio vedano, o magari criptarli in un modo particolare, per poi decriptarli con un software personalmente creato, ma credo che perderebbe di utilità.