0
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_IP
Ensuite 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-api
Et on telecharge la derniere librairie "i2cLibrairies" avec :
sudo git clone https://bitbucket.org/thinkbowl/i2clibraries.git
Voila 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 :
 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")  

 Et pour lancer le programme il suffit de faire :
sudo python3 ./LCD.py
Et 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_IP
Dernière étapes ajouter se script au démarrage du système avec ceci :
 sudo update-rc.d LCD_IP defaults
Et voila fini pour ce petit tuto, plus besoin de chercher sur le réseaux l'adresse de votre RPI.

Enregistrer un commentaire

 
Top