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é...