webwinkelkeur logo

4.7 Ø

5139+ Bewertungen
webwinkelkeur logoAlle ansehen

5139+ Bewertungen

5139+ Bewertungen

Bestellen bis 16:00 Uhr für Versand am selben Tag

14 Tage Rückgabe

DE

Privat

Geschäftlich

GPIO-Projekt 9 – LCD-Temperatur

Anfänger
30 Minuten
114,90

In diesem Projekt lernen Sie, wie Sie mit einem DS18B20-Temperatursensor die Umgebungstemperatur messen und diesen Wert anzeigen können ein 16x2 LCD-Display mit I2C-Schnittstelle. Dies ist eine großartige Anwendung zur visuellen Darstellung von Daten.

Anschlussplan

Schließen Sie den DS18B20-Temperatursensor an:

  1. Schwarzes Kabel: Mit GND (Pin 6) verbinden.
  2. Rotes Kabel: An 3,3 V (Pin 1) anschließen.
  3. Gelbes Kabel:
    • Verbinden mit GPIO 4 (Pin 7).
    • Platzieren Sie einen 10kΩ-Widerstand zwischen dem gelben Kabel und 3,3 V ( Stift 1).

LCD-Display anschließen:

  1. VCC: An 5 V (Pin 2) anschließen.
  2. GND: Mit GND (Pin 6) verbinden.
  3. SDA: Verbinden mit GPIO 2 (Pin 3).
  4. SCL: Verbinden mit GPIO 3 (Pin 5).

Pinout Reference

GPIO

Pin #

Function

Connection

GPIO 4Pin 7Temperature sensor dataDS18B20-yellow wire
GPIO 2Pin 3I2C SDALCD SDA
GPIO 3Pin 5I2C SCLLCD SCL
3.3VPin 1NutritionDS18B20-red wire
5VPin 2NutritionLCD VCC
GNDPin 6Earth (Ground)DS18B20 and LCD

 

Vorbereitung

Schritt 1: Erforderliche Bibliotheken installieren

Führen Sie die folgenden Befehle im Terminal aus, um die Bibliotheken für DS18B20 und LCD zu installieren:

sudo apt-get update
sudo apt-get install python3-pip
pip3 install RPLCD

Aktivieren Sie die 1-Wire-Schnittstelle für den DS18B20:

  1. Öffnen Sie das Konfigurationsmenü:
sudo raspi-config
  1. Gehen Sie zu Schnittstellenoptionen > 1-Wire und schalten Sie es ein.< /span>
  2. Starten Sie den Raspberry Pi neu.

Überprüfen Sie, ob der DS18B20 erkannt wird:

ls /sys/bus/w1/devices/

Sie würden eine Adresse wie 28-XXXXXXXXXXXX sehen. .

Python-code in Thonny

Schritt 1: Schreiben Sie Ihren Code

Öffnen Sie die Thonny Python IDE und geben Sie den folgenden Code ein:

import os
import glob
from time import sleep
from RPLCD.i2c import CharLCD

# DS18B20-instellingen
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'

# LCD-instellingen
lcd = CharLCD(i2c_expander='PCF8574', address=0x27, cols=16, rows=2)

def read_temp_raw():
    """Lees ruwe data van de DS18B20."""
    with open(device_file, 'r') as f:
        lines = f.readlines()
    return lines

def read_temp():
    """Verwerk de data en retourneer de temperatuur in graden Celsius."""
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos + 2:]
        temp_c = float(temp_string) / 1000.0
        return temp_c

try:
    while True:
        temp = read_temp()
        print(f"Temperatuur: {temp:.1f} °C")
        
        # Toon de temperatuur op het LCD
        lcd.clear()
        lcd.write_string("Temp: {:.1f} C".format(temp))
        
        sleep(2)

except KeyboardInterrupt:
    print("\nProgramma gestopt.")
    lcd.clear()

Schritt 2: Speichern Sie die Datei

Klicken Sie auf Datei > Speichern unter und benennen Sie die Datei lcd_temperature.py.

Schritt 3: Führen Sie das Skript aus

Klicken Sie oben in der Thonny-Benutzeroberfläche auf die grüne Schaltfläche Ausführen (▶).

Wie funktioniert es?

  1. DS18B20 Temperatursensor:
    • Liest die Temperatur über das 1-Wire Protokoll und gibt den Wert in Grad Celsius zurück.
  2. LCD-Anzeige:
    • Zeigt den Temperaturwert auf einem 16x2 LCD-Display an.
  3. Wiederholung:
    • Das Programm liest und zeigt die Temperatur alle 2 Sekunden an.

Ergebnis

  • Die Umgebungstemperatur wird kontinuierlich vom DS18B20 gelesen und auf dem LCD-Display angezeigt.
  • Die Temperatur wird auch im Terminal angezeigt.

Experimentieren

  1. Fahrenheit hinzufügen:
    • Passen Sie den Code an, um auch Fahrenheit anzuzeigen:
      Python
      Code kopieren
  2. LED hinzufügen:
    • Schalten Sie eine LED ein, wenn die Temperatur einen Schwellenwert überschreitet.
  3. Protokollierung:
    • Protokollieren Sie die Temperatur zur weiteren Analyse in einer Datei:
with open("temp_log.txt", "a") as log:
    log.write(f"{temp:.1f} °C\n")