Kurs Raspberry Pi, projekty – #3 – Domoticz, kamera, GPIO

Kurs Raspberry Pi, projekty – #3 – Domoticz, kamera, GPIO

Za nami podstawowa instalacja Domoticza oraz podłączenie pierwszego czujnika. Teraz czas na porty GPIO oraz wykorzystanie kamery.

Sprawdzimy również działanie harmonogramów i scen, czyli obowiązkowych elementów każdego systemu inteligentnego budynku.

Artykuł ten jest częścią serii wpisów opisujących praktyczne wykonanie różnych projektów bazujących na Raspberry Pi (popularnym komputerze jednopłytkowym). W tym artykule skupiamy się na wykonaniu konkretnego projektu. Jeśli nie znasz podstaw tego układu (instalacja, konfiguracja, praca z Linuksem) to niezbędne informacje znajdziesz w poprzednim kursie podstaw Raspberry Pi.

Czego nauczysz się z tego poradnika?

Podczas wykonywania ćwiczeń z tego artykułu poznamy sposób konfiguracji GPIO, czyli uniwersalnych pinów wejścia-wyjścia. Dzięki temu z poziomu Domoticza będziemy mogli kontrolować wyprowadzenia w sposób analogiczny do tego, który był opisywany podczas eksperymentów z Pythonem.

W praktyce będziemy kontrolować diodę, przycisk i buzzer. Jest to świetne ćwiczenia na potrzeby nauki, które wcale nie różni się wiele od późniejszych zastosowań Domoticza. Warto pamiętać, że:

  • Dioda i buzzer, symbolizują sterowanie wyjściem - w praktyce tak samo można sterować przekaźnikami, napędami bram, roletamami, czy oświetleniem LEDowym.
  • Przycisk, symbolizuje wejście - w praktyce może to być również przycisk, który wyzwala np. zamknięcie rolet, ale tak samo będzie wyglądało podłączanie czujników ruchu, kontaktronów oraz wielu innych sensorów.
Zestaw elementów do kursu

 999+ pozytywnych opinii  Gwarancja pomocy  Wysyłka w 24h

Elementy niezbędne do wykonania wszystkich ćwiczeń z kursu podstaw Rasberry Pi dostępne są w formie gotowych zestawów!

Zamów w Botland.com.pl »

Zacznijmy jednak od konfiguracji kamery...

Konfiguracja kamery w Domoticzu

Jednym z zadań systemu automatyki budynkowej jest podniesienie poziomu bezpieczeństwa - stąd różne czujniki, alarmy i kamery. Nie inaczej będzie w przypadku samodzielnie budowanego systemu.

W naszym przypadku oczywiście skonfigurujemy kamerę dedykowaną malince. Jej podłączenie było już omawiane w kursie podstaw Raspberry Pi. Po podłączeniu i zamocowaniu kamery można przejść do ustawień. Zaczynamy oczywiście od włączenia interfejsu kamery w raspi-config. Więcej informacji na ten temat znaleźć można w 10. części kursu podstaw RPi.

Oryginalna kamera Raspberry Pi.

Następnie wchodzimy w ustawienia kamery znajdujące się w Setup > More Options > Camera. W nowym oknie klikamy Add Camera. Pola formularza wypełniamy następująco:

  • Name: dowolna nazwa kamery typu pokój/kuchnia/ogród itd.
  • Protocol: HTTP
  • IP Address: adres IP naszego Raspberry Pi
  • Port: port na, którym działa Domoticz (domyślnie 8080)
  • Username/Password: zostawiamy puste
  • ImageURL: raspberry.cgi

Jeśli wszystko zostało poprawnie podłączone i skonfigurowane po wciśnięciu przycisku Test Connection zobaczymy podgląd z kamery. Na tym etapie nie przejmujemy się, że obraz może być obrócony (tak jak miało to miejsce podczas naszego testu).

