Twittbeat

Home » Objets connectés » Twittbeat
Objets connectés Pas de commentaire

Quoi ?

Le projet twittbeat à pour but principal de rendre tangible l’activité d’un Htag twitter. Le dispositif agit comme un sismographe, si un tweet contenant le Htag choisi est publié sur twitter le twittbeat inscrit sur son rouleau de papier un pique d’activité.
Le twitt beat est un dispositif assez simple composé de deux éléments clés. Une partie hardware fonctionnant sous arduino et une partie logicielle connectée sous python.
Nul besoin donc d’un shield Ethernet pour connecter vos objets à internet! Le script python qui tourne sur un ordinateur interroge constament twitter sur la présence du Htag choisi. Si il est publié le script envoie sur le port série sur lequel votre arduino Uno est branché une chaine de caractère. A partir de là c’est à arduino de jouer. Votre carte arduino Uno interroge en permanence le port série (en fait le port usb sur lequel elle est branchée) pour savoir si une chaine de caractère y est inscrite. Lorsqu’elle rencontre la chaine de caractère attendue elle exécute l’action que vous aurez définit dans l’IDE arduino.

Sur ce principe libre à vous d’imaginer l’incarnation de la donnée qui vous plaira!

Comment ?

Liste du matériel

Cadre en bois

Servo moteur

arduino Uno

un PC connecté à internet

Un compas (ce qui nous intéresse étant la partie porte crayon)

Du bois ou plastique (pour faire un bras au servo moteur sur lequel nous fixerons le porte crayon du compas)

Code

ETAPE N°1 : Installation logicielle

Installer Python 2.x (stable et compatible linux, macOS ou Windows)

Comme décris plus haut python est le langage informatique utilisé pour faire communiquer le twittbeat avec internet via votre ordinateur.

Linux : ligne de commande suivante dans le terminal : sudo apt-get install python
Windows et macOS : télécharger et exécuter les .exe (windows) et .dmg (macOS) disponibles sur cette page : http://www.python.org/download/

Installer Arduino IDE

L’incontournable environnement de développement qui vous permettra de programmer votre arduino UNO

Linux : ligne de commande suivante dans le terminal : sudo apt-get install arduino
Windows et macOS : télécharger et exécuter les .exe (windows) et .dmg (macOS) disponibles sur cette page : http://arduino.cc/en/Main/Software se renseigner sur l’installation matérielle à cette adresse : http://arduino.cc/en/Guide/HomePage

Installer python-setuptools

Comme son nom l’indique setuptools vous aidera à paramêtrer python.

Linux : ligne de commande dans le terminal : sudo apt-get install python-setuptools
Windows et macOS : guide d’installation en ligne à cette adresse https://pypi.python.org/pypi/setuptools

Installer la bibliothèque tweepy dans python

Le cerveau du projet ! Tweepy est une librairie qui permet à python de communiquer avec twitter.

Linux : Sudo easy_install tweepy
Windows et macOS : bibliothèque téléchargeable à cette adresse : https://pypi.python.org/pypi/tweepy/ Guide pour installer des librairies dans Python: http://docs.python.org/2/install/

 

Installer le plugin pyserial

Nous allons maintenant installer le logiciel qui permettra à votre ordinateur de communiquer à votre Twittbeat la donnée récupérée sur twitter !

Linux : Sudo easy_install pyserial
Windows et macOS : http://pyserial.sourceforge.net/pyserial.html#installation

Etape N°2: Twitter

Pour pouvoir communiquer avec twitter il faut montrer patte blanche. Pour ce faire twitter à prévu un dispositif appelé API. Ce dispositif est une sorte de porte d’entrée et sortie géante devant laquelle un sphynx vous poserait une question à laquelle il faudra répondre de manière précise et dans son langage. C’est ce que permet l’API.

Il faut donc :

– Ouvrir un compte sur http://www.twitter.com
– Se connecter à l’espace développeurs de twitter à cette adresse https://dev.twitter.com
– Créer une application qui va communiquer avec le script python.

Application twitter : Il s’agit en fait d’un dispositif personnel à chaque développeur (oui maintenant vous êtes un développeur twitter yeah!). Ce dispositif vise à authentifier la connexion de votre twittbeat.

Quatres clefs (chaînes de caractère) sont nécessaires au bon fonctionnement de notre application : le consumer key, le consumer secret, l’access token et l’access secret. Tous sont paramétrables dans l’onglet « details » de votre page d’administration de votre application (https://dev.twitter.com/apps).

Etape N°3: Python

Le but de ce script est de lire tout twitter et d’en extraire un H tag de votre choix. Une fois extrait le script écriras sur le port série (en fait le port usb sur lequel est branché votre arduino UNO) une chaine de caractères qui sera identifié par la carte arduino comme un ordre pour faire bouger le servo moteur.

________SCRIPT PYTHON______________________________________________________

“” On importe les outils qui vont servir dans le code
“”
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import serial

 

#On change “/dev/tty.usbmodemfd131” par notre propre porte série (onglet outils/port série dans arduino IDE)
ser = serial.Serial(‘/dev/tty.usbmodemfd131’, 9600)

#On copie nos clefs de sécurité (situées sur la page de votre application twitter)

consumer_key= » clé ici (conserver les guillemets)  »
consumer_secret= » clé ici (conserver les guillemets)  »
access_token= » clé ici (conserver les guillemets)  »
access_token_secret= » clé ici (conserver les guillemets)  »

class StdOutListener(StreamListener):
«  » » un StdOutListener est une fonction python qui à pour but de lancer la recherche permanente d’un élément dans un flux donné (ici ce sera le flux twitter)

«  » »
def on_data(self, data):
print data

#Ecrit un bit sur le port série à chaque fois qu’un nouveau tweet contenant le H tag choisis est publié
ser.write(‘0’)

return True

def on_error(self, status):
print status

#Attention cette partie du code fait fonctionner ensemble les éléments définis plus haut, modifiez simplement le H tag!

if __name__ == ‘__main__’:

l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

stream = Stream(auth, l)
stream.filter(track=[‘#H tag à changer (conserver les deux apostrophe avant et après le htag choisi’])

Etape N°4: Arduino

Le code arduino est assez simple

_______________________________CODE ARDUINO________________________________
// on prévient arduino que la conneion série sera utilisée

byte incomingByte;

//section du code “jouée” une seule fois

void setup()
// On lance la connection serial entre la platine uno et l’ordinateur hôte
{
Serial.begin(9600);
}

// section du code “jouée” en boucle

void loop()
// si 0 est inscrit sur le port série
{
if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.println(incomingByte);

//inscrivez sous cette ligne ce que vous souhaitez que votre arduino Uno exécute
//ici j’ai demandé à arduino d’exécuter le classique blink

digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);

 

}

}

 

Merci à Thomas Meghe (@thomasmeghe sur twitter) pour le code duquel est largement inspiré ce tutoriel ainsi qu’au LabFab (@LabFabfr sur twitter).