Se connecter

S'inscrire

L’arbre à tweets

Bienvenu à tous !

Aujourd’hui, c’est parti pour présenter l’arbre à tweet présent au sein de zBis ! Il a été fini début septembre, c’est donc l’occasion de documenter le projet et permettre à tous de le refaire ou mieux de l’adapter à d’autres besoins ou envies!

Pour ce faire, vous aurez besoin :

  1. De bois naturellement!
  2. Une carte Arduino plutôt récente (évitez les ATMEGA 8 ou 16)
  3. Un shield Ethernet
  4. Un TLC5940
  5. Une résistance de 2kOhms
  6. Une breadboard avec des jumpers
  7. De la bonne humeur et du temps !

 

Pour la réalisation technique de l’ensemble du projet. La majeure partie a été faite sur ordinateur pour le développement de la partie Arduino et de la partie Serveur. L’autre branche a été l’électronique avec les différentes cartes Arduino et les composants électroniques.

La création de l’application Arduino a été faite en langage Arduino qui est du C++ avec une couche matériel pour l’utilisation de la carte électronique et de ces entrées/sorties. Pour la partie serveur, la majeure partie a été faite en PHP avec du HTML, CSS, JS et l’API twitter pour la récupération des tweets.

Pour la réalisation de ces deux parties, j’ai principalement utilisé Sublim Text 2 pour la réalisation du code avec le module « Stino » qui permet de gérer l’Arduino avec Sublim Text.

Pour les cartes électroniques, j’ai utilisé une carte Arduino Uno avec un « Shield » Ethernet et un TLC5940 pour la multiplication des pins PWM. Pour la documentation des cartes électroniques, j’ai utilisé Fritzing.

Pour la mise en place du serveur, j’ai fait le développement sur un environnement Windows 8 et pour l’installation finale, le serveur sera déployé sur un Debian sans interface graphique qui servira de serveur au sein de zBis.

 

 

 


1 - Lexique

ARDUINO : Arduino est un circuit imprimé en matériel libre (open hardware) sur lequel un microcontrôleur est programmé pour analyser et produire des signaux électriques, de manière à effectuer des tâches diverses.

API :  Une API est un ensemble de classes, de méthodes ou de fonctions qui sert à l’utilisation d’une application par d’autres applications.
HASHTAG :  Un Hashtag est un mot clé lié au domaine de l’internet.
SHIELD : Un Shield Arduino est une carte électronique que l’on positionne sur le dessus de la carte Arduino et qui rajoute des fonctionnalités.
PWM : PWM est une technique pour fournir des résultats analogiques avec des sorties
numériques.

 

 


2 - Fonctionnement

Pour mieux comprendre le fonctionnement de l’arbre, j’ai fait un schéma que vous pouvez voir ci-dessous. Je vous laisse le regarder et je vous explique plus en détail après.

planFonctionnementArbre

  1. L’arbre interroge le serveur pour savoir s’il y a un nouveau tweet.
  2. Le serveur regarde dans les informations le hashtag suivi et interroge l’api Twitter en fonction de celui-ci.
  3. L’api twitter répond et le serveur renvoie une réponse à l’arbre avec « TWEET » s’il y a un tweet, sinon « STOP ». En même temps le serveur écrit dans les informations le nombre de tweets récupérer.
  4. S’il y a une réponse « TWEET », l’arbre s’illumine.
  5. La page d’accueil utilise le fichier d’informations pour :
    • écrire le hashtag demandé par l’utilisateur dans le fichier d’informations
    • Récupérer le nombre de tweets récupéré par getTweet()
  6. Si l’utilisateur modifie le hashtag, les statistiques sont réinitialiser.

Ce fonctionnement tourne en boucle tout le temps où l’arbre est alimenté. L’arbre interroge le serveur pour savoir s’il y a un nouveau tweet.

 


3 - Découpe

La découpe et le design de l’arbre est un peu au choix de tout le monde, ici je vais montrer juste la partie importante qui est le haut de l’arbre et qui permet de faire passer les fils des LEDS à travers l’arbre.

arbre

 

La partie en noir montre les contours de l’arbre , là où les parties en rouge montrent par où passeront les fils pour les LED.

