|

Czujnik temperatury DS18B20 wodoodporny – jak działa i gdzie się sprawdzi?

Czujnik temperatury DS18B20 wodoodporny – jak działa i gdzie się sprawdzi?

Pomiar temperatury to jedno z tych zadań, które w projekcie elektronicznym pojawia się prędzej czy później. I zwykle nie chodzi o temperaturę powietrza w pokoju, trzeba zmierzyć wodę w akwarium, zasobnik CWU, glebę w tunelu foliowym albo powietrze na zewnątrz, gdzie zimą wieje, a latem leje.

W takich warunkach czujnik w formie modułu na płytce drukowanej odpada. Potrzebna jest sonda, którą można zanurzyć, wsadzić w ziemię albo przykręcić do rury i właśnie taką formę ma wodoodporna wersja DS18B20: scalony czujnik cyfrowy zamknięty w metalowej tulei, wyprowadzony na metrowym przewodzie.

To najpopularniejszy cyfrowy czujnik temperatury w elektronice hobbystycznej i profesjonalnej, i nie bez powodu. Zobaczmy, dlaczego 🤔 oraz o czym trzeba pamiętać, żeby działał tak, jak obiecuje nota katalogowa.

Czujnik dostępny jest w naszej ofercie w trzech wariantach:
Czujnik temperatury DS18B20 wodoodporny przewód 1m
Czujnik temperatury DS18B20 wodoodporny przewód 2m
Czujnik temperatury DS18B20 wodoodporny przewód 3m

Dlaczego czujnik cyfrowy, a nie termistor?

Klasyczne rozwiązania analogowe termistor NTC czy czujnik LM35 wymagają przetwornika ADC, kalibracji i przeliczania napięcia na temperaturę. Do tego dochodzą wszystkie uroki toru analogowego: rezystancja przewodów, zakłócenia, dryf napięcia odniesienia.

DS18B20 przenosi cały ten problem do środka obudowy. Konwersja odbywa się w czujniku, a na zewnątrz wychodzi już gotowa wartość temperatury w postaci cyfrowej. Nie ma ADC do skonfigurowania, nie ma wzorów do wyprowadzania, nie ma znaczenia, czy przewód ma 20 cm czy 5 m – odczyt jest ten sam.

Do tego dochodzą trzy rzeczy, które w praktyce robią ogromną różnicę:

  • fabryczna kalibracja – czujnik podaje temperaturę w stopniach Celsjusza z dokładnością ±0,5 °C w zakresie -10 ÷ +85 °C, bez żadnych zabiegów z naszej strony,
  • jeden pin danych – niezależnie od tego, ile czujników podłączysz,
  • unikalny adres – każdy egzemplarz ma zapisany na stałe 64-bitowy numer seryjny.

Jak działa interfejs 1-Wire?

Nazwa mówi wszystko: cała komunikacja odbywa się po jednej linii sygnałowej, po której dane płyną w obu kierunkach. Do tego dochodzi masa i w typowym połączeniu zasilanie, w sumie trzy przewody, z czego tylko jeden pin mikrokontrolera.

Magistrala pracuje w konfiguracji otwartego kolektora. Oznacza to, że ani mikrokontroler, ani czujnik nie wystawiają na linię stanu wysokiego, potrafią ją jedynie ściągnąć do masy. Stan wysoki zapewnia zewnętrzny rezystor pull-up 4,7 kΩ, podłączony między linię danych a zasilanie.

I tu pojawia się najczęstsza przyczyna nieudanego pierwszego uruchomienia:

Bez rezystora pull-up 4,7 kΩ magistrala 1-Wire nie zadziała. Czujnik nie zostanie wykryty albo odczyty będą losowe – najczęściej -127 °C lub 85 °C.

Wartość 4,7 kΩ to standard z noty katalogowej i w większości zastosowań nie ma sensu jej zmieniać. Rezystor wystarczy jeden na całą magistralę, niezależnie od liczby podłączonych czujników.

Adresacja – dlaczego można podłączyć wiele czujników na jednym pinie

Każdy DS18B20 ma zapisany w pamięci ROM unikalny, 64-bitowy adres. Mikrokontroler potrafi „przeszukać” magistralę, znaleźć wszystkie obecne na niej czujniki i następnie odpytywać je pojedynczo, odwołując się do konkretnego adresu.

W praktyce oznacza to, że na jednym pinie GPIO można zbudować całą sieć pomiarową np. pięć sond rozłożonych po instalacji grzewczej. Trzeba tylko wcześniej odczytać adresy czujników i przypisać je do miejsc, w których zostały zamontowane, bo sama sonda niczym się nie wyróżnia.

Rozdzielczość i czas konwersji

DS18B20 pozwala wybrać rozdzielczość pomiaru, a ta bezpośrednio wpływa na to, jak długo trwa konwersja:

