Siec

Komunikacja urządzeń inteligentnego domu - Arduino i OpenWRT

Zgodnie z koncepcją , przygotowałem część sprzętową mojego systemu odpowiedzielnego za podlewanie ogródka i parę innych rzeczy. Obiecałem, że wkrótce napiszę, jak to wszystko oprogramować. Wcześniej jednak należałoby zaprojektować komunikację różnych elementów systemu - nie tylko części odpowiedzialnej za podlewanie, ale urządzeń związanych z automatyką domową w szczególności.

Jak już wiecie z koncepcji systemu , “mózgiem” będą routery (jeden główny, drugi zapasowy) z oprogramowaniem w php. Oczywiście nie muszą to być routery - w szczególności mogą to być serwery, komputery, cienkie klienty lub inne urządzenia, na których można uruchomić Linuksa. Router (z zainstalowym OpenWRT ) jest o tyle dobrym wyborem, że jest energooszczędny a dodatkowo i tak działa cały czas pełniąc inne funkcje.

Ethernet Shield, czyli Arduino w Internecie

Ostatnio opisywałem mały router Edimaksa . Nie bez powodu. Zamierzam podłączyć Arduino do Internetu. Właściwie głównie do sieci lokalnej, ale z możliwością bezpośrednich zapytań “w świat”. Jak to zrobić? Przez Ethernet Shield - rozszerzenie nakładane na Arduino (kompatybilne zarówno z Uno jak i Mega ).

Arduino z Ethernet Shield

Komunikuje się ono przez interfejs SPI, który w Arduino Uno wyprowadzony jest na wyjścia 11, 12 i 13, natomiast w Mega na 50, 51 i 52. I tu może pojawić się pytanie, w jaki sposób jest w takim razie, shield jest kompatybilny z obydwoma płytkami. Jest, bo używa pinów oznaczonych jako ICSP, które są połączone z właściwymi wyjściami konkretnego Arduino. Warto to wiedzieć, bo na rynku jest jeszcze kilka “wynalazków” bez złącza ICSP, które używają zwykłych wyjść i nie współpracują poprawnie z wersją Mega (można je zmusić, ale nie w sposób elegancki). Oficjalna wersja działa w każdym razie poprawnie w każdym przypadku.

Edimax BR-6258n - router jak pudełko zapałek

Taki tani? Niestety jeszcze nie, ale taki mały. Zastanawiacie się, po co komu taki gadżet? Można go zabrać ze sobą w podróż, podłączyć w hotelu do sieci przewodowej i mieć wifi. Albo podłączyć do wifi i mieć sieć przewodową. Oczywiście, można, ale to trochę naciągane. Zastosowania jednak są a samo urządzenie ma kilka istotnych zalet.

Edimax BR-6258n wielkości pudełka zapałek

Dwa routery, jedna sieć WiFi

Stali czytelnicy zapewne nieco orientuają się już w mojej sieci. Mam 3 routery. Jeden - Tp-link WR1043ND jest w garażu z podłączonym modemem ADSL, bramką VOIP, interfejsem 1-wire. Od niego biegnie okablowanie do różnych pomieszczeń w domu. Serwuje on też sieć bezprzewodową. Drugi - Tp-link MR3420, połączony jako bezprzewodowy klient steruje przez kartę przekaźnikową systemem podlewania i spełnia kilka innych funkcji. Trzeci - Linksys WRT-160NL (zmieniony ostatnio z wysłużonego Dlinka DIR-320), również podłączony był bezprzewodowo (niedaleko granicy zasięgu) i serwował sieć przewodowo do komputera i kamery Edimax IC-3030 . Do niego podłączona jest też drukarka przez USB, a także dodatkowy dysk udostępniany w sieci. Wszystkie routery pracują pod kontrolą systemu OpenWRT .

D-Link DIR-320 a DD-WRT

dir-320front

Stało się, zrezygnowałem z linii telefonicznej (która i tak była na stale zawieszona, jako że rolę telefonu stacjonarnego przejął już dawno VoIP). W zamian wziąłem Internet z kablówki, która ma całkiem niezłą ofertę (z uwagi na brak konieczności utrzymania “nieużywanej” linii telefonicznej). Przy okazji sprzedałem router ASDL - dobrego, stabilnego Linksysa. Jego miejsce zajął D-Link DIR-320. Co mnie skusiło? Port USB i fakt, że to “edycja OpenSource”. Bardzo mi się podoba podejście producenta, który na swoich stronach umieścił instrukcję, jak wgrać do routera alternatywne oprogramowanie.

Zanim jednak przejdziemy dalej, opowiem jak wygląda moja sieć domowa i jaka jest moja docelowa jej wizja. Centralnym punktem systemu jest “mała serwerownia” - szafka w przedpokoju ze sprzętem. Stoi tam rzeczony router, modem z kablówki, bramka VoIP Linksysa i stary desktop z Linuksem. Poza tym z sieci korzysta przewodowo jeden komputer stacjonarny i bezprzewodowo dwa laptopy, telefon komórkowy i iPod.

Sensownym pytaniem i kluczem do dalszej wizji infrastruktury jest - po cholerę ten desktop w szafce? Jak mam jakieś duże pliki do ściągnięcia to go włączam i ściągam, może pracować choćby całą noc i cały dzień. Gdy wychodzę z domu i potrzebuję się dostać do prywatnych plików - loguję się do niego przez ssh i w razie potrzeby ściągam. Jeżeli jestem gdzieś poza domem połączony do sieci WiFi, do której nie mam zaufania - łączę się z nim i zestawiam połączenie VPN i mogę bezpiecznie surfować po sieci. Czasami nie potrzebuję nawet VPNa, przez ssh otwieram sobie tunel do lokalnego proxy i też mogę bezpiecznie przeglądać strony www. Zastosowań jest wiele. Problemy też są - komputer pobiera sporo prądu, jest dość głośny i wydziela ciepło. Poza tym trzeba pamiętać, żeby go włączyć czy wyłączyć. Idealną sytuacją byłoby, gdyby wszystkie jego funkcje mógł przejąć router. Nierealne? A jednak.

"Ulubione" zawsze pod ręką

Jeżeli jesteś aktywnym użytkownikiem Internetu, zapewne wielokrotnie słyszałeś “social bookmarking”. Nie wszyscy jednak wiedzą co to dokładnie jest i “z czym to się je”. Wiele osób może być zaskoczonych informacją, że to jedna z bardziej przydatnych rzeczy wymyślonych dla Internautów w ostatnich latach. Serwisy należące do grupy “społecznych zakładek” spełniają trzy główne funkcje. Przede wszystkim pozwalają gromadzić odnośniki do ciekawych stron, czyli służą za popularne zakładki czy ulubione (jakkolwiek by to nazwać). Drugą funkcją jest możliwość dzielenia się adresami ze znajomymi i po części także z nieznajomymi. Nie do przecenienia jest również fakt, że są kopalnią linków - zawsze znajdziemy tam coś ciekawego, co polecają inni Internauci.