Gdy wszystko będzie działać poprawnie pozostaje już tylko obrócić obraz. W tym celu wchodzimy w ustawienia: Setup > Settings > Other i szukamy pozycji Raspberry Pi Camera Parameters, która domyślnie jest wypełniona następująco: -w 800 -h 600 -t 1. Parametry te powinny wyglądać znajomo, ponieważ były już używane podczas pierwszych eksperymentów z kamerą i raspistill.

Obraz obracamy tak samo jak wtedy, czyli za pomocą parametru rot:

Dodatkowe ustawienia kamery.

Po zapisaniu ustawień wracamy do podstrony z kamerami (Setup > More Options > Cameras), nasza kamera będzie już tam widoczna. Po kliknięciu w ikonkę kamery pojawi się okno z podglądem obrazu, z kolei kliknięcie w ikonkę aparatu spowoduje wykonanie zdjęcia, które będzie można od razu pobrać.

Oczywiście podgląd z kamery ma pewno opóźnienie (jak to często bywa w przypadku kamer CTV). W wielu przypadkach taka transmisja obrazu jednak wystarcza. Do tego samego panelu można również podłączyć inne kamery, które potrafią stremować obraz. Nie trzeba się ograniczać do kamery RPi. Wtedy ustawienia i sposób transmisji zależą już jednak głównie od konkretnej kamery. Więcej informacji i przykłady konfiguracji niektórych modeli znaleźć można w dokumentacji Domoticza.

Sterowanie GPIO z poziomu Raspberry Pi

Pora na obiecane GPIO, tym razem wykorzystamy diodę, przycisk oraz moduł buzzera. Podłączenie może być praktycznie dowolne. W tym przykładzie posłużymy się schematem z poprzedniego kursu, używane piny to:

  • pin numer 21 - moduł buzzera,
  • pin numer 12 - dioda podłączona przez rezystor 1,2kΩ,
  • pin numer 26 - przycisk.

Schemat podłączenia elementów do RPi.

Podłączenie elementów w praktyce:

Instalacja wiringpi

Przed dalszym etapem musimy się upewnić, że na RPi zainstalowane jest wiringpi. W tym celu możemy wydać komendę gpio readall. Jeśli zobaczymy listę GPIO to wszystko jest poprawnie, jeśli otrzymamy jakiś błąd to należy doinstalować program: sudo apt-get install wiringPi.

Wybór używanych GPIO

Teraz musimy dać znać Domoticzowi, które piny będziemy wykorzystywać. W tym celu na końcu pliku z ustawieniami (/etc/init.d/domoticz.sh) dopisujemy następujące informacje:

Za pomocą słowa kluczowego export określamy kierunek pracy pinu. Dodatkowo w przypadku wejść za pomocą edge określamy zbocze, na które ma reagować malinka (tutaj opadające). Po zapisaniu pliku restartujemy RPi i poleceniem gpio exports sprawdzamy czy wszystko jest poprawnie ustawione:

Dodawanie sprzętu do Domoticza - sterowanie wyjściem

Teraz możemy dodać sprzęt w ustawieniach Domoticza. Zaczniemy od wirtualnego włącznika, który będzie odpowiedzialny za włączenie diody podłączonej do malinki. Przechodzimy do zakładki Setup > Hardware i dodajemy nowy sprzęt. Tym razem chodzi o GPIO, które konfigurujemy jak niżej:

Konfiguracja GPIO.

Konfiguracji dokonujemy raz, dla całego GPIO. Nie musimy tutaj konfigurować każdego pinu osobno. Sytuacja jest analogiczna do tej z termometrem DS18B20 - w Hardware definiujemy tylko raz interfejs danego typu.

W przeciwieństwie do przykładu z poprzedniej części, tym razem nie znajdziemy gotowych elementów na zakładce Devices. Przechodzimy więc do zakładki Switches (żarówka w górnym menu) i klikamy przycisk Manual Light/Switch, który znajduje się w lewej, górnej części okna.