RozdzielczośćKrok pomiaruCzas konwersji
9 bitów0,5 °Cok. 94 ms
10 bitów0,25 °Cok. 188 ms
11 bitów0,125 °Cok. 375 ms
12 bitów0,0625 °Cok. 750 ms

Domyślnie czujnik pracuje w trybie 12-bitowym, czyli najdokładniejszym – i najwolniejszym. Te 750 ms to najczęstsze zaskoczenie przy pierwszym projekcie: po wydaniu polecenia pomiaru trzeba faktycznie odczekać, zanim wynik będzie gotowy.

Jeżeli monitorujesz temperaturę pomieszczenia albo zbiornika wody, rozdzielczość 9- lub 10-bitowa zwykle w pełni wystarcza, a odczyt przyspiesza kilkukrotnie. Warto o tym pamiętać zwłaszcza w projektach bateryjnych, gdzie każda milisekunda pracy procesora to zużyta energia.

Budowa sondy wodoodpornej

Wersja wodoodporna to ten sam scalony czujnik, tylko ubrany w praktyczną obudowę.

Metalowa tuleja

Właściwy element pomiarowy siedzi w metalowej tulei zalanej masą termoprzewodzącą. Taka konstrukcja pozwala zanurzyć sondę w cieczy, wbić ją w glebę albo docisnąć do rury bez ryzyka, że wilgoć dostanie się do struktury układu.

Metalowa obudowa ma jeszcze jedną zaletę: dobrze przewodzi ciepło, więc sonda stosunkowo szybko dochodzi do temperatury otoczenia. „Stosunkowo” – bo masa termiczna tulei sprawia, że reakcja jest wolniejsza niż w przypadku czujnika w obudowie TO-92. Przy pomiarach powietrza mówimy o kilkunastu sekundach do ustabilizowania wskazania, w cieczy jest wyraźnie szybciej.

Przewód i wyprowadzenia

Sonda wyposażona jest w przewód z trzema żyłami:

KolorFunkcja
czerwonyVCC zasilanie 3,3 ÷ 5 V
czarnyGND
biały lub żółtyDATA 1-Wire

Kolor żyły danych zależy od partii produkcyjnej – spotyka się zarówno biały, jak i żółty. Nie jest to wada, ale warto rzucić okiem na przewód przed lutowaniem, szczególnie jeżeli montujesz kilka sond z różnych dostaw.

Ważne: metrowy przewód to nie limit. Magistrala 1-Wire przy standardowym pull-upie 4,7 kΩ pracuje stabilnie na dystansach rzędu kilku metrów, a przy zachowaniu odpowiednich zasad, nawet kilkudziesięciu.

Zasilanie – normalne czy pasożytnicze?

DS18B20 obsługuje dwa tryby zasilania.

Tryb normalny to klasyczne trzy przewody: VCC, GND i DATA. Czujnik pobiera energię z linii zasilania, a linia danych zajmuje się wyłącznie komunikacją. Prosto, przewidywalnie, bez niespodzianek.

Tryb pasożytniczy pozwala zrezygnować z przewodu zasilającego czujnik ładuje wtedy wewnętrzny kondensator z linii danych w przerwach między transmisjami. Brzmi elegancko i faktycznie oszczędza jedną żyłę, ale ma swoją cenę: podczas konwersji czujnik pobiera znacznie większy prąd, wymaga to specjalnej obsługi po stronie mikrokontrolera i jest zdecydowanie bardziej wrażliwe na długie przewody oraz zakłócenia.

Praktyczna rada: jeżeli nie masz naprawdę dobrego powodu, zostań przy trybie normalnym. Jedna żyła więcej w przewodzie to niewielka cena za spokój.

Sam pobór prądu jest w obu przypadkach minimalny w trybie czuwania czujnik pobiera pojedyncze mikroampery, a większe prądy pojawiają się tylko na czas konwersji. Dla projektów bateryjnych to bardzo dobra wiadomość.

Zakres pomiarowy i dokładność

Czujnik mierzy temperaturę w zakresie -55 ÷ +125 °C, ale dokładność nie jest w całym tym zakresie jednakowa:

  • -10 ÷ +85 °C → ±0,5 °C, czyli zakres, w którym czujnik jest naprawdę dobry,
  • -30 ÷ +100 °C → typowo ok. ±1 °C,
  • skrajne fragmenty zakresu → nawet ±2 °C.

W praktyce oznacza to, że do monitorowania wody, pomieszczeń, gleby czy instalacji grzewczej DS18B20 nadaje się wzorowo. Jeżeli natomiast celujesz w pomiary bliskie granicom zakresu i zależy Ci na wysokiej dokładności, warto to uwzględnić w projekcie.

Jest jeszcze jedna rzecz, o której nota katalogowa samego układu nie powie, a którą trzeba wziąć pod uwagę w wersji z przewodem:

Górna granica 125 °C dotyczy struktury czujnika, nie izolacji przewodu. Typowa izolacja PVC nie jest przeznaczona do pracy w tak wysokich temperaturach. Przy pomiarach powyżej ok. 100 °C zwracaj uwagę, aby wysoka temperatura obejmowała wyłącznie metalową tuleję, a nie przewód.

Długie przewody i magistrala wielu czujników

Metrowy przewód sondy często okazuje się za krótki i to zupełnie normalne, że się go przedłuża. Kilka zasad, które pozwalają zrobić to bez problemów:

Używaj skrętki. Para DATA + GND skręcona razem znacznie lepiej znosi zakłócenia niż luźne żyły. Przy przebiegach wzdłuż instalacji elektrycznej warto sięgnąć po przewód ekranowany.

Prowadź magistralę liniowo. Topologia gwiazdy, w której z jednego punktu odchodzi kilka długich odnóg, to najgorszy możliwy układ dla 1-Wire. Lepiej jest prowadzić jedną magistralę i „doczepiać” do niej czujniki krótkimi odcinkami.

Przy długich odcinkach zmniejsz rezystor pull-up. Na dłuższych trasach pojemność przewodu spowalnia narastanie zboczy sygnału. Zejście z 4,7 kΩ do np. 2,2 kΩ często ratuje sytuację, kosztem nieco większego poboru prądu.

Sprawdzaj poprawność odczytu. Odczyty -127 °C, 85 °C lub 0 °C pojawiające się losowo to klasyczny objaw problemów z magistralą, a nie awarii czujnika. Warto odrzucać takie wartości w kodzie i sprawdzać sumę kontrolną CRC, którą czujnik dołącza do transmisji.

Gdzie sprawdzi się DS18B20 w wersji wodoodpornej?

Lista zastosowań jest długa i to właśnie ona tłumaczy popularność tego czujnika:

  • pomiar temperatury wody w akwarium, stawie czy basenie,
  • monitoring instalacji CO i CWU (temperatura zasilania, powrotu, zasobnika),
  • sterowanie pompą ciepła, kotłem lub kolektorem solarnym,
  • pomiar temperatury gleby w ogrodzie, szklarni i tunelu foliowym,
  • stacje pogodowe – czujnik temperatury zewnętrznej,
  • monitoring chłodni, lodówek i piwnic,
  • browarnictwo domowe i fermentacja,
  • serwerownie i szafy rack – kontrola temperatury w kilku punktach na jednej magistrali,
  • systemy smart home i automatyka budynkowa,
  • rejestratory danych (data loggery) zasilane bateryjnie,
  • pomiar temperatury silników, radiatorów i pakietów akumulatorów.

O czym pamiętać przy pracy z DS18B20

Rezystor pull-up 4,7 kΩ jest obowiązkowy. Punkt, który powtarzamy nie bez powodu to zdecydowanie najczęstsza przyczyna „niedziałającego” czujnika.

Zachowaj polaryzację zasilania. Podanie napięcia odwrotnie może uszkodzić czujnik. Kolory żył są opisane wyżej, warto je sprawdzić przed włączeniem.

Odczekaj na konwersję. W trybie 12-bitowym pomiar trwa do 750 ms. Odczyt bezpośrednio po wydaniu polecenia zwróci starą lub nieprawidłową wartość.

Nie odpytuj czujnika częściej, niż to potrzebne. Temperatura wody w zasobniku nie zmienia się dziesięć razy na sekundę. Odczyt raz na kilka-kilkadziesiąt sekund to zwykle rozsądny kompromis, a przy zasilaniu bateryjnym oszczędza sporo energii.

Zapewnij dobry kontakt termiczny. Jeżeli mierzysz temperaturę rury lub radiatora, sama sonda przyłożona „na sucho” pokaże wartość zaniżoną. Pasta termoprzewodząca i opaska dociskowa robią tu ogromną różnicę.

Specyfikacja techniczna

ParametrWartość
Układ czujnikaDS18B20
Napięcie zasilania3,3 ÷ 5 V
Zakres pomiarowy-55 ÷ +125 °C
Dokładność±0,5 °C -10 ÷ +85 °C
Rozdzielczość9 – 12 bitów konfigurowalna
Czas konwersjido 750 ms 12 bitów
Interfejs1-Wire OneWire
Adres czujnikaunikalny, 64-bitowy
Wymagany rezystor pull-up4,7 kΩ
Obudowa sondymetalowa, wodoodporna
WyprowadzeniaVCC – czerwony, GND – czarny, DATA – biały lub żółty

Produkt dostępny w naszej ofercie 🛒

Wodoodporny czujnik temperatury DS18B20 oraz pozostałą elektronikę prezentowaną w artykule znajdziesz oczywiście w naszym sklepie sklep.msalamon.pl

