Primal Display : Construire un moniteur de température LCD avec Raspberry Pi
Ce guide montre comment connecter un LCD 16x2 compatible HD44780 à un Raspberry Pi 3 et afficher des lectures en direct de température et d'humidité depuis un capteur DHT11. Les instructions couvrent la sélection du matériel, le câblage (modes 4 bits et 8 bits), les bibliothèques requises et un script Python complet.
Histoire
Introduction
Un écran LCD est un ajout polyvalent pour tout projet Raspberry Pi. En câblant un écran compatible HD44780 directement sur les broches GPIO, vous pouvez présenter des données de capteurs ou des messages personnalisés sans avoir besoin d'adaptateurs I2C ou SPI.
Matériel
- LCD 16x2 compatible HD44780 (coût <10 $)
- Raspberry Pi 3 (ou plus récent)
- Capteur température/humidité DHT11
- Carte micro‑SD avec Raspbian OS
- 1–2 potentiomètres 10 kΩ (contraste/luminosité)
- Plaque d'essai, fils de connexion, et alimentation 5 V
Nous utiliserons six broches GPIO pour le LCD ; cette méthode directe libère le port série du Pi et élimine le besoin de pilotes I2C.
Câblage
Deux options de câblage sont disponibles :
- Mode 4 bits – utilise 4 lignes de données, un potentiomètre pour le contraste.
- Mode 8 bits – utilise 8 lignes de données, deux potentiomètres (contraste et luminosité).
En mode 4 bits, l'octet de commande 8 bits est divisé en deux demi-octets de 4 bits, donc le bus de données est deux fois moins large. En pratique, le temps de traitement interne du LCD masque tout avantage de vitesse du mode 8 bits, donc choisissez selon les broches disponibles.
Connexions broches LCD (Mode 4 bits)
- Broche 1 (GND) – Masse
- Broche 2 (+5 V) – Alimentation
- Broche 3 (Vo) – Curseur potentiomètre (contraste)
- Broche 4 (RS) – GPIO 37
- Broche 5 (RW) – Masse (écriture seule)
- Broche 6 (EN) – GPIO 35
- Broches 7–10 – inutilisées
- Broche 11 (D4) – GPIO 33
- Broche 12 (D5) – GPIO 31
- Broche 13 (D6) – GPIO 29
- Broche 14 (D7) – GPIO 23
- Broche 15 (LED+) – +5 V
- Broche 16 (LED−) – Masse
Connexions broches LCD (Mode 8 bits)
- Broche 1 – Masse
- Broche 2 – +5 V
- Broche 3 – Curseur potentiomètre (contraste)
- Broche 4 – GPIO 37 (RS)
- Broche 5 – Masse (RW)
- Broche 6 – GPIO 35 (EN)
- Broche 7 (D0) – GPIO 40
- Broche 8 (D1) – GPIO 38
- Broche 9 (D2) – GPIO 36
- Broche 10 (D3) – GPIO 32
- Broche 11 (D4) – GPIO 33
- Broche 12 (D5) – GPIO 31
- Broche 13 (D6) – GPIO 29
- Broche 14 (D7) – GPIO 23
- Broche 15 – +5 V
- Broche 16 – Masse
Câblage du capteur DHT11
Le DHT11 utilise trois broches : VCC, Data, GND. Connectez VCC à 3,3 V (broche 1) ; si les lectures sont instables, passez à 5 V (broche 2). Câblez la broche Data sur GPIO 18 (broche physique 12). Une résistance de tirage (4,7 kΩ) est recommandée entre VCC et Data.
Bibliothèques requises
Assurez-vous que le système dispose des outils de construction et des en-têtes Python :
sudo apt-get update
sudo apt-get install build-essential python-dev
Installez RPLCD pour le contrôle LCD :
sudo apt-get install python-pip
sudo pip install RPLCD
Installez la bibliothèque Adafruit DHT11 depuis GitHub :
sudo apt-get install git
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
Script Python (Mode 8 bits)
Créez temperature.py avec votre éditeur préféré (ex. nano) :
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
import Adafruit_DHT
from RPLCD import CharLCD
GPIO.cleanup()
# Configuration LCD – mode 8 bits
lcd = CharLCD(
numbering_mode=GPIO.BOARD,
cols=16,
rows=2,
pin_rs=37,
pin_e=35,
pins_data=[40, 38, 36, 32, 33, 31, 29, 23]
)
while True:
humidity, temperature = Adafruit_DHT.read_retry(11, 18)
if humidity is None or temperature is None:
print('Échec de lecture du capteur')
continue
print(f'Temp: {temperature:.1f} C Humidité: {humidity:.1f} %')
lcd.clear()
lcd.cursor_pos = (0, 0)
lcd.write_string(f'Temp: {int(temperature)} C')
lcd.cursor_pos = (1, 0)
lcd.write_string(f'Humidité: {int(humidity)} %')
time.sleep(5)
Rendez le script exécutable et lancez-le :
chmod +x temperature.py
./temperature.py
Alternative Mode 4 bits
Remplacez la liste pins_data par quatre broches GPIO (ex. [33, 31, 29, 23]) et ajustez l'initialisation LCD en conséquence.
Résumé
En suivant ces étapes, vous aurez un affichage LCD entièrement fonctionnel qui montre la température et l'humidité en temps réel, parfait pour stations météo, tableaux de bord IoT ou projets éducatifs.
Lire plus de détails
Pour une compréhension plus approfondie des pilotes LCD et de la configuration avancée, explorez le dépôt Adafruit DHT et la documentation RPLCD.
Processus de fabrication
- Le rouleau à pâtisserie : des origines étrusques à l'artisanat moderne
- L'évolution et l'artisanat des quilles de bowling modernes
- Affichage à Cristaux Liquides (LCD) : Technologie, Fabrication et Perspectives Futures
- Drone Pi : Quadricoptère Multiwii & Raspberry Pi double mode pour smartphone et radiocommande
- Projet Arduino LCD DIY : Assemblage avec résistances, bouton poussoir et afficheur 16x2
- Comprendre les afficheurs Braille portables : insights clés et innovations
- Le 74LS74 Double Bascule D : Référence Complète et Brochage
- Atlas Copco présente le générateur d'azote NGP+ au salon WIN Expo 2017
- Atlas Copco présente des solutions avancées pour la plasturgie au NPE2018