Raspberry Pi B+ – termometr DS18B20

Dziś dotarło do mnie moje drugie RPi (wersja B+), oraz kilka dodatkowych rzeczy do niego jak płytka stykowa, rezystory czy wspomniany w tytule termometr (a właściwie sonda wodoodporna DS18B20). Pierwszą rzeczą jaką zrobiłem po pracy to podłączanie tego wszystkiego ;P

 

Najważniejsze to posiadanie rezystora 4.7kΩ (4700 ohmów). Bez tego lepiej nie podłączać tego czujnika. Jeżeli nie macie pod ręką tego konkretnego to można łączyć szeregowo mniejsze rezystory (np. 2x 2.2kΩ).

Płytka stykowa użyta została dla mojej wygody a jak sie ktoś uprze to może ją pominąć.

Podłączanie pinów (podane kolor dotyczą mojego przypadku):
Pin 1 podłączamy do P1-06 GND (Ground) - kolor czarny
Pin 2 podłączamy do P1-07 GPIO4 - kolor biały
Pin 3 podłączamy do P1-01 3.3V - kolor czerwony

Rezystor musi znaleźć się pomięcy Pinem 2 oraz Pinem 3.

Schemat podłączenia czujki

Bardzo ważnym jest aby nie pomieszać pinów - ja niestety tak zrobiłem 😛
Kiedy już podłączycie wszystko zgodnie ze schematem można uruchomić Raspberry Pi (i znów, ja to zrobiłem na żywym organiźmie czego też nie polecam)

Nowe projekty warto zacząć od drobnej aktualizacji więc:

sudo apt-get update
sudo apt-get upgrade

Aby skonfigurować swój czujnik należy wpisać te komendy w konsoli:

sudo modprobe w1-gpio
sudo modprobe w1-therm

Jak wszystko będzie ok to urządzenie zacznie przesyłać dane przez port GPIO4. Poniższa komendy pozwolą wam dostać się do danych z czujnika:

cd /sys/bus/w1/devices ls

Wyświetli się nam w1_bus_master1 oraz 28-xxxxxxxx. Jesteśmy zainteresowani tym drugim. W moim konkretnym przypadku było to 28-0014112cc6ff więc będę posiłkował się tą wartością jednak dla waszego konkretnego czujnika ta wartość będzie inna i należy ją zmienić na właściwą dla Was.

cd 28-0014112cc6ff
ls
cat w1_slave

To nam zwroci ciag znakow ale na koncu jest to co jest najwazniejsze tzn. t=12345. Aby uzyskać temperaturę w 'normalnym' zapisie należy tą wartość podzielić przez 1000. Podana temperatura jest w stopniach Celcjusza. Aby dokonać ponownego odczytu należy wcisnąć strzałkę w górę i enter. (ponownie komenda cat w1_slave)

Źródło: raspberrypi-spy.co.uk