Domoticz cz. 4: podłączenie termometru DS18B20 do Raspberry Pi

Domoticz cz. 4: podłączenie termometru DS18B20 do Raspberry Pi

Pomiar temperatury to jeden z pierwszych dodatków do domoticza. Zadanie jest bardzo proste i pozwala w wersji przewodowej na podłączenie kilku termometrów przez system 1-wire. 1-wire oznacza, że termometr posiada oprócz zasilania – jeden przewód fizyczny, przez który przekazuje dane, a magistrala 1-wire obsługuje weryfikację przekazywanych danych.

Co nam będzie potrzebne?

Hardware:

  • termometr o symbolu DS18B20 (Dallas) – występuje w różnych obudowach – podstawowa to chip z trzema wyprowadzeniami. Zakres mierzonych temperatur to -55 stopni Celsjusza do +125, jednak wiarygodny pomiar jest do około +95 – +100 stopni Celsjusza.
  • rezystor 4,7kOm – tzw. podciągający pin danych
  • Raspberry Pi (dowolne – A, B, B+, 2 lub 3) z pierwszego wpisu

Software:

  • domoticz zainstalowany w pierwszym kroku

Do dzieła!

Termometr potrafi współpracować w szeregu na dość długim przewodzie, będąc zasilany tylko z Raspberry Pi, z PIN 3,3V. Oznacza to, że możemy na np: 20m umieścić 5 takich termometrów – na przykład do pomiaru nagrzewnicy, oraz rekuperatora, który posiada 2 wejścia i 2 wyjścia – pomiar pozwala określić jego skuteczność, dzięki m.in. czterem wykresom domoticz na jednej skali.

Po pierwsze należy wprowadzić zmiany w procedurze uruchamiania naszego Raspberry Pi z Raspbery Pi OS (poprzednio Raspbianem) w wersji Wheezy lub Jessie - albo najnowszej. Do pliku /boot/config.txt należy dopisać linię:

dtoverlay=w1-GPIO,gpiopin=4

Uruchamiamy ponownie Pi i podłączamy termometr – między pin danych (czerwony) i +3,3V (biały) wstawiamy rezystor 4,7kOm – tak jak na pierwszym zdjęciu, tak aby podciągnąć pin z danymi i ustalić sygnał. Pin GND dostał niebieski kabel. Następnie podłączamy nasz termometr do Raspberry Pi:
PB210009
Pin +3,3V do +3,3V Raspberry Pi, Pin Data (środkowy na termometrze) do GPIO#4, a GND do masy (niebieski). Jeśli masz ich więcej (na przykład 5) – podłącz je równolegle.
Teraz na konsoli sprawdzamy czy termometr pojawił się w systemie:

cat /sys/bus/w1/devices/28-*/w1_slave

W wyniku powinieneś otrzymać odczyt surowy temperatury – w przykładzie mamy 5 termometrów:

3d 01 4b 46 7f ff 0c 10 75 : crc=75 YES
3d 01 4b 46 7f ff 0c 10 75 t=19812
3b 01 4b 46 7f ff 0c 10 e6 : crc=e6 YES
3b 01 4b 46 7f ff 0c 10 e6 t=19687
39 01 4b 46 7f ff 0c 0c 5e : crc=5e YES
39 01 4b 46 7f ff 0c 0c 5e t=19562
35 01 4b 46 7f ff 0c 10 5f : crc=5f YES
35 01 4b 46 7f ff 0c 10 5f t=19312
26 02 4b 46 7f ff 0c 0c b7 : crc=b7 YES
26 02 4b 46 7f ff 0c 0c b7 t=34375

Jeśli masz jeden termometr – będzie jeden wpis. Wpis crc=xx YES – oznacza że odczyt jest poprawny.
Pozostaje dodanie obsługi 1-wire do domoticz, w zakładce: Ustawienia->Sprzęt:
1-wire-domoticz
Nasze termometry pojawią się od razu w Ustawienia->Urządzenia:
1-wire-domoticz-termometry
To wszystko – pozostaje dodać je do używanych czujników, tak aby pojawiły się w zakładce Temperatura.

Previous Post Next Post