Raspberry PI-2 Model B: Ecran LCD et Pi4J

Nous allons connecter un écran LCD 4×20 sur notre Raspberry PI-2 model B et afficher un magnifique Hello World à l’aide d’un programme en Java et de la librairie Pi4J.

Tout d’abord voici ma source d’inspiration : Anderson69s. Le programme en Python proposé par Anderson a été transposé en Java de mon côté, avec l’utilisation de la librairie Pi4J.

Matériel requis

Les principaux composants électroniques ont été achetés sur Amazon, vendeur SODIAL. Ne pas être pressé pour la livraison (2 semaines) par contre la livraison est gratuite. Voici donc une liste de courses, tout n’est pas indispensable. A vous de voir en fonction de ce que vous avez déjà.

Raspberry PI 2 Raspberry PI-2 model B

Budget : environ 40€.

Ecran LCD Afficheur Module 2004 LCD BLEU HD44780

Budget : environ 6€.

fer à souder Un fer à souder
Pin headers 10x 40 Pin Header Strip
L’écran LCD est livré sans connecteurs, les pins à souder sur la carte permettent de la connecter sur la plaque LAB.

Budget : 2€

Plaque LAB Plaque LAB

Budget : envion 3€.

Resistances Jeu de résistances
Nous utiliserons une résistance de 220 ohm comme indiqué par le tutorial d’Anderson69. N’ayant pas de potentiomètre, j’ai utilisé une résistance supplémentaire, de 3 KOhm.

Budget : environ 6€.

Cable Des connecteurs mâle/femelle.

Budget : environ 2€.

Wifi dongle module Wi-fi

Budget : environ 3€.

Alimentation alimentation 5V 2000mA

Budget : environ 7€.

SD Card une carte mémoire classe 10

Budget : environ 13€.

LEDs des LEDs

Budget : environ 2€.

LEGOs Des Lego pour faire une belle boite !

Budget : environ 10€.

Raspberry Box Vous pouvez opter pour une version plus classique

Budget : environ 10€.

Logiciel requis

Raspbian OS Ubuntu Raspbian
L’installation se passe très bien normalement. Vous aurez peut-être besoin d’un adaptateur HDMI/VGA pour pouvoir afficher la sortie vidéo sur votre vieil écran PC.
Java Duke Java 8
Préférer la JDK pour avoir tous les outils, mais sinon la JRE suffit.
Pi4J La librairie Pi4J
Il s’agit d’un paquet .deb à installer, qui fournit quelques raccourcis pour compiler facilement les .java sans avoir à taper la commande javac + le classpath

Connexions

Je vous renvoie vers le tutoriel d’Anderson très bien détaillé.

Par contre, n’ayant pas de potientiomètre sous la main, j’ai connecté une résistance de 3 KOhm entre le pin 3 (réglage du contraste) et la masse (ligne bleue de la plaque LAB).

J’ai respecté le reste du schéma. Le port GPIO du Raspberry PI-2 modele B dispose de 40 pins et non 20. Il faut donc tout simplement ignorer les 20 premiers pins (côté intérieur).

Testons la librairie Pi4J

Une fois installée, la librairie pi4J fournit un ensemble d’exemples prêts à l’emploi. Allons tester notre écran LCD !

Si vous avez correctement réalisé le montage, votre écran doit déjà être allumé. Ouvrons le programme de test d’écran LCD :

cd /opt/pi4j/examples
vim WiringPiLcdExample.java

Les ports mappés par les exemples pi4J ne sont peut-être pas compatibles avec notre modèle de Raspberry PI2 Model B.

J’ai dû les remplacer par les constantes suivantes :

LCD RS pin : 11 (ok)
LCD strobe pin : 10 (ok)
LCD data bit 1 : 6 (modifié)
LCD data bit 2 : 5 (modifié)
LCD data bit 3 : 4 (modifié)
LCD data bit 4 : 1 (modifié)

On va laisser les constantes LCD_ROWS et LCD_COLUMNS si votre écran n’a pas la même taille pour le moment.

Démarrons notre exemple.

Attention, le programme doit être lancé en root pour fonctionner

pi4j --compile WiringPiLcdExample.java
# Equivalent de : javac -classpath '.:classes:*:classes:/opt/pi4j/lib/*' -d . WiringPiLcdExample.java

pi4j WiringPiLcdExample
# Equivalent de : java -classpath '.:classes:*:classes:/opt/pi4j/lib/*' WiringPiExample

Vous devriez voir l’heure tourner sur votre écran LCD. Ctrl-C pour arrêter le programme.

Notre petit programme en Java

Le programme que je vous propose va vous permettre de :

  • Créer un message de bienvenue sur 4 lignes
  • Afficher la date et l’heure actuelles
  • Afficher votre ville et vos IPs (LAN et WAN) via l’API http://ip-api.com/json
  • Afficher la météo de votre ville via l’API http://api.openweathermap.org
  • Afficher vos derniers Tweets via l’API twitter4j
  • Jouer avec de l’ASCII Art animé 🙂

Le code est accessible publiquement depuis GIT :

git clone https://gogs.infovergne.com/lapsus63/RaspLCD.git

La classe de démarrage est com.infovergne.rasp.lcd.Main. Vous pouvez le tester sans brancher de Rasbperry en le lançant avec le paramètre -console pour afficher les textes sur la sortie standard, ou -swing pour afficher les textes dans une fenêtre graphique qui ressemblera plus à votre Rasbperry (la JFrame est constituée d’un tableau 4×20 de JLabels).

Toutes ces informations seront envoyées sur l’écran LCD de votre Raspberry à l’aide de pi4J. Vous pouvez compiler facilement le JAR à l’aide de ant puis lancer l’application :

cd Rasp_LCD
/opt/apache-ant-1.9.7/bin/ant -f build.xml build jar
# Démarrage du programme :
java -jar /home/pi/RaspLcd.jar

Attention, pour que les API fonctionnent, vous devez les configurer. Créer une clé (APIKEY) pour pouvoir fonctionner.
Vous devez créer un fichier ~/.rasplcd/apikeys.conf qui contient les informations suivantes. Votre programme devant être lancé en root, le fichier se trouvera donc dans /root/.rasplcd/apikeys.conf.

OWM = VOTRE_CLE_OPEN_WEATHER_MAP

TWITTER_CONSUMER_KEY= VOS_CLES_TWITTER
TWITTER_SECRET_KEY= VOS_CLES_TWITTER
TWITTER_ACCESS_TOKEN= VOS_CLES_TWITTER
TWITTER_ACCESS_TOKEN_SECRET= VOS_CLES_TWITTER

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *