Bonjour,
Aujourd'hui je vous fait un petit tuto qui est partie d'un constat tout simple, car je me déplace beaucoup avec mon Raspberry Pi donc je me connecte via la wifi mais il est toujours assez chiant de chercher l’adresse IP du RPI sur le réseau local. J'ai donc eu l'idée avec un petit afficheur que j'avais sous la main de faire en sorte qu'un petit programme à chaque démarrage affiche l'IP local. Idée très simple mais qui me sert bien maintenant.
Et au passage cela me permettra de vous expliquez comment lancer n'importe quelle programme au lancement du Raspberry Pi.
I - Matériels
Ici rien de bien méchant le RPI et un afficheur LCD, pour se dernier il faut savoir que le plus souvent il y a un module I2C intégrer donc selon l'afficheur les librairie utiliser peuvent changer. Par exemple j'ai débuter en voulant utiliser une librairie Adafruit qui n’était pas compatible avec mon afficheur acheter chez TinyDeal pour quelques euros. Donc le tuto ne sera donc pas forcement compatible avec tout les afficheur.
II - Librairie
Il faut pour commencer installer la librairie I2C qui contient tout se qu'il faut pour l'afficheur LCD, ici j'utilise la librairie Quick2Wire. Pour se faire on commence par créer notre dossier :
mkdir ./LCD_IPcd ./LCD_IPEnsuite on télécharge la librairie :
git clone https://github.com/quick2wire/quick2wire-python-api.git
On se place ensuite dans le dossier qui vien d'être télécharger :
cd ./quick2wire-python-apiEt on telecharge la derniere librairie "i2cLibrairies" avec :
sudo git clone https://bitbucket.org/thinkbowl/i2clibraries.gitVoila c'est fini pour la librairie vous devriez avoir un nouveau dossier avec à l'intérieur tout les librairie.
III - Le programme
Avec une librairie bien complète comme celle-ci le programme sera très rapide et facile à faire, auparavant voici les quelque fonctionnalité de la librairie LCD.
Pour commencer initialisation de l'écran se fait avec se qui suit :
lcd = i2c_lcd.i2c_lcd(0x27, 0, 2, 1, 0, 4, 5, 6, 7, 3)
On déclare donc un objet lcd, le premier paramètre est le plus important car c'est adresse I2C du LCD.
Les autres paramètre sont définie comme ceci :
I2C Address, Port, Enable pin, RW pin, RS pin, Data 4 pin, Data 5 pin, Data 6 pin, Data 7 pin, Backlight pin (optional)
Avec cette objet on peut par la suite acceder à toutes les fonction comme :
- backlightOn() pour activer rétroéclairage
- backlightOff() pour désactiver rétroéclairage
- clear() effacer tout les caractère de l'afficheur
- home() remet le curseur sur 0 et ligne 1
- setPosition(line, position) place le curseur sur la ligne et la position souhaiter
- writeChar(char) ecrit un caractére selon la position du curseur
- writeString(string) ecrit une ligne selon la position du curseur
A partir de la on peut afficher se que l'ont veut, ou l'ont veut. le programme donne ceci :
Et pour lancer le programme il suffit de faire : import sys, os
# On définie l'emplacement de la librairie
sys.path.append(r'/home/pi/LCD_IP/quick2wire-python-api')
from i2clibraries import i2c_lcd
from time import *
import socket
#Init de 'afficheur
lcd = i2c_lcd.i2c_lcd(0x27,1, 2, 1, 0, 4, 5, 6, 7, 3)
#Récupère l'adresse ip
locals = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
locals.connect(('google.com', 0))
#On affiche tout sa sur l'afficheur
LCDlcd.backLightOn()
lcd.clear()
lcd.setPosition(1, 2)
lcd.writeString(str(locals.getsockname()[0]))
lcd.setPosition(2, 0)
lcd.writeString("hello")
sudo python3 ./LCD.pyEt voila l'afficheur LCD vous affiche votre adresse IP local.
IV - Démarrage automatique
Il faut maintenant faire en sort que ce programme se lance automatiquement au démarrage, pour se faire il faut ajouter un script dans le dossier systéme "/etc/init.d", donc c'est partie :
sudo nano /etc/init.d/LCD_IP
Et y coller ceci :
#!/bin/bash
# /etc/init.d/LCD_IP.sh
case "$1" in
start)
echo "lancement du programme de l'afficheur LCD"
#la on lance le programme
sudo python3 /home/pi/LCD_IP/LCD_IP.py &
;;
stop)
echo "arret du programme de l'afficheur LCD"
sudo killall LCD_IP.py
;;
*)
echo "Usage: /etc/init.d/LCD_IP {start|stop}"
exit 1
;;
esac
exit 0
Une fois le script créer et enregistrer il faut lui donner des droits :
sudo chmod /etc/init.d/LCD_IPDernière étapes ajouter se script au démarrage du système avec ceci :
sudo update-rc.d LCD_IP defaultsEt voila fini pour ce petit tuto, plus besoin de chercher sur le réseaux l'adresse de votre RPI.
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimer