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:
- Wyprowadź z płytki Raspberry Pi 3,3 V oraz GND na płytkę stykową;
- Podłącz VDD czujnika do linii 3,3 V;
- Podłącz GND czujnika do masy (GND);
- Podłącz linię DQ do GPIO 4 (BCM) na Raspberry Pi;
- 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:
- Przejdź do Konfiguracja > Sprzęt;
- Dodaj nowe urządzenie i nadaj mu nazwę;
- Jako typ wybierz 1‑Wire (System);
- 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:
- Połączenia fizyczne – upewnij się, że przewody są stabilnie i poprawnie wpięte;
- Rezystor pull‑up – potwierdź obecność 4,7 kΩ między 3,3 V a linią danych DQ;
- Zasilanie – zweryfikuj 3,3 V na pinie VDD czujnika;
- Moduły systemu – załaduj ponownie
w1-gpioiw1-thermi sprawdźlsmod; - Plik konfiguracyjny – upewnij się, że wpis
dtoverlay=w1-gpioznajduje się w /boot/config.txt.