Blog


Automatyka w domu

autor: Przemysław Jurgiel-Żyła / 8 Grudzień 2016

W filmie „Człowiek Demolka” z 1996 roku z Sylwestrem Stallone w roli głównej, twórcy filmu roztoczyli przed nami obraz futurystycznego społeczeństwa w świecie naszpikowanym elektroniką, w tym na przykład mieszkaniami sterowanymi głosem. Pokazane zostały autonomiczne samochody, natomiast komputery, jakby tylko czekały, aż ktoś je zhakuje.


Dwadzieścia lat temu ten obraz był zupełnie poza zasięgiem konsumenckim, zaś konstruktorzy i wizjonerzy mieli mokre sny z tym związane. Obecnie jednak samochody zaczynają poruszać się bez pomocy kierowcy, systemy rozpoznawania mowy są coraz doskonalsze, zaś komputery mają wystarczającą moc obliczeniową, żeby przechodzić Test Turinga (czyli test, w którym rozmówca konwersuje z wieloma stronami i w następstwie czego musi określić, która strona jest maszyną). Dochodzą do tego platformy edukacyjne i mikrokomputery o wystarczających zasobach na łączenie się z aplikacjami zarządzającymi naszym otoczeniem, wstawiającymi dane na serwery zewnętrzne w internecie, czy też nadzorujące w trybie ciągłym pracę wielu urządzeń.


Wspaniałe w naszej rzeczywistości jest to, że ludzie chcą dzielić się swoimi wynalazkami. Programiści piszą gotowe systemy informatyczne, elektronicy udostępniają schematy, a innowacyjne firmy produkują tani sprzęt, często na licencji open hardware. Przeciętny użytkownik, zainteresowany tematem automatyki domowej, wystarczy, że skorzysta z kilku przewodników online i dzięki temu uzyska amatorski lub półprofesjonalny system do nadzoru i sterowania domem. Oczywiście można iść do sklepu lub skontaktować się z firmą, która profesjonalnie zestawi wszystkie moduły w systemie, udostępni praktycznie bezawaryjne oprogramowanie oraz pokaże przycisk włącznika. Jednak spodziewam się, że czytelnicy tego magazynu w większości będą chcieli realizować takie projekty w zaciszu domowym lub warsztacie np. lokalnego Fab Labu.

Poniżej przedstawiam przekrój kilku przykładowych rozwiązań platform sprzętowych, programistycznych lub gotowego oprogramowania, które może nam pomóc w przygodzie, jaką jest automatyzacja swojego otoczenia. Nic nie stoi na przeszkodzie, żeby stworzyć hybrydę systemu otwartego z zamkniętym. Są pewne kluczowe elementy instalacji, jak choćby alarm, czy powiadamianie służb ratunkowych, które powinny gwarantować ponadprzeciętną bezawaryjność i gotowość do pracy.


Czym jest automatyka domowa?

Automatyka domowa, to bardzo szerokie pojęcie obejmujące integrację różnych aspektów naszego otoczenia, takich jak: zarządzanie oświetleniem, zarządzanie systemami klimatyzacji i/lub ogrzewania, nadzorujące, czyli systemy alarmowe, jak również systemy monitoringu jakości powietrza (detekcja gazów), zarządzanie dostępem/otwieraniem drzwi i okien. Dodatkowo ww. systemy mogą być wspierane w zakresie sterowania nawadnianiem, monitoringiem pogodowym, dystrybucją dźwięku i obrazu oraz dostępem do zarządzania poprzez sieć teleinformatyczną, czyli internet, telefon lub sms. Równolegle istnieje pojęcie inteligentnych budynków, które częściowo rozwija pojęcie automatyki domowej o zminimalizowanie udziału człowieka w procesie zarządzania oraz dokłada rozwiązania typu symulacji obecności mieszkańców, czy awaryjnego zasilania. Temat jest bardzo szeroki, dlatego skupimy się tutaj na elementach, które pozwolą nam na wprowadzenie rozwiązań dla domu – bez określania, w który element pojęciowy się wpasujemy.

Platforma sprzętowa, czyli od czego zacząć

Wybór sprzętu do automatyki domowej nie jest, wbrew pozorom, banalny, ponieważ istnieje bardzo szeroka gama produktów, które się do tego nadają. Najdrobniejszym takim rozwiązaniem do wprowadzenia jest wykorzystanie mikrokontrolera i kilku elementów pasywnych. Niestety, jest on jednocześnie dość trudny do opanowania dla kogoś, kto dopiero zaczyna swoją przygodę z automatyzacją, elektroniką, czy programowaniem. Z pomocą przychodzą gotowce w postaci rozwiązań firm/organizacji typu: Arduino, Raspberry Pi, Particle, Intel (Edison). Większość z nich ma swoje wariacje i klony oraz dużą społeczność użytkowników i na nich właśnie skupimy uwagę w dalszej części artykułu.



