5139+ Bewertungen
Bestellen bis 16:00 Uhr für Versand am selben Tag
14 Tage Rückgabe
DE
Privat
Geschäftlich
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.
GPIO | Pin # | Function | Connection |
GPIO 4 | Pin 7 | Temperature sensor data | DS18B20-yellow wire |
GPIO 2 | Pin 3 | I2C SDA | LCD SDA |
GPIO 3 | Pin 5 | I2C SCL | LCD SCL |
3.3V | Pin 1 | Nutrition | DS18B20-red wire |
5V | Pin 2 | Nutrition | LCD VCC |
GND | Pin 6 | Earth (Ground) | DS18B20 and LCD |
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:
sudo raspi-config
Überprüfen Sie, ob der DS18B20 erkannt wird:
ls /sys/bus/w1/devices/
Sie würden eine Adresse wie 28-XXXXXXXXXXXX sehen. .
Ö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()
Klicken Sie auf Datei > Speichern unter und benennen Sie die Datei lcd_temperature.py.
Klicken Sie oben in der Thonny-Benutzeroberfläche auf die grüne Schaltfläche Ausführen (▶).
with open("temp_log.txt", "a") as log:
log.write(f"{temp:.1f} °C\n")