Podsumowanie

DS18B20 w wersji wodoodpornej to jeden z tych elementów, które po prostu warto mieć pod ręką. Cyfrowy odczyt bez ADC i kalibracji, dokładność ±0,5 °C w najczęściej używanym zakresie, praca na jednym pinie mikrokontrolera, możliwość podłączenia wielu sond na wspólnej magistrali i obudowa, której nie straszna woda ani ziemia to zestaw cech trudny do pobicia w tej cenie.

Warunek prawidłowej pracy jest w zasadzie jeden i wraca w tym artykule regularnie: rezystor pull-up 4,7 kΩ między linią danych a zasilaniem. Dodaj do tego cierpliwość na 750 ms konwersji, porządnie wykonane połączenia i skrętkę przy dłuższych przewodach, a otrzymasz czujnik, który będzie pracował latami bez zaglądania do niego.


Uwaga ⚠️

  • Do prawidłowej pracy czujnika konieczny jest rezystor pull-up o wartości 4,7 kΩ podłączony między linię sygnałową DATA a linię zasilania.
  • Odwrotne podłączenie polaryzacji zasilania może uszkodzić czujnik.
  • Wodoodporna jest metalowa tuleja sondy końcówki przewodu oraz połączenia lutowane należy zabezpieczyć przed wilgocią.
  • Górna granica zakresu pomiarowego 125 °C dotyczy struktury czujnika; izolacja przewodu ma niższą dopuszczalną temperaturę pracy.
  • Urządzenie jest przeznaczone dla osób posiadających podstawową wiedzę z elektroniki oraz umiejętność lutowania i łączenia układów. Firma nie ponosi odpowiedzialności za nieprawidłowo wykonaną instalację.

FAQ – czujnik DS18B20 wodoodporny

1. Czy rezystor pull-up 4,7 kΩ jest naprawdę konieczny? Tak. Magistrala 1-Wire pracuje w konfiguracji otwartego kolektora – bez rezystora podciągającego linia danych nie osiągnie stanu wysokiego i komunikacja nie zadziała. Rezystor podłączamy między linię DATA a zasilanie i wystarczy jeden na całą magistralę.

2. Ile czujników mogę podłączyć do jednego pinu? Teoretycznie bardzo wiele – każdy czujnik ma własny 64-bitowy adres. W praktyce ograniczeniem jest długość i jakość magistrali; kilka do kilkunastu sond na jednym pinie to układ, który działa bez problemów.

3. Czy mogę przedłużyć metrowy przewód? Tak, i jest to bardzo częsta praktyka. Warto użyć skrętki lub przewodu ekranowanego, prowadzić magistralę liniowo, a przy dłuższych odcinkach rozważyć zmniejszenie rezystora pull-up np. do 2,2 kΩ.

4. Czy czujnik można zanurzyć w wodzie? Metalowa tuleja jest wodoodporna i przystosowana do pracy w cieczach. Miejsce połączenia przewodu z tuleją oraz same końcówki przewodu należy jednak chronić od wilgoci – to nie jest sonda przystosowana do zanurzania „w całości”, w tym razem z przewodem.

5. Czujnik pokazuje -127 °C albo 85 °C – co jest nie tak? To typowe wartości błędu, a nie rzeczywisty pomiar. Najczęstsze przyczyny: brak rezystora pull-up, zbyt krótki czas oczekiwania na konwersję, problem z zasilaniem lub zakłócenia na długim przewodzie. Warto też sprawdzać CRC odczytanych danych.

6. Czy DS18B20 działa z Arduino, ESP32 i STM32? Tak, z każdym z nich. Czujnik pracuje w zakresie 3,3 ÷ 5 V, więc bezpośrednio łączy się zarówno z układami 5 V Arduino Uno, jak i 3,3 V ESP32, ESP8266, STM32. Pamiętaj tylko, żeby rezystor pull-up podłączyć do tego samego napięcia, na którym pracuje mikrokontroler.

7. Czy warto korzystać z trybu pasożytniczego? Tylko jeżeli naprawdę zależy Ci na oszczędzeniu jednej żyły. Tryb pasożytniczy jest bardziej wymagający w obsłudze i wrażliwszy na długie przewody. W typowym projekcie zdecydowanie lepiej wybrać zasilanie normalne, trzema przewodami.

8. Jak szybko czujnik reaguje na zmianę temperatury? Sam układ mierzy szybko, ale metalowa tuleja ma pewną masę termiczną. W cieczy stabilizacja wskazania zajmuje kilka sekund, w powietrzu – kilkanaście lub więcej. Do pomiarów bardzo szybkich zmian lepiej sprawdzi się czujnik w obudowie bez tulei.


Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇


Podobne wpisy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *