W kolejnej, trzeciej części przygód z Domoticzem, opisuję jak podłączyć czujniki DS18B20 (temperatura) oraz BME280 (temperatura, wilgotność, ciśnienie). Są one wpinane bezpośrednio w płytkę Raspberry Pi za pośrednictwem przewodów.
Cyfrowy czujnik temperatury DS18B20 korzystający z magistrali 1-wire to dość znany element. Opisywałem go tutaj czy tutaj. By odczytywać z niego temperaturę w Raspbianie, musimy zacząć od włączenia obsługi magistrali one-wire. W tym celu odpalamy raspi-config z uprawnieniami roota, czyli
sudo raspi-config
Dalej przechodzimy do 5 pozycji Interfacing Options:
Z kolejnego menu wybieramy P7 1-Wire
Enter, potwierdzenie i 1-wire włączone 🙂
Możemy sprawdzić, czy mamy załadowany moduł odpowiedzialny, za obsługę naszego DS18B20, w terminalu wpisujemy:
lsmod
I szukamy modułów w1_therm i w1_gpio:
Jeśli są, to podpinamy DS18B20 do płytki Raspberry Pi. Dla przypomnienia poglądowy rysunek jak to powinno wyglądać:
Między zasilanie +3V3 i linię danych (GPIO4) koniecznie trzeba wpiąć rezystor podciągający 4,7kΩ. Dla ułatwienia podłączenia, przylutowałem czujnik, opornik i 3 goldpiny do kawałka płytki uniwersalnej:
Jeśli podłączyliśmy czujnik prawidłowo, można z poziomu terminala sprawdzić, czy jest on widoczny w Raspbianie:
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
Po zatwierdzeniu enterem, powinniśmy dostać numer seryjny naszego czujnika:
Skoro wszystko działa, to przechodzimy do domoticza, a konkretnie do Konfiguracja -> Sprzęt. W okienku dodawania sprzętu wpisujemy dowolną nazwę, pole typ wypełniamy wartością 1-Wire (System). Pozostałe opcje pozostawiamy domyślne:
Po wciśnięciu [Dodaj], przechodzimy do Konfiguracja -> Urządzenia, gdzie zobaczmy nasz czujnik. Z tego miejsca można nadać mu nazwę i co najważniejsze – włączyć, klikając w zieloną strzałkę:
W zakładce Temperatura pojawił się nowy obiekt z temperaturą mierzoną przez nasz czujnik DS18B20.
Czujnik BME280 opisywałem jakiś czas temu tutaj. Podobnie jak w przypadku 1-wire, musimy włączyć obsługę magistrali, ale tym razem i2c. Czyli z raspi-config wybieramy piątą pozycję Interfacing Options i dalej P5 I2C:
W następnym oknie zatwierdzamy i gotowe. Do Raspbiana doinstalujemy kilka przydatnych paczek do obsługi i2c:
sudo apt update
sudo apt install python-smbus i2c-tools
Teraz podłączmy nasz czujnik ciśnienia BME280 do Raspberry. Musimy spiąć płytki za pomocą zasilania 3,3V, GND oraz linii I2C: SDA i SCL (Data i Clock):
U mnie kabelek czerwony to +3V3, czarny GND, żółty SDA i niebieski SCL. Moja płytka z czujnikiem BME280 jest inna, niż ta na wizualizacji wyżej. Posiadam popularną wersję z aliexpress, która kosztuje 2 dolary z kawałkiem.
Teraz sprawdźmy z poziomu Raspbiana, czy czujnik został wykryty:
i2cdetect -y 1
Jeśli widzimy urządzenie o adresie 76 (domyślny dla BME280), to wszystko przebiegło prawidłowo. W Domoticzu udajemy się do zakładki Konfiguracja -> Sprzęt i w okienku dodawania wpisujemy dowolną nazwę, w Typ wybieramy I2C sensors, Podtyp I2C sensors BME280 Temp+Hum+Baro:
Po wciśnięciu [Dodaj] przechodzimy do zakładki Konfiguracja -> Urządzenia, gdzie zobaczymy czujnik BME280. Klikamy na zieloną strzałkę, by go włączyć:
Odczyty z BME280 znajdziemy w zakładkach Temperatura i Pogoda:
Nie wspomniałem o tym wyżej, ale obydwa czujniki mogą pracować jednocześnie;
Podsumowując dwa poprzednie wpisy i obecny
Mamy: skonfigurowany system Domoticz, czujniki połączone przez Bluetooth oraz fizycznie wpięte w płytkę Raspberry Pi. Mierząc temperaturę i wilgotność uzyskujemy wyliczony punkt rosy, mając dane o ciśnieniu, system informuje nas o pogodzie (słonecznie, zachmurzenie itd.).
A następny materiał będzie dotyczył własnej bramki do komunikacji z różnymi urządzeniami w standardzie Zigbee.
Po co alternatywny firmware do programatora usbasp? Otóż posiada on jedną, użyteczną przewagę nad oryginalnym…
Dziś lekki, wakacyjny wpis. Od dawna, na używanych przeze mnie routerach, instalowałem linuksa. Było o…
Radio nieodłącznie kojarzy się z nieśmiertelnym FM lub transmisją intermetową. Standard DAB+ wydaje się być…
Poniżej opiszę odpowiednik drogiej (w stosunku do pojemności) baterii 9V o oznaczeniu 6F22. Ze względu…
Widząc migającą na pomarańczowo lampę ostrzegawczą, zastanawiałem się (ciekawe czy tylko ja) jak jest zbudowana,…
W tym wpisie przedstawię bardzo ciekawe narzędzie na RaspberryPi, przydatne każdemu administratorowi urządzeń sieciowych. W…
Zobacz komentarze
Świetne wpisy... Sam się zastanawiam nad przejściem na DOMOTICZ zainstalowany na maszynie wirtualnej dysku QNAP. Z RPI i częstym zapisem na kartach SD mam niemiłe wspomnienia... :(
Pytanie, które mnie obecnie nurtuje: Czy można w Domoticz-u podłaczyć czujniki DS18B20 przy użyciu przystawki USB-RS232 (DS9097) i z nich odczytywać dane? Niestety chyba tylko takie rozwiązanie wchodzi w przypadku instalacji Domoticza na maszynie wirtualnej.
Odpisałem Ci w pierwszym komentarzu w poście https://grylewicz.pl/domoticz-1-instalacja-na-rpi/