Czujnik temperatury DS18B20 to jeden z najpopularniejszych elementów wykorzystywanych w projektach opartych na Raspberry Pi. Wyróżnia się niezawodnością, łatwą integracją i szerokim zakresem zastosowań – od IoT po automatykę domową. Ten przewodnik pokazuje instalację, konfigurację i obsługę czujnika na platformie Raspberry Pi krok po kroku.

Co to jest czujnik DS18B20?

DS18B20 to cyfrowy czujnik temperatury komunikujący się przez magistralę 1‑Wire. Do poprawnej pracy wymaga jedynie rezystora pull‑up i trzech przewodów, dzięki czemu integracja jest wyjątkowo prosta.

Kluczowe parametry techniczne czujnika to:

  • zakres napięcia zasilającego – od 3,0 do 5,5 V;
  • dokładność pomiaru – 0,5°C dla zakresu -10 do 85°C;
  • pełny zakres pomiarowy – od -55 do 125°C;
  • interfejs komunikacji – 1‑Wire.

Uniwersalność 1‑Wire czyni DS18B20 idealnym dla urządzeń chłodzących i grzewczych, termometrów i stacji pogodowych, a także systemów klimatyzacji i AGD.

Niezbędne komponenty i przygotowanie

Lista materiałów

Do uruchomienia projektu z czujnikiem DS18B20 na Raspberry Pi przygotuj:

  • minikomputer Raspberry Pi – działa na wszystkich wersjach (w tym B+, Zero i nowszych modelach);
  • czujnik temperatury DS18B20 lub DS18B20+ – wersja hermetyczna sprawdzi się w trudniejszych warunkach;
  • rezystor pull‑up 4,7 kΩ – łączący linię danych z zasilaniem 3,3 V;
  • przewody połączeniowe – żeńsko‑męskie lub żeńsko‑żeńskie, w zależności od montażu;
  • płytka stykowa – opcjonalnie, ułatwia montaż.

Minimalny zestaw elementów sprawia, że rozwiązanie jest dostępne zarówno dla hobbystów, jak i profesjonalistów.

Schemat podłączenia

Prawidłowe podłączenie czujnika do Raspberry Pi jest kluczowe dla stabilnego działania. DS18B20 posiada trzy wyprowadzenia o funkcjach:

  • nóżka prawa – zasilanie (VDD, 3,3 V);
  • nóżka lewa – masa (GND);
  • nóżka środkowa – linia danych (DQ).

Dla pełnej jasności zobacz mapowanie połączeń w praktyce:

Wyprowadzenie DS18B20 Funkcja Połączenie na Raspberry Pi
Prawa nóżka (VDD) Zasilanie 3,3 V (dowolny pin 3V3)
Lewa nóżka (GND) Masa GND (dowolny pin GND)
Środkowa (DQ) Dane 1‑Wire GPIO 4 (BCM), pin fizyczny 7

Procedura podłączenia do Raspberry Pi:

  1. Wyprowadź z płytki Raspberry Pi 3,3 V oraz GND na płytkę stykową;
  2. Podłącz VDD czujnika do linii 3,3 V;
  3. Podłącz GND czujnika do masy (GND);
  4. Podłącz linię DQ do GPIO 4 (BCM) na Raspberry Pi;
  5. Krytycznie ważne – połącz 3,3 V z GPIO 4 rezystorem 4,7 kΩ.

Rezystor pull‑up jest niezbędny dla poprawnego działania magistrali 1‑Wire i nie wolno go pomijać.

Konfiguracja systemu operacyjnego

Aktywacja interfejsu 1‑Wire

Pierwszy etap to włączenie obsługi 1‑Wire w systemie Raspberry Pi. Otwórz terminal i edytuj plik konfiguracyjny:

sudo nano /boot/config.txt

Następnie dodaj na końcu pliku tę linię:

dtoverlay=w1-gpio,gpiopin=4

Zapisz zmiany i wyjdź: [CTRL] + [X], następnie [Y] i [ENTER].

Alternatywnie skorzystaj z kreatora konfiguracji:

sudo raspi-config

Załadowanie modułów systemu

Po restarcie może być konieczne ręczne doładowanie modułów 1‑Wire. Wykonaj:

sudo modprobe w1-gpio
sudo modprobe w1-therm

Aby ładowały się automatycznie przy starcie, dopisz je do pliku /etc/modules:

sudo nano /etc/modules

Dodaj na końcu (każdy w osobnej linii):

w1-gpio
w1-therm

