Primal Display: Een Raspberry Pi LCD-temperatuurmonitor bouwen
Deze gids laat zien hoe je een 16x2 HD44780-compatibele LCD aan een Raspberry Pi 3 koppelt en live temperatuur- en vochtigheidsmetingen van een DHT11-sensor weergeeft. De instructies behandelen hardware-selectie, bedrading (zowel 4-bit als 8-bit modi), benodigde bibliotheken en een compleet Python-script.
Verhaal
Inleiding
Een LCD-display is een veelzijdige add-on voor elk Raspberry Pi-project. Door een HD44780-compatibel scherm direct aan de GPIO-pinnen te bedraden, kun je sensordata of custom berichten tonen zonder I2C- of SPI-adapters nodig te hebben.
Hardware
- HD44780-compatibele 16x2 LCD (kost <$10)
- Raspberry Pi 3 (of nieuwer)
- DHT11 temperatuur/vochtigheidssensor
- Micro-SD-kaart met Raspbian OS
- 1–2 10 kΩ-potentiometers (contrast/helderheid)
- Breadboard, jumper-draden en een 5 V voeding
We gebruiken zes GPIO-pinnen voor de LCD; deze directe methode houdt de seriële poort van de Pi vrij en elimineert de noodzaak voor I2C-drivers.
Alles bedraden
Er zijn twee bedradingsopties beschikbaar:
- 4-bit-modus – gebruikt 4 datalijnen, één potentiometer voor contrast.
- 8-bit-modus – gebruikt 8 datalijnen, twee potentiometers (contrast en helderheid).
In 4-bit-modus wordt het 8-bit commandobyte opgesplitst in twee 4-bit-hälften, dus de databus is half zo breed. In de praktijk maskert de interne verwerkingstijd van de LCD elk snelheidsvoordeel van 8-bit-modus, dus kies op basis van beschikbare pinnen.
LCD-pinverbindingen (4-bit)
- Pin 1 (GND) – Massa
- Pin 2 (+5 V) – Voeding
- Pin 3 (Vo) – Potentiometer-wiper (contrast)
- Pin 4 (RS) – GPIO 37
- Pin 5 (RW) – Massa (alleen-schrijven)
- Pin 6 (EN) – GPIO 35
- Pin 7–10 – ongebruikt
- Pin 11 (D4) – GPIO 33
- Pin 12 (D5) – GPIO 31
- Pin 13 (D6) – GPIO 29
- Pin 14 (D7) – GPIO 23
- Pin 15 (LED+) – +5 V
- Pin 16 (LED−) – Massa
LCD-pinverbindingen (8-bit)
- Pin 1 – Massa
- Pin 2 – +5 V
- Pin 3 – Potentiometer-wiper (contrast)
- Pin 4 – GPIO 37 (RS)
- Pin 5 – Massa (RW)
- Pin 6 – GPIO 35 (EN)
- Pin 7 (D0) – GPIO 40
- Pin 8 (D1) – GPIO 38
- Pin 9 (D2) – GPIO 36
- Pin 10 (D3) – GPIO 32
- Pin 11 (D4) – GPIO 33
- Pin 12 (D5) – GPIO 31
- Pin 13 (D6) – GPIO 29
- Pin 14 (D7) – GPIO 23
- Pin 15 – +5 V
- Pin 16 – Massa
DHT11-sensor bedrading
De DHT11 gebruikt drie pinnen: VCC, Data, GND. Verbind VCC met 3,3 V (pin 1); als metingen onstabiel zijn, schakel over naar 5 V (pin 2). Bedraad de Data-pin naar GPIO 18 (fysieke pin 12). Een pull-up-weerstand (4,7 kΩ) wordt aanbevolen tussen VCC en Data.
Benodigde bibliotheken
Zorg dat het systeem de build-tools en Python-headers heeft:
sudo apt-get update
sudo apt-get install build-essential python-dev
Installeer RPLCD voor LCD-besturing:
sudo apt-get install python-pip
sudo pip install RPLCD
Installeer de Adafruit DHT11-bibliotheek vanaf 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
Python-script (8-bit)
Maak temperature.py aan met je favoriete editor (bijv. nano):
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
import Adafruit_DHT
from RPLCD import CharLCD
GPIO.cleanup()
# LCD-configuratie – 8-bit-modus
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('Kan geen data van sensor ophalen')
continue
print(f'Temp: {temperature:.1f} C Vochtigheid: {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'Vochtigheid: {int(humidity)} %')
time.sleep(5)
Maak het script uitvoerbaar en voer uit:
chmod +x temperature.py
./temperature.py
4-bit-modus alternatief
Vervang de pins_data-lijst met vier GPIO-pinnen (bijv. [33, 31, 29, 23]) en pas de LCD-initialisatie dienovereenkomstig aan.
Samenvatting
Door deze stappen te volgen, heb je een volledig functioneel LCD-display dat realtime temperatuur en vochtigheid toont, perfect voor weerstations, IoT-dashboards of educatieve projecten.
Meer details lezen
Voor diepere inzicht in LCD-drivers en geavanceerde configuratie, verkken de Adafruit DHT-repository en de RPLCD-documentatie.
Productieproces
- De Deegroller: Van Etrusken tot Moderne Vakmanschap
- De Evolutie en Vakmanschap van Moderne Bowlingpinnen
- Vloeistofkristal Display (LCD): Technologie, Productie en Toekomstperspectief
- Drone Pi: Een Dual-Mode Multiwii & Raspberry Pi Quadcopter voor Smartphone en Remote Besturing
- DIY Arduino LCD-project: Bouw met weerstanden, drukknop en 16x2 display
- Van Analoog naar LCD: De Evolutie van Glascockpits in de Space Shuttle
- De 74LS74 Dubbele Flip-Flop: Complete Referentie en Pinout
- Atlas Copco toont NGP+ stikstofgenerator op WIN Expo 2017
- Atlas Copco toont geavanceerde kunststofproductieoplossingen op NPE2018
- Begrijpen van draagbare Braille displays: Kerninzichten & Innovaties
- De Pin Control Subsystem Beheersen voor Linux Device Drivers