Raspberry Pi One Wire Temperatursensor: Komplett Guide
Introduktion till One Wire Temperatursensorer
One Wire-protokollet är ett smart sätt att kommunicera med sensorer över en enda dataledning. Detta gör det extremt praktiskt för att koppla flera sensorer till en mikrokontroller som en Raspberry Pi. En av de mest populära One Wire-sensorerna är DS18B20, en digital temperatursensor som ger exakta temperaturavläsningar.
Varför använda en One Wire temperatursensor med din Raspberry Pi? Svaret är enkelt: flexibilitet och noggrannhet. Dessa sensorer är idealiska för allt från hemautomation till industriella övervakningssystem.
Nödvändiga Komponenter
- En Raspberry Pi (valfri modell)
- En DS18B20 temperatursensor
- En 4.7kΩ resistor
- Jumperkablar
- Ett breadboard (valfritt, men rekommenderas)
Koppla In Sensorn till Raspberry Pi

För att koppla in din DS18B20-sensor till din Raspberry Pi, följ dessa steg:
- Anslut VCC-pinnen (röd kabel) på sensorn till 3.3V-pinnen på Raspberry Pi.
- Anslut GND-pinnen (svart kabel) på sensorn till GND-pinnen på Raspberry Pi.
- Anslut DATA-pinnen (gul eller vit kabel) på sensorn till en GPIO-pin på Raspberry Pi (t.ex. GPIO4).
- Anslut en 4.7kΩ resistor mellan DATA-pinnen och 3.3V-pinnen.

Detta skapar en pull-up resistor som är nödvändig för att One Wire-kommunikationen ska fungera korrekt.
Aktivera One Wire-protokollet på Raspberry Pi
Innan du kan läsa av temperaturen, måste du aktivera One Wire-protokollet på din Raspberry Pi. Detta görs genom att redigera `config.txt`-filen:
- Öppna terminalen på din Raspberry Pi.
- Skriv `sudo nano /boot/config.txt` och tryck Enter.
- Lägg till raden `dtoverlay=w1-gpio,gpiopin=4` (om du använder GPIO4) i slutet av filen.
- Spara filen (Ctrl+X, Y, Enter) och starta om din Raspberry Pi med `sudo reboot`.
Läsa Temperatur med Python
Nu är det dags att skriva lite Python-kod för att läsa av temperaturen från din DS18B20-sensor.
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)
Denna kod läser av temperaturen i Celsius och skriver ut den i terminalen varje sekund.
Avancerade Användningsområden
Med en Raspberry Pi och en One Wire temperatursensor kan du bygga avancerade system för:
- Hemautomation (övervakning av rumstemperatur, kylskåp, etc.)
- Växthusövervakning (temperatur och luftfuktighet)
- Industriell övervakning (maskintemperatur, processkontroll)
- Väderstationer (utomhustemperatur)

Tips och Tricks

- Använd långa kablar för att placera sensorn på avlägsna platser.
- Kalibrera sensorn för att öka noggrannheten.
- Använd flera sensorer för att övervaka olika platser samtidigt.
- Integrera sensorn med en databas för att lagra och analysera temperaturdata.


Slutsats
Att använda en One Wire temperatursensor med en Raspberry Pi är ett utmärkt sätt att lära sig om elektronik och programmering. Med rätt kunskap kan du bygga avancerade system för temperaturövervakning och kontroll.