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.
W tym krótkim wpisie opiszę prostą i szybką naprawę irytującej usterki kluczyka-pilota Volvo V70 z…
Mamy w domu dość wiekowy (2012) Boombox Philips, model AZ385/12 używany przez dzieci głównie jako…
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
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/