Weryfikacja konfiguracji

Sprawdź, czy moduły zostały poprawnie załadowane:

lsmod | grep w1

W wynikach powinny pojawić się moduły w1_gpio oraz w1_therm – to znak, że konfiguracja przebiegła prawidłowo.

Restart systemu

Po zmianach w plikach konfiguracyjnych wykonaj restart:

sudo reboot

Po restarcie Raspberry Pi jest gotowe do komunikacji z czujnikiem DS18B20.

Odczyt temperatury z czujnika

Lokalizacja czujnika w systemie plików

Po konfiguracji czujnik będzie widoczny w systemie plików. Przejdź do katalogu urządzeń 1‑Wire:

cd /sys/bus/w1/devices

Wyświetl zawartość katalogu:

ls

Powinieneś zobaczyć folder podobny do 28-021562ad4eff lub 10-000823edbd8f. Numery po myślniku to unikalny numer seryjny czujnika (różny dla każdego egzemplarza).

Odczyt wartości temperatury

Wejdź do katalogu czujnika (zastąp identyfikator własnym):

cd /sys/bus/w1/devices/28-021562ad4eff

Wyświetl zawartość pliku z odczytem:

cat w1_slave

Plik zwraca dwie linie, gdzie wartość po t= to temperatura w 1/1000°C (np. 23437 oznacza 23,437°C). Dla szybkiego odczytu możesz użyć jednolinijkowego polecenia:

cat /sys/bus/w1/devices/28-021562ad4eff/w1_slave | awk -F= '/t=/{printf "%.3f°C\n",$2/1000}'

Integracja z systemami automatyki domowej

Domoticz

Czujnik DS18B20 bezproblemowo współpracuje z Domoticz. Dodaj czujnik w panelu konfiguracyjnym:

  1. Przejdź do Konfiguracja > Sprzęt;
  2. Dodaj nowe urządzenie i nadaj mu nazwę;
  3. Jako typ wybierz 1‑Wire (System);
  4. Zapisz ustawienia.

Po chwili czujnik pojawi się w Konfiguracja > Urządzenia. W zakładce Temperatura możesz wykonać najważniejsze akcje:

  • dodać czujnik na pulpit główny,
  • skonfigurować powiadomienia,
  • przeglądać historyczne wykresy temperatur.

Dzięki temu zyskujesz zdalny podgląd temperatury w aplikacji webowej lub mobilnej.

Praktyczne zastosowania

Interfejs 1‑Wire czyni DS18B20 elastycznym rozwiązaniem od małych projektów po systemy wielopunktowe. Przykładowe zastosowania:

  • systemy grzewcze i chłodzące – automatyczne sterowanie temperaturą w pomieszczeniach;
  • stacje pogodowe – pomiar temperatury otoczenia w czasie rzeczywistym;
  • systemy monitoringu – ciągłe nadzorowanie warunków w serwerowniach i magazynach;
  • urządzenia AGD – kontrola temperatury w lodówkach, piekarnikach i innych sprzętach;
  • projekty edukacyjne – nauka elektroniki i programowania.

Zaawansowane konfiguracje

Wielokrotne czujniki

Magistrala 1‑Wire obsługuje jednoczesne podłączenie wielu czujników DS18B20 do jednego pinu GPIO. Każdy czujnik ma unikalny identyfikator, co umożliwia równoległe odczyty w różnych punktach instalacji.

Alternatywne piny GPIO

Domyślnie używany jest GPIO 4, ale możesz wskazać inny pin w pliku /boot/config.txt:

dtoverlay=w1-gpio,gpiopin=XX

gdzie XX to numer wybranego pinu w numeracji BCM.

Expander portów GPIO

Dla rozbudowanych instalacji rozważ użycie expandera portów GPIO – zwiększa liczbę dostępnych linii i upraszcza okablowanie w rozległych topologiach.

Rozwiązywanie problemów

Jeśli czujnik nie jest widoczny w systemie, sprawdź kolejno:

  1. Połączenia fizyczne – upewnij się, że przewody są stabilnie i poprawnie wpięte;
  2. Rezystor pull‑up – potwierdź obecność 4,7 kΩ między 3,3 V a linią danych DQ;
  3. Zasilanie – zweryfikuj 3,3 V na pinie VDD czujnika;
  4. Moduły systemu – załaduj ponownie w1-gpio i w1-therm i sprawdź lsmod;
  5. Plik konfiguracyjny – upewnij się, że wpis dtoverlay=w1-gpio znajduje się w /boot/config.txt.