Arduino 

Uniwersalna platforma edukacyjna, najczęściej firmy Atmel, oparta głównie o 8-bitowy mikrokontroler (choć można spotkać również rozwiązania 32-bitowe). Razem z częścią sprzętową zostało udostępnione Arduino IDE, czyli zintegrowane środowisko programistyczne strukturą składni oparte o języki C/C++. Ponieważ cały zestaw jest dopracowany, posiadający dobrą dokumentację i otwarte źródła, to w błyskawicznym tempie zyskał sobie rzeszę wiernych fanów.


Plusy

  • Bardzo proste podłączanie dodatkowych modułów, często w postaci shieldów (płytek w formie „kanapki” z dodatkowymi interfejsami) realizujących komunikację sieciową przewodową i bezprzewodową, ułatwiających podłączanie czujników, rozszerzających porty wejścia/wyjścia, posiadających wyświetlacz, czy klawiaturę. 

  • Spora odporność na błędy podłączeniowe. 

  • Niskie koszty budowy systemów. 

  • Dużo przykładów i proste programowanie.


Minusy

  • Rozwiązanie skupione na sprzęcie. 

  • IDE wymaga programowania każdej funkcji systemu zarządzania z osobna. 

  • Mała moc obliczeniowa (w zasadzie wyklucza przetwarzanie sygnałów audio i video).


Przykład

System do sterowania przekaźnikami, z czujnikiem ruchu, sensorem światła, podłączeniem do internetu i aplikacją dostępną na telefony z Androidem. http://androidcontrol.blogspot.com/2014/08/arduino-smart-home-automation.html



Raspberry Pi 

Rozwiązanie dużo bardziej kompaktowe, gdzie na płytce o powierzchni niewiele większej od karty kredytowej mieści się procesor o taktowaniu blisko 1 Ghz, do 1 GB pamięci operacyjnej, do 4 złączy USB, port sieciowy, gniazdo HDMI i wiele innych (w zależności od wersji). W przypadku RPi wskazane jest skorzystanie z systemu operacyjnego zainstalowanego na karcie pamięci FLASH, głównie opartego o Linuksa. Ta platforma również ma bardzo duże wsparcie społeczności internetowej, głównie dzięki bardzo dobremu stosunkowi ceny do wydajności, a co za tym idzie - przybliżeniu systemu wbudowanego (embedded system) szerszemu gronu odbiorców.


Plusy

Tanie i modułowe rozwiązanie oparte o open hardware z możliwością zainstalowania systemu operacyjnego typu Debian, Ubuntu, czy Windows 10 IoT (Internet of Things, wersja darmowa). 

  • Złącze kilkudziesięciu pinów z wyprowadzonymi różnymi interfejsami komunikacji i liniami wejścia/wyjścia programowane z poziomu systemu operacyjnego przy wykorzystaniu Pythona, czy innych języków wysokiego poziomu. 

  • Możliwość podłączenia monitora/ekranu dotykowego.


Minusy 

  • Wymagana umiejętność programowania wysokopoziomowego (pisania skryptów dla systemu operacyjnego, instalacji i konfiguracji systemu operacyjnego oraz usług w nim zawartych). 

  • Nie zawsze dobrze przemyślane rozwiązania konstruktorskie/architektury.


Przykład

System do sterowania urządzeniami w domu przy wykorzystaniu Raspberry Pi. http://www.instructables.com/id/Raspberry-Pi-Home-Automation-Control-lights-comput/ 



Particle 

Jeszcze do niedawna Spark, z modułami Photon (komunikacja tylko przez WiFi) i Electron (komunikacja tylko przez 2G/3G), to rozwiązanie częściowo łączące zalety rozwiązań Arduino i Raspberry Pi. Zestawy wyposażone są w stosunkowo szybkie procesory STM32 (32-bitowe), które zawierają bootloader umożliwiający programowanie układów poprzez stronę WWW. Samo oprogramowanie i struktura języka zbliżona jest do tego z Arduino. Dzięki takiemu ujęciu tematu programowania, samą płytkę można “zaszyć” w urządzeniu i bez wyjmowania z układu programować zdalnie. Logicznie układy Particle bliższe są Arduino.