Il faut prévoir ensuite une boite au sol pour stocker toute l’électronique de l’arbre. Dans cette boite, il faut prévoir une sortie pour l’électricité et pour le câble Ethernet relié au réseau local.

 

 

 


4 - Électronique

La partie électronique est composée de trois parties :

  • La carte Arduino où est stocké l’ensemble du programme et qui fait le lien entre les deux autres parties.
  • Le shield Ethernet qui permet de faire la communication avec le serveur
  • Le TLC 5940 qui permet de multiplexer les sorties PWM et permettre de gérer 16 LED avec une seule carte Arduino

 

IMG_20150827_113830

 

Plan de l’arrière de la carte pour le TLC 5940derrière carte

 


5 - Informatique

Toute la partie informatique est disponible sur le gitHub de zBis.

(https://github.com/zbis/TweeterTree)

Les questions éventuelles sont expliquées dans les commentaires des différents fichiers.

Le dossier Arduino est la partie qui ira sur la carte Arduino ! Il suffit d’ouvrir le dossier avec Arduino puis de le téléverser sur la carte. Il faut penser à changer l’adresse et/ou la page du serveur dans le fichier network.cpp.

Le dossier design contient des fichiers de design pour l’arbre à tweet.

Le dossier libraries contient la bibliothèque TLC5940 modifiée pour fonctionner avec le shield Arduino.

Enfin, le dossier server contient l’ensemble des fichiers à mettre en place sur un ordinateur.

 

 

 


6 - Pistes d'amélioration

Les parties Arduino et serveur sont évolutives, il est possible d’ajouter de nouvelles fonctionnalités assez facilement en suivant le modèle des fonctionnalités déjà existantes. La partie Arduino est développée en objet, ce qui permet de rajouter assez facilement de nouvelles fonctionnalités comme par exemple de rajouter un bruitage ou une musique lors de la présence du Hashtag choisit en supplément des LED. Pour la partie serveur, il est aussi facile de rajouter de nouvelles fonctionnalités comme des statistiques poussées ou la gestion de plusieurs arbres.


7 - Foire aux questions

Comment changer l’adresse du serveur?

L’adresse du serveur est à changer en dur dans le code Arduino.

Dans le dossier Arduino, il y a un fichier nommé « network.cpp ». Dans celui ci il y a une ligne : serverIPAddress = {192,168,0,253};

Il suffit de changer cette ligne par l’adresse IP voulue puis de téléversé le programme sur la carte Arduino.

Comment changer l’animation des LED?

Pour changer l’animation des LED il suffit de changer le code de la fonction lightsTree() dans le fichier lightTree.cpp

Comment installer le serveur sur un nouveau PC?

Pour installer le serveur sur un nouveau serveur, il suffit d’installer un WAMP ou LAMP ou MAMP sur le serveur visé et de déplacer le dossier « Server » dans le dossier correspondant (C://wamp/www ou /var/www sur linux).

Comment changer le temps d’allumage des LED?

Pour augmenter ou diminuer le temps d’allumage des LEDS, il faut modifier cette ligne dans fichier lightTree.cpp : « leaveFunction>=100″ 100 =~ 5secondes, il suffit d’augmenter le nombre de boucle pour augmenter le temps d’allumage.

Comment changer les clés Twitter?

Pour changer les clé d’utilisation de l’API twitter, il faut aller dans le fichier : informations.php sur le serveur et modifier les lignes :

define(CONSUMER_KEY, );
define(CONSUMER_SECRET, );
define(OAUTH_ACCESS_TOKEN, );
define(OAUTH_ACCESS_TOKEN_SECRET, );

Comment changer la fréquence d’interrogation de l’API Twitter?

Pour changer la fréquence d’appel à l »api Twitter, il suffit de rajouter un delay() dans la fonction getTweet.php au début du fichier, où le paramètre sera le temps en milisecondes. (1000 = 1seconde).

 


L’arbre à tweets

Réalisé par , mise en ligne le 5 septembre 2015 - Dernière modification : 8 septembre 2015

Ce projet a été réalisé sous licence GNU GPL
Documenter