Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

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

  1. De Deegroller: Van Etrusken tot Moderne Vakmanschap
  2. De Evolutie en Vakmanschap van Moderne Bowlingpinnen
  3. Vloeistofkristal Display (LCD): Technologie, Productie en Toekomstperspectief
  4. Drone Pi: Een Dual-Mode Multiwii & Raspberry Pi Quadcopter voor Smartphone en Remote Besturing
  5. DIY Arduino LCD-project: Bouw met weerstanden, drukknop en 16x2 display
  6. Van Analoog naar LCD: De Evolutie van Glascockpits in de Space Shuttle
  7. De 74LS74 Dubbele Flip-Flop: Complete Referentie en Pinout
  8. Atlas Copco toont NGP+ stikstofgenerator op WIN Expo 2017
  9. Atlas Copco toont geavanceerde kunststofproductieoplossingen op NPE2018
  10. Begrijpen van draagbare Braille displays: Kerninzichten & Innovaties
  11. De Pin Control Subsystem Beheersen voor Linux Device Drivers