Inteligentny-Dom

Arduino w służbie inteligentnego domu - koncepcja

Minęło już trochę czasu odkąd testuję Arduino Uno R3 , więc pewnie pora zbudować koncepcję rozbudowy mojej niskobużetowej, amatorskiej instalacji inteligentnego domu , o której pisałem wcześniej. Chciałbym dołożyć dodatkowe funkcjonalności, a przy okazji pozbyć się jednej z kart przekaźnikowych na rzecz Arduino (skoro już jest, nie ma potrzeby mnożyć bytów). Nie chcę oczywiście odcinać się od routerów z OpenWRT i tego, co już osiągnąłem. Pora podsumować cały projekt, stan obecny i wizję przyszłości.

Stan obecny

Na początek małe podsumowanie (w skrócie) tego, jak system wygląda bez Arduino. Centralnym urządzeniem w środowisku automatyki domowej jest router TPlink TL-WR1043ND z zainstalowanym systemem OpenWRT. Dostarcza on Internet (sieć w ogólności) przewodowo do różnych punktów w domu i bezprzewodowo. Zlokalizowany jest w garażu, skąd rozchodzi się gwiaździście okablowanie do dużej części pomieszczeń w domu. Do routera podłączony jest dysk USB, który w przeszłości był źródłem dla odtwarzacza multimediów podłączonego do telewizora w salonie. W tej chwili z tej funkcji router został odciążony przez Iomega iConnect , stanowiący centrum składowania i serwowania danych. Do routera podłączona jest za to magistrala one-wire i kilkanaście termometrów w całym domu (w tym wiele w kotłowni do monitorowania kotła). Router gromadzi dane, rysuje wykresy i je udostępnia. Analizuje też temperatury z kotłowni i powiadamia smsem o różnych zdarzeniach, np. wygaśnięciu pieca. Router otwiera też bramę wjazdową, co opisywałem ostatnio i steruje ogrzewaniem (przełącza kocioł na ekogroszek w coś w rodzaju trybu bardzo oszczędnego).

Łączenie Arduino z OpenWrt

Od jakiegoś czasu “bawię się” Arduino, a swoje doświadczenia staram się tu opisywać. Pisałem też kiedyś o mojej koncepcji inteligentnego domu (lub jak kto woli domowej automatyki) w oparciu o OpenWRT. Do rozpoczęcia przygody z Arduino skłoniła mnie właśnie chęć rozbudowy tego systemu.

OpenWRT zainstalowany w routerze jest świetny, elastyczny, linuksowy, jednak trochę brakuje mu możliwości z realnym światem. Problem w dużej części rozwiązał zakup karty przekaźnikowej wyposażonej dodatkowo w wejścia, jednak cały czas mi czegoś brakowało.

Arduino - zdalne sterowanie urządzeniami elektrycznymi

Pisałem ostatnio o tanim zestawie do zdalnego sterowania gniazkami z Biedronki. Planowałem podłączyć przyciski pilota do Arduino przez jakiś moduł przekaźnikowy (jak Relay Shield ) i nawet dla tego zastosowania przylutowałem byłem już kabelki do mikrostyków. Po pewnym czasie jednak stwierdziłem, że można poszukać tańszego rozwiązania. Na początku zmierzyłem napięcia między stykami przycisków - nieco ponad 12V (tyle co napięcie baterii). Przy okazji oznaczyłem te styki, na których jest napięcie. Później zrobiłem eksperyment i zasiliłem pilota napięciem 5V wprost z Arduino (w końcu bateria ma to do siebie, że jej napięcie z czasem spada, więc projektanci musieli to przewidzieć). Z niższym napięciem też zadziałało. Co więcej, nadal nie było problemów z zasięgiem. Uznałem więc, że trzeba sprawdzić co będzie, gdy do styku przycisku, na którym nie było wcześniej napięcia przyłożę je wprost z Arduino (na wszelki wypadek przez rezystor, zapewne niepotrzebnie). Bingo, zadziałało.

Zdalne sterowanie urządzeniami elektrycznymi

Jakiś czas temu pisałem o szybkim wykonaniu sterownia bramą . Ponieważ patent się sprawdził, postanowiłem pójść nieco dalej i zrobić zdalne sterowanie urządzeniami elektrycznymi. Mając sprawdzoną kartę przekaźnikową nie jest to problem. Wystarczy do jednego z przekaźników podłączyć napięcie 230V i przeciągnąć kabel do gniazka, które ma być sterowane z routera lub komputera. Problem polega jedynie na tym, że trzeba przeciągać kable, a do tego jest to rozwiązanie mało mobilne. Tak się jednak złożyło, że w jednym z dyskontów (w Biedronce konkretnie) pojawiły się zdalnie sterowane gniazka (w niewygórowanej cenie 30 zł za 3 gniazdka z pilotem).

Arduino - co to takiego?