Plusy

  • Proste i szybkie programowanie w układzie docelowym (aktualizacja programu sterującego jest bardzo prosta). 

  • Częściowa kompatybilność kodu programu do Arduino. 

  • Wysoka wydajność. 

  • Zaszyty moduł sieciowy, bądź modem 2G/3G. 

  • Uwzględniając akcesoria „zaszyte na płytce” jest to najtańsze rozwiązanie z tutaj porównywanych.


Minusy

  • Powolne działanie procesu programowania. 

  • Pierwsza konfiguracja czasem jest kłopotliwa. 

  • W wersji 2G/3G dość drogie pakiety transferu.


Przykład

System logowania danych: temperatura, oświetlenie, wilgotność powietrza. https://www.openhomeautomation.net/cloud-data-logger-particle-photon/


Intel Edison 

Mimo deklaracji producenta, że jest to rozwiązanie dla elektronicznych ubrań (wearables), konstruktorzy traktują urządzenie jak koleją platformę rozwojową i budują również rozwiązania stacjonarne. Wydajnościowo Intel Edison jest gdzieś pomiędzy podstawowymi wersjami RPi, a Particle. Ponieważ przewidziane jest również jako narzędzie edukacyjne, to podstawowa płytka rozwojowa ma złącze pod shieldy Arduino oraz środowisko IDE (programistyczne) jest identyczne z tym od Arduino. 


Plusy 

  • Zintegrowany moduł Bluetooth „low power” 

  • Zintegrowany moduł WiFi. 

  • Energooszczędność. 

  • Niewielkie rozmiary głównego modułu.


Minusy

  • Stosunkowo wysoka cena. 

  • Zamknięta architektura. 

  • Duże rozmiary płytki bazowej. 

  • Główne złącze trudne do użycia przez amatorów.


Przykład

System twittujący informację o aktualnym natężeniu światła, które pada na czujnik oświetlenia.

http://diyhacking.com/home-automation-using-intel-edison-board/ 

Oprócz wymienionych można spotkać się z innymi platformami, takimi jak seria płytek LaunchPad od Texas Instruments ze środowiskiem programistycznym Energia (oparte o IDE Arduino), ST32 Nucleo od STMicroelectronics kompatybilne z wyprowadzeniami płytek z Arduino oraz IDE na bazie Arduino, Orange Pi i inne wariacje płytek podobnych do Raspberry Pi, czy też wariacje powyższych lub nowe koncepcje, bardzo często szukające wsparcia finansowego na Indiegogo lub Kickstarterze.



Platforma software, czyli jak to powinno działać

Profesjonalnych i odpłatnych systemów zarządzania i dozorem urządzeń w domu omawiać tutaj nie będziemy. Skupimy się za to na rozwiązaniach uniwersalnych, czasem wielosystemowych oraz takich, które korzystają z licencji otwartej. W zależności od potrzeb można skorzystać z gotowych bibliotek, platform, na bazie których rozwija się swój projekt lub pełnych systemów wymagających jedynie odpowiedniego skonfigurowania. 

Systemy automatyki domowej można podzielić na dwie grupy: działające/zainstalowane na końcówce zarządzającej (np. dedykowane dla Raspberry Pi i pochodnych) lub jako rozszerzenie interfejsu sieciowego (głównie dedykowane dla Arduino i innych systemów z niską wydajnością sprzętową), przeważnie jako aplikacje na komputer i/lub telefon. 


WebIOPi jest platformą programistyczną dla Raspberry Pi pozwalającą w prosty sposób podłączać różnego rodzaju układy elektroniczne za pomocą złącza IO. Sam WebIOPi zawiera w domyślnym ustawieniu jedynie możliwość sterowania pojedynczymi liniami wejścia/wyjścia. Dopiero po skonfigurowaniu i prostym okodowaniu staje się bardzo dobrym narzędziem do komunikacji pomiędzy ekspanderami IO (in/out), czujnikami temperatury, gazów, oświetlenia, sterowaniem modułami wykonawczymi (nie ma znaczenia czy opartych o triaki, czy przekaźniki) oraz wiele innych. Dzięki WebIOPi łatwo można wystawić w formie strony internetowej interfejs do sterowania inteligentnym domem. Projekt rozwijany jest hobbystycznie.

Więcej: http://trouch.com/category/raspberrypi/webiopi/


