Une image valant mieux qu'un long discours, voici déjà le résultat final :
![Image](https://i.ibb.co/9wtqJz2/PLITTLE.jpg)
Il s'agit donc de prévoir un affichage multi-page (4 pages) pour un Raspberry headless (sans écran ni clavier ni souris) et de bénéficier de quelques commandes à l'aide des boutons.
Mes boutons me permettent :
- de passer d'une page à l'autre
- d'éteindre le raspberry
- de stopper et de redémarrer des services
Le tout est dédier à un de mes raspberry 1B (un vieux) qui possède :
- une caméra sur le port CSI
- une antenne wifi (le Pi1 n'a pas de wifi)
- un disque dur externe en USB
Ce raspberry fait plusieurs choses :
- vidéo-surveillance (motion est installé pour la caméra)
- hot spot wifi (via hostapd)
- il se connecte à internet via un vpn grace à openvpn
- trasn
![M. Vert :mrgreen:](./images/smilies/icon_mrgreen.gif)
Tout d'abord, voici l'écran en question :
https://www.waveshare.com/1.44inch-lcd-hat.htm
Il s'agit d'un hat avec un connecteur gpio 40 borches et se pose au-dessus d'un raspberry.
Il dispose de 3 boutons + 1 joystick (up/down/left/right/press)
Il exploite le port SPI du Raspberry
Les codes d'exemples fournit par wave-share sont ici :
Code : Tout sélectionner
https://www.waveshare.com/wiki/File:1.44inch-LCD-HAT-Code.7z
- le nom d'hôte du raspberry en titre
- les ips (sur la patte eth0, Wlan0 et internet)
- la vitesse du processeur et sa charge
- la mémoire libre restante
- l'espace disque restant sur la carte SD et sur le disque dur
- l'état de chacun des services
- la fonction des boutons
Le code permet aussi un défilement automatique des pages au bout d'un certain temps (120sec dans l'exemple).
Le défilement automatique est désactivable (c'est dans la création de l'objet screen, tout est commenté)
L'écran étant lent et comme il faut pour modifier du texte d'abord effacer l'ancien en dessinant un rectangle dessus, je n'affiche que ce qui change réellement.
De même certaines lectures d'informations sont lentes à réaliser, donc je ne le fais pas systématiquement à chaque itération.
D'ailleurs dans le code, il y a des reste de l'ancien système de changement de pages automatique au bout non pas d'un temps mais d'itérations
Je suis revenu au temps écoulé car en lançant un traitement très lours, je me suis aperçu que au lieu de faire à peu près 100 itérations par seconde, ça tombait à 10 par minutes.
Tout cela pour garder d'une par une réactivité par rapport à l'action de l'un des boutons et d'autre part, minimiser la charge CPU du programme.
J'aurai pu faire des threads mais, j'ai encore une activité professionnelle et familiale + associative donc je n'ai pas passé des jours dessus non plus.
Pour utiliser le programme, il faut d'abord installer certaines choses :
activer l'interface spi avec raspi-config
Code : Tout sélectionner
sudo apt-get install python3-pip python3-dev python3-rpi.gpio sysstat python3-gpiozero python3-spidev libatlas3-base python3-pil
Code : Tout sélectionner
sudo pip3 install Pillow
pip3 install psutil
pip3 install numpy
Code : Tout sélectionner
sudo python3 minilcd3.py
Pour cela : ouvrez minilcd.service et changez le chemin où vous avez mis les éléments du code (par défaut c'est dans /home/pi/MINI_LCD)
Puis lancez
Code : Tout sélectionner
sudo bash instserv.sh
Code : Tout sélectionner
sudo systemctl start/stop/status/enable/disable minilcd
https://drive.google.com/file/d/1xgQyc6 ... sp=sharing