- Interfaçage LCD 16x2 avec Raspberry Pi:
- Schéma:
- Afficher l'adresse IP du Raspberry Pi sur l'écran LCD:
- Exécutez périodiquement le script en utilisant 'crontab':
Le principal problème lorsque vous travaillez avec Raspberry Pi est de connaître l'adresse IP du Raspberry Pi, qui sera nécessaire pour s'y connecter à l'aide d'un client SSH ou de transfert de fichiers. Nous allons donc aujourd'hui partager quelques scripts Python pour trouver l'adresse IP locale de votre Raspberry Pi sur le réseau et l' afficher sur l'écran LCD 16x2. Nous ajouterons également le script dans le Crontab afin qu'il puisse être exécuté toutes les 10 minutes et nous aurons l'adresse IP mise à jour à chaque fois.
Interfaçage LCD 16x2 avec Raspberry Pi:
Avant de trouver l'adresse IP du Raspberry PI, nous devons d'abord interfacer un écran LCD 16x2 avec Raspberry Pi. Ici, dans ce projet, nous avons utilisé une bibliothèque Adafruit externe pour interfacer l'écran LCD 16x2 avec Raspberry Pi, à l'aide de laquelle vous n'avez pas besoin d'écrire beaucoup de lignes de code pour piloter l'écran LCD et vous pouvez imprimer directement sur LCD en utilisant une code. Cependant, cette bibliothèque est créée par Adafruit mais elle peut être utilisée pour tout module LCD doté d'un contrôleur HD44780.
Pour utiliser la bibliothèque Adafruit, nous devons d'abord l' installer en utilisant les commandes ci-dessous. La première commande clonera le référentiel CharLCD (par Adafruit) sur votre Raspberry Pi, la deuxième commande vous emmènera dans ce répertoire téléchargé et enfin nous devons exécuter le script setup.py , présenté dans le répertoire Adafruit_Python_CharLCD, pour installer la bibliothèque.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd./Adafruit_Python_CharLCD sudo python setup.py installer
Maintenant, la bibliothèque pour LCD 16x2 a été installée et vous pouvez utiliser ses fonctions en important simplement cette bibliothèque dans votre programme python en utilisant la ligne ci-dessous:
importer Adafruit_CharLCD comme LCD
Il y a quelques exemples de scripts dans le dossier 'examples' qui est présent dans le dossier de la bibliothèque (Adafruit_Python_CharLCD). Vous pouvez tester la configuration en exécutant l' exemple de script char_lcd.py. Mais avant cela, vous devez connecter les broches LCD avec le Raspberry Pi comme indiqué ci-dessous dans le schéma de circuit de la section suivante.
Vous pouvez également connecter l'écran LCD à d'autres broches GPIO de Raspberry Pi, tout ce dont vous avez besoin pour mentionner les broches d'interfaçage correctes dans votre programme python comme ci-dessous. En savoir plus sur les broches GPIO Raspberry Pi ici.
# Configuration des broches Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
Vous pouvez désormais utiliser directement les fonctions fournies par Adafruit Library pour contrôler l'écran LCD. Certaines des fonctions sont données ci-dessous; vous pouvez en trouver plus dans l'exemple de script:
- lcd.message (message) = Pour imprimer le texte sur l'écran LCD.
- lcd.clear () = Pour effacer l'écran LCD.
- set_cursor (col, row) = Déplace le curseur vers n'importe quelle position dans la colonne et la ligne.
- lcd.blink (True) = Pour faire clignoter le curseur (True ou False)
- lcd.move_left () = Pour déplacer le curseur vers la gauche d'une position.
- lcd.move_right () = Pour déplacer le curseur vers la droite d'une position.
Si vous souhaitez connecter l'écran LCD sans utiliser de bibliothèque externe, vous pouvez consulter notre tutoriel précédent, où nous avons écrit toutes les fonctions pour 16x2 LCD. Cochez celui-ci pour interfacer le LCD en mode 8 bits et celui-ci pour interfacer le LCD en mode 4 bits.
Schéma:
Afficher l'adresse IP du Raspberry Pi sur l'écran LCD:
Après avoir interfacé un écran LCD 16x2 avec Raspberry Pi, nous devons maintenant obtenir l'adresse IP du Raspberry Pi et l'imprimer sur LCD à l'aide de Python Script. Il existe de nombreuses façons d'obtenir l'adresse IP locale de Raspberry Pi, nous décrivons ici trois scripts Python pour obtenir l'adresse IP, vous pouvez utiliser l'un d'entre eux.
Utilisation des commandes Linux:
Sur le terminal, nous pouvons facilement obtenir l'adresse IP en utilisant la commande hostname –I , donc si nous pouvons exécuter la commande linux à partir de python, nous pouvons obtenir l'adresse IP. Donc, pour exécuter des commandes Linux à partir de Python, nous devons importer une bibliothèque nommée commandes, donc le programme complet sera comme ci-dessous:
import time import Adafruit_CharLCD comme commandes d'importation LCD # Configuration des broches Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Définissez la colonne LCD et la taille de ligne pour 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) lcd.message commandes ('Adresse IP locale. ('hostname -I')) time.sleep (10.0) # Attendez 5 secondes lcd.clear ()
Vous pouvez également remplacer la commande hostname –I dans le programme par la commande ci-dessous si vous souhaitez obtenir l'adresse IP en utilisant une commande ifconfig plus fiable:
lcd.message (commandes.getoutput ('ifconfig wlan0 - grep "inet \ addr" - cut -d: -f2 - cut -d "" -f1'))
Utilisation de la programmation Socket:
Ici, dans ce programme, nous allons créer une socket de la famille AF_INET et tapez SOCK_DGRAM en utilisant cette ligne: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) , puis nous allons créer une connexion via la socket en utilisant un nom d'hôte ou une adresse IP comme 8.8.8.8, vous pouvez également utiliser un autre site Web pour vous connecter au socket comme gmail.com. Nous pouvons donc obtenir l'adresse IP locale du RPi à partir du socket qui a été créé pour la communication entre Raspberry Pi et l'adresse IP factice. Voici le programme complet:
importation du temps d'importation Adafruit_CharLCD comme socket d'importation LCD # Configuration des broches Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Définissez la colonne LCD et la taille de ligne pour 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) def get_ip_address (): adresse_ip s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () s.close () return ip_address lcd.message ('Adresse IP locale: \ n ') lcd.message (get_ip_address ()) # Attendez 5 secondes time.sleep (10.0) lcd.clear ()
En savoir plus sur la programmation de socket en python ici.
Utilisation du module 'fcntl':
Ce module effectue le contrôle des fichiers et le contrôle des E / S sur les descripteurs de fichiers. Ici, il est utilisé pour extraire l'adresse IP des fichiers réseau. Voici le code Python complet:
import time import Adafruit_CharLCD comme socket d'importation LCD importation fcntl import struct # Configuration des broches Raspberry Pi lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Définissez la colonne LCD et la taille de ligne pour 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) def get_interface_ipaddress.AFSocket (network) retourne socket.inet_ntoa (fcntl.ioctl (s.fileno (), 0x8915, # SIOCGIFADDR struct.pack ('256s', network))) lcd.message ('Local IP Address: \ n') lcd.message (get_interface_ipaddress ('wlan0')) # Attendez 5 secondes time.sleep (10.0) lcd.clear ()
En savoir plus sur l'utilisation du module 'fcnfl' ici.
Exécutez périodiquement le script en utilisant 'crontab':
La dernière étape consiste à ajouter l'entrée pour exécuter ce script périodiquement toutes les 15 minutes afin que nous puissions obtenir une adresse IP mise à jour à chaque fois. Pour ce faire, nous devons éditer le fichier cron en utilisant la commande ci-dessous:
crontab –e
Et puis entrez la ligne ci-dessous en bas du fichier cron et enregistrez-le en utilisant CTRL + X, puis Y, puis entrez.
* / 15 * * * * sudo python /home/pi/ip_address_lcd.py
Vous pouvez modifier l'adresse en fonction de l'emplacement de votre fichier de script Python et vous pouvez également modifier la durée pendant laquelle vous souhaitez exécuter à plusieurs reprises le script pour obtenir l'adresse IP mise à jour.