W nowym formularzu wpisujemy informacje o LED:

  • Hardware: wybieramy wcześniej dodane GPIO
  • Device name: wpisujemy przyjazną nazwę, w przykładzie "Dioda", docelowo np. "LED kuchnia".
  • Switch type: On/Off
  • Type: GPIO
  • GPIO: wybieramy z listy pin (pojawił się tu dzięki dopisaniu informacji do ustawień Domoticza).

Po zatwierdzeniu formularza zobaczymy nowy widget z ikoną żarówki, po kliknięciu w żarówkę dioda podłączona do Raspberry Pi powinna się natychmiast zaświecić, zmieni się również ikona:

Podgląd stanu urządzenia.

Symbol żarówki można zmienić na inny po kliknięciu opcji Edit. Tak samo jak w przypadku czujnika temperatury, kliknięcie gwiazdki (pod ikoną) przypnie widget na głównym ekranie Domoticza.

Harmonogramy w Domoticzu

Załóżmy, że nasza dioda symbolizuje pasek LED, który oświetla korytarz. Korzystając z Domoticza możemy zautomatyzować jego włączanie. Klikamy na widgetcie z żarówką opcję Timers.

Pojawią się opcje ustawiania harmonogramów. Można tam ustawić wiele automatycznych akcji typu:

  • włącz/wyłącz w określone dni o określonej godzinie,
  • włącz/wyłącz o zachodzie słońca (działa, jeśli ustawiliśmy poprawną lokalizację),
  • włącz/wyłącz w dni parzyste itd. itp.

Przykład konfiguracji dla automatycznego włączania codziennie o godzinie 18:45 będzie wygląda tak:

Ustawienia timerów/harmonogramów na Domoticzu.

Jeśli konkretny "wirtualny przełącznik" ma do siebie przypisane jakieś harmonogramy to przycisk Timers na jego widgetcie będzie później podświetlony na fioletowo.

Odwracanie wyjścia w Domoticzu

Zdarza się tak, że niektóre elementy są sterowane logiką odwrotną. Przykładowo moduł przekaźnika może być włączany logicznym "0", a wyłączany "1". Idealnym przykładem takiego działania jest nasz moduł buzzera. Jeśli skonfigurujemy go tak samo jak powyższą diodę to będzie piszczał, gdy na widgetcie będzie wybrana opcja "off" - skonfiguruj widget i sprawdź samodzielnie, że tak będzie.

Aby to zmienić wystarczy na samym końcu /etc/init.d/domoticz.sh (pod informacją o GPIO) dodać:

Od teraz (po restarcie Raspberry Pi) całość będzie działała poprawnie - buzzer będzie wydawał dźwięk, gdy na widgetcie będzie widoczne "On".

Odczytywanie wejść w Domoticzu

W przykładzie do naszego wejścia podłączony mamy przycisk, który zwiera wejść do masy. W praktyce podobnie odczytamy informacje np. z czujników ruchu, czujników otwarcia drzwi oraz innych sensorów.

Przechodzimy do konfiguracji nowego urządzenia. W zakładce Switches klikamy przycisk Manual Light/Switch i dodajemy nowe urządzenie nazwane jako "Przycisk alarmowy". Tym razem w Switch Type wybieramy Contact. Wszystkie ustawienia powinny być takie jak poniżej:

Dodawanie nowego czujnika.

Podłączając czujniki należy zapoznać się z ich dokumentacją, wejścia niektórych z nich będą posiadały rezystor podciągający, a inne nie. W naszym przypadku możemy dodać rezystor pull-up lub wpisać w konsoli polecenie gpio -g mode 26 up, które włączy wewnętrzny rezystor podciągający. Bez tej operacji "czujnik" nie będzie działał poprawnie. Więcej na ten temat było powiedziane w tym artykule:

Kurs Raspberry Pi – #13 – PWM, wejścia, skrypty z kamerą
Kurs Raspberry Pi – #13 – PWM, wejścia, skrypty z kamerą

