Suivre le cours du Bitcoin (mais pas que) avec un écran LCD

Résultat


Le but de l’opération est d’obtenir un résultat similaire à celui-ci. On recupère le cours du bitcoin via une API, puis on l’affiche sur un écran LCD. On actualise cette valeur chaque minute. Même si cela peut paraître compliqué, la réalité est bien différente.

Matériel nécessaire

Le matériel a été acheté sur Ebay. Ebay propose un grand nombre d’offres en éléctronique a des prix très corrects. C’est donc un très bon endroit pour acheter du matériel. Cependant, il ne faut pas être pressé au niveau des délais de livraison.

Cablage

Le cablage est très simple à effectuer. En effet, le protocole I2C le simplifie grandement. Sans I2C le cablage ressemblerait à ça :

 

Mais grâce au module I2C qui gère l’envoie et la réception des données on peut se contenter d’effectuer seulement ce cablage :

Pour détailler le cablage :

  • Connecter la broche SCL1 du Raspberry à la broche SCL du module I2C
  • Connecter la broche SDA1 du Raspberry à la broche SDA du module I2C
  • Connecter la broche 5V du Raspberry à la broche VCC du module I2C
  • Connecter la broche GND du Raspberry à la broche GND du module I2C

Installation des dépendances du Raspberry

Pour commencer, il va falloir effectuer les mises à jour :

sudo apt-get update
sudo apt-get upgrade
sudo reboot

Ensuite, on va ajouter I2C au démarrage :

sudo leafpad /etc/modules

Ajouter cette ligne à la fin du fichier :

i2c-dev

On va décommente la ligne #dtparam=i2c_arm=on du fichier /boot/config.txt :

sudo leafpad /boot/config.txt

Installer les paquets suivants qui seront nécessaires au fonctionnement du script :

sudo apt-get install python-smbus i2c-tools

Ensuite redémarrer le Raspberry pour que les changements soient pris en compte :

sudo reboot

On va maintenant récupérer l’adresse du périphérique I2C :

sudo i2cdetect -y 0
sudo i2cdetect -y 1

Sur l’image, on voit que l’adresse de notre périphérique est le 3f , on la note car on en aura besoin pour la suite.

Le code

Je vous ai préparé une archive qui contient le code pour afficher en direct le cours du Bitcoin.

L’archive contient 3 fichiers :

– i2c_lib.py (une bibliothèque qui va gérer l’écriture sur l’écran LCD)

– lcddriver.py (une bibliothèque qui va gérer le pilotage et la configuration de l’écran LCD)

– LCD.py  (le fichier que j’ai développé qui récupère le cours du Bitcoin et l’affiche sur l’écran)

LCD.py , le fonctionnement

import json #On importe la bibliothèque pour lire le Json
import urllib2 #On importe la bibliothèque qui va interroger l'API
import lcddriver #On importe la bibliothèque lcddriver.py


j = urllib2.urlopen("https://api.coinbase.com/v2/prices/spot?currency=EUR").read() #On récupère les données de l'API
j = json.loads(j) #On convertit les données au format Json

content = str(j['data']['amount']) + ' euros' #On crée une variable qui sera le contenu de la première ligne
lcd = lcddriver.lcd() #On initialise l'objet
lcd.lcd_clear() #On supprime le contenu présent sur l'écran LCD
lcd.lcd_display_string("BTC",1) #On affiche "BTC" sur la première ligne
lcd.lcd_display_string(content,2) #On affiche le contenu de la seconde ligne

Dans notre cas, on récupère la valeur du Bitcoin sur l’API de coinbase mais on pourrait très bien récupérer la valeur ailleurs. On pourrait aussi modifier le code pour récupérer une donnée totalement différente. Il existe des méthodes pour créer des API renvoyant des données qui ne sont pas prévues pour être lues via une API. J’ai par exemple développé un script me permettant de lire le solde de mon compte Partenaires Amazon à l’aide de CasperJS, la seule limite étant votre imagination.

Installation

mkdir BitcoinLCD
cd BitcoinLCD
wget https://www.securemydata.fr/download/BitcoinLCD.zip
unzip BitcoinLCD.zip

Dans le fichier lcddriver, il faudra modifier la constante ADDRESS par 0x3F (dans mon cas). 3F étant à l’adresse du périphérique que l’on a récupéré un peu avant :

leafpad lcddriver.py

Maintenant que tout est bien configuré, on va configurer une tâche cron pour que le script s’éxécute toutes les minutes :

crontab -e

Et on ajoute la ligne suivante :

* * * * * python /home/pi/BitcoinLCD/LCD.py

Conclusion

On a donc réalisé un système permettant de suivre le cours du Bitcoin en très peu de temps. On peut imaginer pleins de variantes à ce système… Par exemple, on pourrait faire sonner une alarme quand le Bitcoin descend en dessous d’une certaine somme, ce qui peut permettre d’investir au bon moment.

Si vous avez aimé ce tutoriel, n’hésitez pas à le partager !

Leave a comment

Notre site internet

SecureMyData.fr

Numéro de téléphone

(+33) 04 28 29 68 59

Horaires d'ouvertures

Lundi - Vendredi - 8:00 - 18:00, Samedi - 14:00 - 18:00

Newsletter

SecureMyData © 2017 Tous droits réservés.