LCD OrangePi Zero

L'horloge réseau + afficheur LMS la moins chère du monde !

On a récemment installé un LCD 20*4 (ou 16*2) sur une Raspberry Pi (avec Debian/RaspiOs puis Ubuntu). Mais notre carte préférée (elle est moins chère et elle consomme moins) c'est la Orange Pi Zero. Est-ce que ça marche aussi sur cette carte ? Oui, en 15 commandes !

La Orange Pi Zero LTS est la version légèrement améliorée de la Pi Zero original. Les composants sont placés différemment et pour le reste... Je ne sais pas trop si ce n'est que c'est la même version d'Armbian qui fonctionne.

Armbian Focal

Piece of cake ou quelque chose comme ça, en quelques commandes le LCD fonctionne, une quinzaine en tout. On va télécharger le système d'exploitation qui est proposé par Amrbian, la version FOCAL (si ça n'évoque rien pour vous) s'appuie sur Ubuntu.

Sélectionnez Armbian Focal sur cette page et ensuite installez le système sur une carte SD avec Rufus (ou Etcher).

La documentation de base se trouve ici.

Une fois que votre Orange Pi Zero a démarré, attendez quelques minutes... Ensuite trouvez son adresse IP (sur votre box ou avec l'appli iPeng...).

Ensuite heu... Sous windows vous pouvez ouvrir une invite de commande et dans la fenêtre ouvrir une session SSH. par exemple si l'adresse de la carte est 192.168.1.102, tapez (pour vous logger en root) et le mot de passe par défaut, c'est 1234 :

ssh root@192.168.1.102

Ensuite tapez les commandes ci-dessous (attention, le point 1 ouvre une application dans laquelle il faut activer l'i2c, détaillé plus bas).


root@orangepizero:/home/pi/LMSLCD2020-main# history

1 sudo armbian-config

2 sudo reboot

3 pwd

4 cd /home/pi

5 sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib

6 sudo apt install python-is-python3

7 sudo apt install python3-pip

8 sudo apt install -y i2c-tools

9 sudo pip3 install smbus2

10 sudo apt install unzip

11 sudo i2cdetect -y 0

12 wget https://github.com/renaudrenaud/LMSLCD2020/archive/main.zip

13 unzip main.zip

14 cd LMSLCD2020-main/

15 sudo python3 testLCD.py -i 0 -s 192.168.1.192

root@orangepizero:/home/pi/LMSLCD2020-main#

1 - Armbian config

Cet utilitaire permet d'activer les port I2C que l'on souhaite utiliser pour le LCD.

On commence par sélectionner System

Ensuite on va sélectionner Hardware

Et là on sélectionne les 3 ports i2c (je pense que le premier suffit, mais dans le doute, sélectionnons tous les ports).

Une fois que c'est fait, il faut sauvegarder les changements et rebooter avec la commande sudo reboot.

La commande pwd permet de savoir "où l'on se trouve", vous pouvez la taper ou l'ignorer.

Au premier boot, j'ai créé un utilisateur pi. La commande cd /home/pi permet de se déplacer dans le dossier de cet utilisateur. Si vous avez créé un utilisateur robert, alors il faut taper cd /home/robert.


5 - sudo apt-mark...

Cette commande permet de "figer" le python3 (langage utilisé pour le LCD) et de ne pas risquer d'écraser des dépendances. Je ne sais pas si c'est obligatoire, mais cela me permet d'éviter des mauvaises surprises par la suite.

6 à 11 Installations et contrôle du LCD

6 - On défini que python3 c'est "python"

7 - on télécharge pip qui est un utilitaire qui permet d'installer des bibliothèques pour le langage python

8 - on installe les outils pour la gestion du port i2c

9 - on installe la gestion du bus smbus2

10 - on installe un utilitaire que l'on utilisera ensuite

11 - la commande permet de détecter le LCD (selon les machines il faut taper 1 à la place du zéro)


6 sudo apt install python-is-python3

7 sudo apt install python3-pip

8 sudo apt install -y i2c-tools

9 sudo pip3 install smbus2

10 sudo apt install unzip

11 sudo i2cdetect -y 0


La commande permet de connaître l'adresse du LCD (on en aura besoin ultérieurement).


12 à 14 récupération du code source depuis Github

La commande 12 permet de récupérer le code source depuis le git.

Ensuite en 13 on dézippe le fichier récupéré

Et enfin on change de dossier pour aller dans celui que le dézipeur vient de créér


12 wget https://github.com/renaudrenaud/LMSLCD2020/archive/main.zip

13 unzip main.zip

14 cd LMSLCD2020-main/


Lancer le code

sudo permet une élévation de droits. Sur Ubuntu, un utilisateur sans droits ne peut pas utiliser le port i2c.

  • La commande python3 (ou python, c'est pareil) permet de lancer l'interpréteur python

  • testLCD.py est le code a exécuter pour le LCD en 16*2. C'est un autre script qu'il faut utiliser pour le 20*4

  • le paramètre -i 0 (zéro) c'est pour indiquer le port du bus i2c (c'est soit 1 soit 0).

  • le paramètre -s 192.168.1.192 sert à indiquer l'adresse du serveur LMS (il faudra indiquer votre adresse, pas la mienne !)

sudo python3 testLCD.py -i 0 -s 192.168.1.192


Si vous voulez lancer le code en arrière plan, vous devez ajouter un & à la fin de la commande :

sudo python3 testLCD.py -i 0 -s 192.168.1.192 &


Le problème c'est que si vous éteignez la machine, il faut, pour relancer le code, se logger, se déplacer dans le dossier et relancer la ligne de commande.

Automatiser le lancement du code au démarrage

Il y a une manoeuvre simple pour effectuer cela; c'est de demander à crontab (le gestionnaire de tâches) de s'en occuper.

pour cela on tape sur la ligne de commande

crontab -e

qui permet d'éditer le crontab. La première fois vous devez choisir l'éditeur, il est impératif de prendre nano !

Déplacez vous dans le fichier tout en bas et tapez la commande suivante :

@reboot sudo python /home/pi/LMSLCD2020-main/testLCD.py -i 0 -s 192.168.1.192

Si vous faites la manipulation sur une Raspberry, vous pouvez enlever le paramètre -i

Par contre, utiliser l'adresse IP de votre propre serveur !

Quand vous êtes content de ce que vous avez tapé, utilisez Ctrl X pour sauvegarder et quitter.

Au reboot, le LCD démarrera tout seul.

Schéma de câblage


Pour l'afficheur, on connecte :

  • GND - GND,

  • 5V - VCC,

  • SDA - SDA

  • SCK -SCL

et le tour est joué...