Za nami podstawy GPIO i pierwsze skrypty. Tym razem przetestujemy… Czytaj dalej »

Po włączeniu rezystora podciągającego możemy przetestować nowy widget. Jego stan będzie się zmieniał z drobnym opóźnieniem, ale wszystkie "włączenia alarmu" będzie można prześledzić dokładnie klikając w przycisk Log.

Konfiguracja scen w Domoticzu

Sceny to bardzo ciekawa funkcja każdego systemu automatyki domowej. Dzięki nim jednym kliknięciem zmieniamy stan wielu elementów budynku. Przykłady popularnych scen i reakcji:

  • Scena: noc - wyłącz światło, włącz lampkę przy łóżku, wyłącz radio, zamknij rolety.
  • Scena: dzień - wyłącz światło, włącz radio, otwórz rolety.
  • Scena: wyjście - wyłącz wszystko z prądu, zamknij rolety, włącz alarm.

Czyli przykładowo wychodząc z domu włączamy scenę "wyjście" i tyle... Nie musimy ręcznie wyłączać TV, zamykać rolet, włączać alarmu itd. Po prostu pełna automatyzacja. Konfiguracja scen w Domoticzu jest bardzo prosta. Wystarczy wejść w zakładkę Scenes i utworzyć nowe ustawienie.

Dla przykładu stwórzmy dwie sceny: dzień oraz noc. Po ich utworzeniu wchodzimy w opcje każdej z nich i przypisujemy odpowiednie akcje, czyli np. wyłącz diodę dla "dzień" oraz włącz diodę dla "noc". Dodatkowo możemy skonfigurować działanie buzzera lub innych LEDów (jeśli takie podłączymy).

Ustawienie trybu jednego z urządzeń w danej scenie.

Od teraz w panelu mamy dwa przyciski, których kliknięcie będzie ustawiało cały system w dany tryb:

Przyciski wyboru scen.

Zdarzenia w Domoticzu

Na zakończenie jedna ciekawa funkcja, którą nie będziemy się teraz zajmować. Warto jednak o niej wiedzieć, bo znacznie rozszerza możliwości całego systemu. Mowa o Setup > More Options > Events. W zakładce tej znajduje się graficzny edytor, który pozwala na blokowe tworzenie programów.

Przykładowy program z dokumentacji Domoticza.

To własnie w tym miejscu można utworzyć mechanizmy typu "jeśli wykryto ruch to włącz światło", "wyślij o wschodzie słońca wiadomość na maila z temperaturą" itd. itp. Rozwiązanie to jednak jest dość rozbudowane i właściwie nadaje się na osobny kurs. Dlatego tutaj tylko krótka informacja o istnieniu takiej opcji, więcej informacji na temat tego narzędzia znaleźć można w dokumentacji Domoticza.


Dodatkowe artykuły, które mogą Cie zainteresować:

Podsumowanie Domoticza

Za nami dwa poradniki, które w ekspresowym tempie miały przybliżyć Domoticza. Mam nadzieję, że się udało i każdy zdążył opanować podstawy systemu, aby zdecydować czy warto poznawać go dalej. Jeśli te podstawy Was zainteresowały to dajcie znać w komentarzach. W ramach tej serii będziemy zajmować się teraz innymi tematami, ale jeśli będzie takie zainteresowanie to na pewno przygotujemy więcej poradników związanych z Domoticzem (może nawet w formie osobnego kursu).

Na razie kończymy z automatyką domową. W kolejnej części kursu zajmiemy się prostym radiem... i to nie internetowym. Będziemy nadawać piosenki jak normalna stacja radiowa na falach FM, a wystarczy do tego jeden przewód!

Czy artykuł był pomocny? Oceń go:

Średnia ocena / 5. Głosów łącznie:

Nawigacja kursu

Autor: Damian Szymański
Testy: Piotr Adamczyk

Domoticz, GPIO, kamera, kursRPiProjekty, raspberrypi

Trwa ładowanie komentarzy...