Jakiś czas temu zacząłem zastanawiać się nad wejściem w świat elektroniki i mikrokontrolerów. Zawsze była jednak jakaś bariera, a potrzeby nie były wystarczająco silne. Do domowej automatyki wykorzystuję routery OpenWRT oraz karty przekaźnikowe i to w zasadzie wystarcza. Jednak do niektórych rozwiązań aż się prosi o zastosowanie jakiegoś dedykowanego, stabilnego i niezawodnego układu elektronicznego. Przykłady? Nadzór kotła c.o., aby był niezależny od restartów routera. Podobnie z monitorowaniem otwarcia drzwi (tym się zajmie w przyszłości centrala alarmowa). Czasem też przychodzi chęć podłączenia jakiegoś czujnika, którego stany są nieco bardziej złożone niż włącz/wyłącz.

Przez jakiś zastanawiałem się nad zakupem jakiegoś zestawu uruchomieniowego opartego o kontroler Atmega. Takie zestawy jednak trochę kosztują, potrzebują programatora, a po wykonaniu prototypu na płytce testowej, właściwie najlepiej byłoby przenieść projekt na dedykowaną płytkę. Jak na początek dość skomplikowane, dla kogoś, kto z elektroniką nie miał wcześniej nic wspólnego.

Sterowanie bramą Somfy przez telefon z Androidem

Po co sterować bramą wjazdową inaczej niż standardowym pilotem? Powodów jest kilka. Po pierwsze można otworzyć bramę jadąc do domu, kilkaset metrów wcześniej, żeby nie czekać aż się otworzy. Po drugie gdy trzeba zamknąć bramę (a nie zrobiło się tego będąc w samochodzie), to nie trzeba szukać drugiego pilota, który leży gdzieś w domu. Po trzecie, będąc na nartach nie trzeba prosić nikogo, żeby w dzień zabierania śmieci podjechał z kluczem uchylić furtkę, żeby śmieciarze opróżnili kosz (bo jak nie opróżnią to przez kolejny tydzień nie będzie gdzie wyrzucać śmieci i popiołu z pieca). Można zamiast tego rano otworzyć bramę przez Internet (o furtce też można pomyśleć, ale to kiedy indziej). Oczywiście ostatni przypadek może wydać się wyimaginowany, bo przecież można zrobić osobną furtkę tylko do koszy. Oczywiście, tylko trzeba ją mieć. A jak się nie ma, to można w 15 minut zrobić zdalne otwieranie bramy (z programowaniem w trochę ponad pół godziny).

Inteligentny dom na OpenWRT

Trochę czasu upłynęło od ostatniego posta i wiele się zmieniło w moim “środowsku routerowym”. Porzuciłem z pewnych względów dd-wrt na rzecz bardziej elastycznego (bo opartego na jądrze 2.6) OpenWRT. Stało się tak głównie za sprawą przeprowadzki z mieszkania do domu, a co za tym idzie, powstania nowych potrzeb. Nowe potrzeby to “prawie inteligentny dom”. Właściwie nie do końca inteligentny dom, ale powoli ku rozwiązaniom znanym pod tą nazwą to dąży. Ale po kolei.

Domek ma dwie kondygnacje plus dużą piwnicę z mieszczącym się w niej garażem. Przed przeprowadzką miałem okazję przeprowadzać remont, więc przy tej okazji pociągnąłem po 2-3 skrętki z garażu do części pokoi (nie wszędzie się dało, jako że na totalną demolkę się nie zdecydowaliśmy). Dlaczego do garażu? Bo tam teraz wisi szafka (kuchenna), w której jest router TP-Link TL-WR1043ND z podłączonym hubem usb, dyskiem 750GB i przejściówką usb-serial-1wire oraz bramka voip.

W pokoju komputerowym na piętrze (o ironio bez pociągnętej skrętki z piwnicy) znajduje się drugi router - dlink DIR-320, na którym wcześniej był DD-WRT, a obecnie działa OpenWRT. Dlink łączy się z TP-Linkiem przez wi-fi. Podłączone są do niego przez hub - pendrive, drukarka oraz webcam obserujący bramę i wejście do domu.

Do ekosystemu wkrótce dołączy TP-Link MR3420, ale o tym pewnie napiszę w osobnym poście.

Jest też jeszcze jedno urządzenie, którego pominąć nie wypada. W salonie przy telewizorze stoi sobie WD TV Live. Mała skrzyneczka, która przez ethernet połączona jest z routerem w garażu. Urządzenie niezwykle przydatne i funkcjonalne. Dzięki współpracy z sambą zainstalowaną na routerze pozwala m.in. oglądać przez sieć filmy dopiero co ściągnięte na dysk routera. Także w Full-HD. Działa tak dobrze, że na razie nawet nie kusi mnie specjalnie, żeby wymieniać w nim oprogramowanie na alternatywne.

Inteligentny dom?

Co system w tej chwili potrafi? Na razie głównie monitorować…