5101+ beoordelingen
Bestel voor 16:00 voor dezelfde dag verzending
14 dagen retour
NL
Particulier
Zakelijk
In dit project leer je hoe je een DS18B20-temperatuursensor gebruikt om de omgevingstemperatuur te meten en hoe je deze waarde weergeeft op een 16x2 LCD-display met I2C-interface. Dit is een geweldige toepassing om data visueel te presenteren.
GPIO | Pin # | Functie | Aansluiting |
GPIO 4 | Pin 7 | Data temperatuursensor | DS18B20-gele draad |
GPIO 2 | Pin 3 | I2C SDA | LCD SDA |
GPIO 3 | Pin 5 | I2C SCL | LCD SCL |
3.3V | Pin 1 | Voeding | DS18B20-rode draad |
5V | Pin 2 | Voeding | LCD VCC |
GND | Pin 6 | Aarde (Ground) | DS18B20 en LCD |
Voer de volgende commando's uit in de terminal om de bibliotheken voor de DS18B20 en LCD te installeren:
sudo apt-get update
sudo apt-get install python3-pip
pip3 install RPLCD
Activeer de 1-Wire-interface voor de DS18B20:
sudo raspi-config
Controleer of de DS18B20 wordt herkend:
ls /sys/bus/w1/devices/
Je zou een adres zien zoals 28-XXXXXXXXXXXX.
Open de Thonny Python IDE en voer de volgende code in:
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()
Klik op Bestand > Opslaan als en noem het bestand lcd_temperature.py.
Klik op de groene Run-knop (▶) bovenin de Thonny-interface.
with open("temp_log.txt", "a") as log:
log.write(f"{temp:.1f} °C\n")