Ciao a tutti,
mi piacerebbe sapere se qualcuno di voi ha mai integrato (oppure sa come fare) Arduino con le API di Facebook per realizzare applicazioni interattive che utilizzino i dati provenienti da Facebook.
Ho visto alcuni post in inglese in cui pare che qualcuno ci sia riuscito. Non essendo esperto non mi rendo conto se è una cosa per me fattibile.
ciao,
ho avuto esperienza diretta lavorando con le api di twitter. guardando le api di facebook, la questione non si discosta di molto.
Le soluzioni che ti si prospettano davanti possono essere divise in 2 grandi categorie: la soluzione standalone e la situazione linked-to-pc
Nel primo caso vai a progettare un sistema completamente indipendente che si collega direttamente a facebook. Per farlo ti "basta" avere un arduino e un modulo che ne estenda la connettività e supporti il protoccolo tcp/ip (quindi allo stato attuale le shield ethernet, o qualche modulo wireless che usi pero' un draft compatibile con il router wifi di casa tua (quindi non vanno bene gli zeebee che implementano il draft 802 e non 801))
Con questo sistema ottieni un device (l'arduino+shield) per l'appunto che ha la facolta di connettersi direttamente su internet, mettersi in ascolto delle varie notifiche e interagire con le api di facebook.
Va detto che tutta la mole di lavoro va fatta o tramite un webserver intermedio tuo (che processa le api di facebook e le rende disponibili ad un sistema più primitivo come arduino) oppure dovrai smanettare non poco per scrivere in C una bella porzione di codice che si metta a sfruttare le api in modo opportuno. Considera che le API in generale producono dati in formato XML, quindi dovrai implementare una sorta di pharser, e poi andare a processare i dati cosi' ottenuti.
Il livello di difficoltà è medio. Il limite numero 1 è la scrittura del codice, e lo spazio disponibile in memoria per farlo (considerando che un po' verrà mangiato dalla libreria per la gestione del modulo ethernet).
Il vantaggio è che potrai ottenere un piccolo device hardware che funziuona ovunque semplicemente attacandolo ad una rete. senza dover far altro
La seconda soluzione è un sistema pc-based, ovvero hai bisogno di un pc sempre acceso al quale attaccare il tuo bel arduino, e farlo comunicare serialmente tramite il cavo usb. Nel pc monti quello che si chiama un proxy, che "volgarmente" permette di processare dei dati da un protocollo all'altro, nel nostro caso da tcp/ip a seriale.
A fare il lavoro sporco puo' esserci un qualsiasi programma in grado di aprire un soket su questo proxy: vedila cosi, il proxy è un tunnel verso arduino, un qualsiasi altro programma puo' collegarsi a questo tunnel tramite un socket e iniziare a inviare dati.
Per qualsiasi altro programma, si intende un programma che processi le chiamate a facebook e le renda papabili per arduino. Di librerie per arduino ce ne sono molte, a primo impatto ti consiglio di usare FLASH+as3, ma qui personalmente sono molto di parte
Ricapitolando in questo secondo caso ti serve: un arduino, un cavo usb, un software server-proxy (quello di tinker.it va + che bene), un programma scritto da te che processa le api e che giri su facebook.
il vantaggio è che lo sviluppo è molto + rapido (dovendo tu scrivere un codice ad un livello leggermente più alto, e facendo fare il lavoro sporco alle librerie flash-arduino già esistenti), lo svantaggio è che il pc deve sempre rimanere acceso, con 2 programmi che ci girano sopra.
Wow, grazie per la risposta esauriente. Spero che serva anche ad altri che come me non se ne intendono molto.
Tu hai dovuto scrivere la libreria per poter utilizzare le API di twitter?
Facebook ha delle librerie scritte in Java, è possibile utilizzarle senza modifiche? o bisogna "convertirle"?
per twitter è stato abbastanza facile esistevano già molti esempi in giro, e sono riuscito a cavarmela benone con ActionScript 3.
Per facebook avevo dato un'occhiata per un applicativo in flash, e anche in quel caso non mi sembrava troppo ostica la cosa.
Se le librerie sono già in java, potresti pensare di creare, sempre in java un unico programma che fa da socket e che si preoccupi di sfruttare le api di facebook. ti avviso pero, se sei "vergine" di java non sarà la cosa + semplice di questo mondo
Io avevo fatto una lampada...facebook lamp (cerca in google) che prendeva i dati da facebook e si accendeva, la configurazione del sistema non era stand alone, c'èra un PC con un sw , fatto in LabVIEW, che prendeva i dati dalla rete e poi pilotava arduino, non ho usato le api di FB ma semplicemente scaricavo i feed RSS (che sono dei file XML9 e li parsavo con labview, non è difficile da fare