Raspberry Pi DS18B20: Mät Temperaturen med Precision
Har du någonsin undrat hur du kan övervaka temperaturen i ditt hem, din trädgård eller kanske i ett akvarium? Med en Raspberry Pi och en DS18B20 temperatursensor kan du enkelt bygga ditt eget temperaturövervakningssystem. Denna guide kommer att visa dig hur du kopplar, programmerar och använder DS18B20 med din Raspberry Pi för att få exakta temperaturmätningar.
Vad är en DS18B20?

DS18B20 är en digital temperatursensor som använder 1-Wire kommunikationsprotokollet. Den är känd för sin höga noggrannhet, enkla användning och förmåga att fungera över ett brett temperaturområde (-55°C till +125°C). Den är idealisk för projekt som kräver exakta temperaturmätningar, som till exempel:
- Hemautomation
- Väderstationer
- Akvariumövervakning
- Industriell automation
- Serverrumsövervakning

Vad du behöver
För att komma igång behöver du följande:
- En Raspberry Pi (modell 3B+, 4 eller senare rekommenderas)
- En DS18B20 temperatursensor
- En 4.7kΩ resistor
- Jumperkablar
- En lödkolv (valfritt, för att göra permanenta anslutningar)

Koppla DS18B20 till Raspberry Pi

Anslut DS18B20 till din Raspberry Pi enligt följande:
- Anslut VDD-pinnen (röd kabel) på DS18B20 till 3.3V-pinnen på Raspberry Pi.
- Anslut GND-pinnen (svart kabel) på DS18B20 till GND-pinnen på Raspberry Pi.
- Anslut DATA-pinnen (gul eller vit kabel) på DS18B20 till GPIO4 (pin 7) på Raspberry Pi.
- Anslut 4.7kΩ resistorn mellan DATA-pinnen och 3.3V-pinnen.

Det är viktigt att ansluta resistorn korrekt, eftersom den fungerar som en pull-up resistor för att säkerställa stabil kommunikation mellan sensorn och Raspberry Pi.
Aktivera 1-Wire på Raspberry Pi
Innan du kan läsa data från DS18B20, måste du aktivera 1-Wire gränssnittet på din Raspberry Pi. Gör detta genom att öppna terminalen och redigera filen /boot/config.txt:
sudo nano /boot/config.txt
Lägg till följande rad i slutet av filen:
dtoverlay=w1-gpio,gpiopin=4
Spara filen och starta om din Raspberry Pi:
sudo reboot
Läsa Temperaturdata med Python
Nu kan du läsa temperaturdata från DS18B20 med Python. Här är ett enkelt Python-skript som visar hur man gör det:
import os import glob import time
os.system(’modprobe w1-gpio’) os.system(’modprobe w1-therm’)
base_dir = ’/sys/bus/w1/devices/’ device_folder = glob.glob(base_dir + ’28*’)[0] device_file = device_folder + ’/w1_slave’
def read_temp_raw(): f = open(device_file, ’r’) lines = f.readlines() f.close() return lines
def read_temp(): lines = read_temp_raw() while lines[0].strip()[-3:] != ’YES’: time.sleep(0.1) 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
while True: print(read_temp()) time.sleep(1)
Spara skriptet som temperatur.py och kör det med:
python3 temperatur.py
Skriptet kommer att visa temperaturen i grader Celsius varje sekund.
Avancerade Användningsområden
Med grundläggande kunskaper om DS18B20 och Raspberry Pi kan du bygga mer avancerade system. Här är några idéer:
- Logga temperaturdata till en databas för att skapa grafer och analyser.
- Skicka temperaturdata till en molntjänst för fjärrövervakning.
- Använd temperaturdata för att styra reläer och andra enheter för automatisk temperaturkontroll.
- Bygg en webbapplikation för att visa realtids temperaturdata.

Slutsats
DS18B20 är en kraftfull och mångsidig temperatursensor som är perfekt för användning med Raspberry Pi. Med denna guide har du lärt dig hur du kopplar, programmerar och använder DS18B20 för att bygga ditt eget temperaturövervakningssystem. Utforska vidare och upptäck de många möjligheterna med denna kombination av hårdvara och mjukvara. Raspberry Pi och DS18B20 ger dig möjligheten att skapa innovativa lösningar för temperaturövervakning och automation.