FreeDomotic jest bardzo potężnym systemem działającym na komputerach pod kontrolą Linuksa, Windowsa, MacOSa oraz Raspberry Pi opartym na Javie. Poza realizacją wielu procesów związanych z zarządzaniem domem ma możliwość integrowania się z istniejącymi systemami komunikacji, jak KNX, ModBus oraz wspiera komunikację z modułami wykonawczymi na Arduino. System ma kontrolę użytkowników, wspiera wtyczki rozszerzające możliwości systemu, może symulować (np. obecność), czy profilować użytkowników oraz pozwala na podłączenie się poprzez API. 

Więcej: http://freedomotic.com/

 


OpenHAB jest bezpośrednią alternatywą dla FreeDomotic, ale skierowaną głównie na systemy wbudowane, opartą na Javie. Oprócz Raspberry Pi wspiera także BeagleBone Black (ulubioną platformę autora), UDOO oraz Cubieboard (mało popularne w Polsce głównie ze względu na dość wysoką cenę). Oprócz tego działa również na komputerach PC/Mac pod kontrolą systemów Linuks, Windows i MacOS. Od strony interfejsów posiada olbrzymią gamę wspieranych rozwiązań. Cała lista dostępna jest na stronie projektu w zakładce „Features”. Ciekawostką są dedykowane aplikacje na Androida i iOS. 

http://www.openhab.org/features/architecture.html

Więcej: http://www.openhab.org/


Home Assistant ma lekko odmienną ideologię budowania domu inteligentnego. Założeniem twórców jest wykorzystanie istniejących już urządzeń jako końcówek, z którymi może się łączyć HA i sterować nimi lub odczytywać z nich informację. W przeciwieństwie do ww. oparty jest na Python3, nie zaś na Javie. Dzięki czemu chyba jeszcze łatwiej uruchomić system i go skonfigurować. Na witrynie projektu widnieje niezliczona ilość przykładów konfiguracji poszczególnych urządzeń. Główną platformą sprzętową dla tego projektu są komputery PC/Mac pod kontrolą Linuksa, Windowsa, MacOS, czy Raspberry Pi.

Więcej: https://home-assistant.io/



Nettemp to rodzime rozwiązanie Przemka, właściciela serwisu Techfreak.pl. System jest prostym rozwiązaniem pozwalającym monitorować lokalnie i zdalnie temperaturę oraz sterować np. przekaźnikami w zależności od ustawień czasowych, czy związanych z temperaturą (realizuje więc także uproszczoną funkcjonalność symulatora obecności). Podobnie, jak poprzednie projekty i ten jest udostępniony społeczności, więc z powodzeniem można potraktować go jako platformę do własnych rozwiązań i rozbudowy.

Więcej: http://techfreak.pl/nettemp

Powyższe, to oczywiście tylko wybrane rozwiązania. Jedyne, co nas ogranicza, to własna wyobraźnia i budżet przeznaczony na rozwiązanie. Inaczej (również kosztowo) będzie wyglądać mechanizm oparty na okablowaniu, a inaczej w pełni bezprzewodowy. Na inne elementy zwrócimy uwagę chcąc sterować systemem audio-video w domu, a na inne, gdy skupimy się na monitoringu (temperatury, niebezpiecznych dla zdrowia i życia gazów, możliwości podłączenia kamer etc.). Ponieważ większość z rozwiązań jest dość prosta do instalacji, to zdecydowanie warto przetestować na własnej skórze z czym się to je lub poszukać innych, o których tutaj nie wspomniano. Powodzenia!


Z punktu widzenia użytkownika cohabitatowego bardzo istotnym aspektem większości powyższych rozwiązań jest fakt, że są to platformy open hardware i open software. Warto mieć na uwadze fakt, że mniejsza moc obliczeniowa, to jednocześnie mniejsze zużycie prądu, więc i bardziej zoptymalizowane zarządzanie energią. Jak wiadomo: czym większa moc obliczeniowa, tym przynajmniej teoretycznie lepsze zoptymalizowanie procesu i większe oszczędności wynikające z większego stopnia wykorzystania „inteligencji” maszyny. Oba przypadki optymalizacji mają swoje plusy i minusy, więc decyzję o wyborze każdy powinien podejmować indywidualnie.



Przemysław Jurgiel-Żyła 
Współtwórca Makerspace.pl, członek Hackerspace Warszawa, aktywny elektronik, programista amator, improwizujący stolarz, kucharz, bloger. Zawodowo manager w spółce technologicznej Netsprint. Prywatnie szczęśliwy mąż i ojciec. Ma monopol na twitterowy hashtag #LubiePoniedzialek. W wolnych chwilach doradza startupom, jak budować modele sprzedażowe i rozwijać biznes.


Najnowsze i najpopularniejsze dawki wiedzy

Zamknij

Podaj tutaj swój adres email: