Własny inteligentny dom #2 – RaspberryPi

Kolejny wpis z serii o inteligentnym domu. Stworzymy środowisko, które da nam możliwość operowania na pojedynczych urządzeniach z poziomu aplikacji na Androida bądź przeglądarki. Zacznijmy więc od samego początku…

Czego dzisiaj potrzebujemy?

Jedną z podstawowych rzeczy, które dzisiaj z pewnością wykorzystamy, będzie cierpliwość. Wierzcie lub nie, ale samo spięcie i sprawdzenie komponentów zajmuje najwięcej czasu. W poprzednim wpisie pokazałem wam pudełko, w którym leżało swobodnie RaspberryPi wraz z płytką pełną przełączników. Do tego jakieś kable, które nie wiadomo czemu były podpięte tak a nie inaczej. Dzisiaj wytłumaczę wszystko po krótce wraz z opisem każdego kabelka.

Pierwszą rzeczą jaką musimy zrobić jest uporządkowanie tego bajzlu (tak wyglądało to wcześniej). Chcę żeby miało to ręce i nogi dlatego postanowiłem wykorzystać parę rzeczy ze starych komputerów. Zabrałem się za szukanie czegoś co mogłoby mi pomóc w przymocowaniu elementów do obudowy. Znalazłem dzięki temu „dystanse” (czy jak to się tam zwie) spod płyty głównej, e-papierosa, stary telefon i fidget spinnera. Jako, że trzy ostatnie rzeczy to śmieci, dlatego skorzystamy z tej pierwszej. Będziemy potrzebowali łącznie 8 sztuk, po cztery dla każdego podzespołu.

Ale, ale, ale, ale… Zawsze to „ale”. Kołki okazały się być za duże dla otworów znajdujących się w płytkach (smuteczek). Tutaj sprawa się trochę komplikuje, ale nie poddam się. Muszę to jakoś zamocować. Z pomocą przychodzi mi mój jakże chytry plan. Zostawię to i niech żyje własnym życiem. Wild and free!

Serio, nie znalazłem żadnej inspiracji. Jeśli coś wymyślę to z pewnością dam znać.

Kabelki

Przejdźmy teraz do połączenia wszystkiego w działający system. Użyjemy do tego kabli łączeniowych (żeńskich). Do podłączenia ośmiu przełączników potrzebujemy dziesięciu kabelków.

 

Poczynając od lewej strony wpinamy odpowiednio: GND (ground), osiem kabli sterujących odpowiadających przełącznikom na płytce oraz zasilanie 5V – pin najbardziej z prawej. Następnie musimy podłączyć kable pod malinkę według schematu ze tej strony.

 

Raspberry ma trzy rodzaje numeracji pinów – BCM, numerowanie jak są ułożone piny fizycznie na płytce oraz WiringPi GPIO. My użyjemy tego ostatniego. Podpinamy kable odpowiedzialne za zasilanie pod GND i 5V (zielony i niebieski). Resztę możemy zaaranżować dowolnie, lecz ja polecam użycie następujących pinów: 8, 9, 7, 2, 3, 12, 13, 14. Zapisujemy je na kartce/komputerze i jesteśmy gotowi do rozpoczęcia zabawy. To co najważniejsze w tym kroku to zapisanie (nie zapamiętasz!), które piny na szynie GPIO są odpowiedzialne za które przełączniki. Za każdym razem, kiedy będziemy chcieli włączyć lub wyłączyć jakieś urządzenie to będziemy musieli wysłać zapytanie z odpowiednim kodem operacji.

Co robią kable do sterowania?

W momencie kiedy chcemy zamknąć obwód i włączyć np. żarówkę to musimy ustawić wartość „1” na pinie odpowiadającym danemu przełącznikowi. Wyłączenie to ustawienie „0” na wyjście. W praktyce wygląda to tak, że „0” jest odcięciem zasilania dla konkretnego pinu. Odpowiednikiem bitowej „1” jest puszenie na pin około 3.3V. Dzieje się to przez wbudowane w RaspberryPi układy i odpowiednie oprogramowanie – my nie musimy się o to martwić. Z poziomu skryptu jest to zwyczajnie włączenie lub wyłączenie pinu.

Co dalej?

Dalej postawimy najprostszy serwer HTTP, który będzie w stanie wywołać skrypty do obsługi żądań użytkownika.

Tutaj pojawia się pytanie: dlaczego użyjemy protokołu HTTP a nie na przykład socketu TCP/UDP własnej roboty? Otóż już od początku przystosujemy system do późniejszego połączenia go z Google Assistant. O tym jednak będzie dedykowany wpis.

Dzisiaj to już wszystko. Podpięliśmy co trzeba, przystosowaliśmy (prawie) obudowę i jesteśmy gotowi do napisania pierwszych skryptów. Niech nastanie jasność!

Pozdrawiam,
Pelski

#shareShare on FacebookShare on Google+Tweet about this on TwitterShare on TumblrPin on PinterestShare on LinkedInShare on VKShare on RedditEmail this to someone