Domoticz #3 – dodajemy czujniki DS18B20 i BME280
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.
Domoticz i odczyt temperatury z DS18B20
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.
Domoticz i BME280 – czujnik ciśnienia, temperatury i wilgotności
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:
Podsumowanie
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.
Ś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/