246 58 8MB
Polish Pages [32]
Tytuł oryginału: The Maker's Guide to the Zombie Apocalypse Tłumaczenie: Konrad Matuk ISBN: 978-83-283-2683-5 Original © 2016 by Simon Monk. Title of English-language original: The Maker's Guide to the Zombie Apocalypse, ISBN 978-1-59327-667-6, published by No Starch Press. Polish-language edition copyright © 2016 by Helion SA. All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/apokal.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/apokal Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland.
• Kup książkę • Poleć książkę • Oceń książkę
• Księgarnia internetowa • Lubię to! » Nasza społeczność
Spis treĂci
O AUTORZE ............................................................................................. 11 O KOREKTORZE MERYTORYCZNYM ....................................................... 12 PODZI}KOWANIA ................................................................................... 13 WST}P ...................................................................................................... 15 Najwaĝniejsze umiejÚtnoĂci majsterkowicza niezbÚdne do przetrwania ...............................15 O projektach umoĝliwiajÈcych przeĝycie apokalipsy .............................................................16 Pliki, które naleĝy pobraÊ przed powstaniem zombie ...........................................................18 1 PODSTAWOWE INFORMACJE O APOKALIPSIE ........................................ 19 Zombie ...................................................................................................................................19 Rodzaje zombie ..................................................................................................................20 Czy zombie sÈ naprawdÚ martwe? ....................................................................................21 Jak dïugo potrwa wysyp zombie? ...........................................................................................22 ABC przeĝycia w postapokaliptycznym Ăwiecie ....................................................................23 Dom ...................................................................................................................................23 Woda ..................................................................................................................................24 Jedzenie i paliwo ................................................................................................................24 Zabijanie zombie ................................................................................................................25 Odpowiedni ubiór ..............................................................................................................26 Dbanie o zdrowie ...............................................................................................................26 BÈdě gotowy ..........................................................................................................................28 Inne osoby, które przetrwaïy apokalipsÚ ...............................................................................28 CzÚĂci potrzebne do wykonania projektów ..........................................................................29 Samochody .........................................................................................................................29 Lokalne sklepy z czÚĂciami .................................................................................................30 Praca nad projektami .............................................................................................................31 Lutowanie ..........................................................................................................................31 Konstrukcje mechaniczne ..................................................................................................31 Moduïy elektroniczne ........................................................................................................31
Kup książkę
Poleć książkę
2 GENEROWANIE PRkDU ........................................................................... 33 Moc i energia ......................................................................................................................... 33 Róĝne rodzaje prÈdu ............................................................................................................. 34 PrÈd staïy o niskim napiÚciu ............................................................................................... 35 PrÈd przemienny o wysokim napiÚciu ............................................................................... 37 Ogniwa i akumulatory ........................................................................................................... 38 Ogniwa jednokrotnego uĝytku .......................................................................................... 38 Akumulatory ...................................................................................................................... 38 adowanie akumulatora ........................................................................................................ 39 Projekt 1. adowanie za pomocÈ energii sïonecznej ............................................................. 39 Panele fotowoltaiczne ....................................................................................................... 40 Sterowniki ïadowania ........................................................................................................ 40 Czego bÚdziesz potrzebowaï? ........................................................................................... 41 Konstrukcja ........................................................................................................................ 42 adowanie akumulatora za pomocÈ energii sïonecznej .................................................... 47 Projekt 2. Generator rowerowy ........................................................................................... 48 Czego bÚdziesz potrzebowaï? ........................................................................................... 49 Konstrukcja ........................................................................................................................ 49 Korzystanie z rowerowego generatora ............................................................................. 56 3 KORZYSTANIE Z PRkDU ........................................................................ 59 Zasilanie urzÈdzeñ z akumulatora samochodowego ............................................................. 59 Gniazdo zapalniczki samochodowej .................................................................................. 60 ZasilajÈca wtyczka USB ..................................................................................................... 62 Falowniki ........................................................................................................................... 63 Projekt 3. OĂwietlenie diodowe ............................................................................................ 64 Czego bÚdziesz potrzebowaï? ........................................................................................... 64 Konstrukcja ........................................................................................................................ 65 Korzystanie z oĂwietlenia .................................................................................................. 67 Projekt 4. Monitor akumulatora ............................................................................................ 67 Czego bÚdziesz potrzebowaï? ........................................................................................... 68 Konstrukcja ........................................................................................................................ 69 Program ............................................................................................................................. 72 Korzystanie z monitora naïadowania akumulatora ............................................................ 75 4 ALARMY WYKRYWAJkCE ZOMBIE .......................................................... 77 Projekt 5. Alarm aktywowany za pomocÈ linki ..................................................................... 77 Czego bÚdziesz potrzebowaï? ........................................................................................... 79 Konstrukcja ........................................................................................................................ 80 Korzystanie z alarmu aktywowanego za pomocÈ linki ...................................................... 85
6
Spis treĂci
Kup książkę
Poleć książkę
Projekt 6. Wykrywanie zombie za pomocÈ podczerwieni .....................................................86 Czego bÚdziesz potrzebowaï? ...........................................................................................87 Konstrukcja ........................................................................................................................88 Program .............................................................................................................................90 Obsïuga wykrywacza zombie korzystajÈcego z czujnika podczerwieni .............................92 Czujniki podczerwieni pochodzÈce z odzysku ...................................................................92 5 MONITORING I RASPBERRY PI ............................................................... 95 Raspberry Pi ...........................................................................................................................95 System Raspberry Pi ...........................................................................................................97 Czego bÚdziesz potrzebowaï? ...........................................................................................98 Zasilanie systemu ...............................................................................................................98 Instalacja systemu Raspbian ..............................................................................................100 Projekt 7. Monitorowanie zombie za pomocÈ kamery sieciowej wyposaĝonej w interfejs USB ....................................................................................................................101 Czego bÚdziesz potrzebowaï? .........................................................................................102 Konstrukcja ......................................................................................................................103 Korzystanie z kamery .......................................................................................................109 Projekt 8. Bezprzewodowy system monitorowania zombie ...............................................110 Czego bÚdziesz potrzebowaï? .........................................................................................111 Konstrukcja ......................................................................................................................112 Korzystanie z kamery Wi-Fi .............................................................................................116 6 ZDALNE OTWIERANIE DRZWI I WYKRYWANIE OTWARCIA DRZWI ..... 117 Projekt 9. Zdalnie sterowany zamek do drzwi ....................................................................118 Czego bÚdziesz potrzebowaï? .........................................................................................120 Konstrukcja ......................................................................................................................121 Bezprzewodowe otwieranie drzwi ..................................................................................125 Projekt 10. Czujnik otwarcia drzwi ......................................................................................126 Czego bÚdziesz potrzebowaï? .........................................................................................127 Konstrukcja ......................................................................................................................128 Program ...........................................................................................................................128 Korzystanie z czujnika otwarcia drzwi .............................................................................131 7 MONITOROWANIE OTOCZENIA ............................................................ 133 Projekt 11. Cichy alarm przeciwpoĝarowy ..........................................................................133 Czego bÚdziesz potrzebowaï? .........................................................................................135 Konstrukcja ......................................................................................................................135 Program ...........................................................................................................................142 Korzystanie z alarmu przeciwpoĝarowego ......................................................................144
Spis treĂci
Kup książkę
7
Poleć książkę
Projekt 12. Alarm zapobiegajÈcy przekroczeniu dopuszczalnej temperatury ..................... 144 Czego bÚdziesz potrzebowaï? ......................................................................................... 145 Konstrukcja ...................................................................................................................... 145 Program ........................................................................................................................... 148 Korzystanie z alarmu o przekroczeniu dopuszczalnej temperatury ................................ 150 8 BUDOWA CENTRUM DOWODZENIA BAZk .......................................... 153 Projekt 13. Centrum dowodzenia oparte na Raspberry Pi ................................................. 153 Czego bÚdziesz potrzebowaï? ......................................................................................... 154 Konstrukcja ...................................................................................................................... 154 Program ........................................................................................................................... 155 Korzystanie z centrum zarzÈdzania bazÈ ......................................................................... 162 Projekt 14. Korzystanie z bezprzewodowej technologii Bluetooth .................................... 163 Czego bÚdziesz potrzebowaï? ......................................................................................... 164 Konstrukcja ...................................................................................................................... 164 Program ........................................................................................................................... 168 Korzystanie z centrum dowodzenia wyposaĝonego w interfejs Bluetooth ..................... 170 9 PRZYCIkGANIE UWAGI ZOMBIE ........................................................... 171 Projekt 15. PrzyciÈganie uwagi zombie za pomocÈ lampy bïyskowej sterowanej mikrokontrolerem Arduino .............................................................................. 172 Czego bÚdziesz potrzebowaï? ......................................................................................... 174 Konstrukcja ...................................................................................................................... 175 Program ........................................................................................................................... 181 Korzystanie z generatora bïysków przyciÈgajÈcych uwagÚ zombie ................................ 182 Projekt 16. PrzyciÈganie uwagi zombie za pomocÈ ruchu i děwiÚku generowanych przez Arduino ...................................................................................................................... 184 Czego bÚdziesz potrzebowaï? ......................................................................................... 185 Konstrukcja ...................................................................................................................... 186 Program ........................................................................................................................... 192 Korzystanie z urzÈdzenia odwracajÈcego uwagÚ zombie za pomocÈ děwiÚku i ruchu ... 195 10 KOMUNIKACJA Z INNYMI OCALAYMI ............................................... 197 Projekt 17. Radiolatarnia wykonana na bazie Raspberry Pi ................................................. 198 Czego bÚdziesz potrzebowaï? ......................................................................................... 198 Konstrukcja ...................................................................................................................... 200 Program ........................................................................................................................... 200 Korzystanie z nadajnika FM ............................................................................................. 201 Projekt 18. Skaner radiowy oparty na Arduino ................................................................... 204 Czego bÚdziesz potrzebowaï? ......................................................................................... 204 Konstrukcja ...................................................................................................................... 205
8
Spis treĂci
Kup książkę
Poleć książkę
Program ...........................................................................................................................210 Korzystanie ze skanera .....................................................................................................212 Projekt 19. Latarnia nadajÈca komunikaty za pomocÈ kodu Morse’a ..................................212 Czego bÚdziesz potrzebowaï? .........................................................................................213 Konstrukcja ......................................................................................................................214 Program ...........................................................................................................................217 Korzystanie z latarni nadajÈcej kod Morse’a ....................................................................222 11 KOMUNIKACJA ZA POMOCk WIBRACJI ............................................... 225 Projekt 20. Arduino i cicha komunikacja za pomocÈ wibracji ..............................................225 Czego bÚdziesz potrzebowaï? .........................................................................................227 Konstrukcja ......................................................................................................................228 Program ...........................................................................................................................233 Korzystanie z projektu .....................................................................................................236 A KOMPONENTY ...................................................................................... 239 Moduïy elektroniczne ...........................................................................................................240 Mikrokomputer Raspberry Pi i zwiÈzane z nim komponenty ..............................................240 Kable, druty i zïÈcza .............................................................................................................241 NarzÚdzia .............................................................................................................................242 Komponenty elektroniczne ..................................................................................................242 Pozostaïe komponenty ........................................................................................................243 Kod paskowy rezystora ........................................................................................................243 B PODSTAWOWE UMIEJ}TNO¥CI .............................................................. 245 Zdejmowanie izolacji ............................................................................................................245 SkrÚcanie ze sobÈ przewodów ............................................................................................246 Podstawy wykonywania poïÈczeñ lutowniczych ..................................................................248 Lutowanie kabli ................................................................................................................249 Przylutowywanie komponentów do pïytki obwodu ........................................................250 Korzystanie z koszulek termokurczliwych ...........................................................................253 Korzystanie z multimetru .....................................................................................................254 Pomiar napiÚcia prÈdu staïego .........................................................................................256 Pomiar natÚĝenia prÈdu staïego .......................................................................................257 Pomiar rezystancji ............................................................................................................258 Testowanie ciÈgïoĂci ........................................................................................................259 Dodatkowe funkcje multimetru .......................................................................................260 C ARDUINO — PORADNIK DLA POCZkTKUJkCYCH .............................. 261 Czym jest Arduino? ..............................................................................................................261 ¥rodowisko programistyczne Arduino .................................................................................263
Spis treĂci
Kup książkę
9
Poleć książkę
Instalacja zintegrowanego Ărodowiska programistycznego Arduino ................................... 263 Wgrywanie szkicu ............................................................................................................ 265 Instalowanie szkiców uïatwiajÈcych walkÚ z zombie ....................................................... 266 Podstawy programowania Arduino ..................................................................................... 267 Struktura szkicu Arduino ................................................................................................. 267 Tworzenie zmiennych i staïych ....................................................................................... 268 Konfigurowanie cyfrowych wyjĂÊ .................................................................................... 268 Konfigurowanie cyfrowych wejĂÊ .................................................................................... 269 Stabilizacja cyfrowych wejĂÊ za pomocÈ rezystora podciÈgajÈcego ................................ 270 Odczyt danych z analogowych wejĂÊ .............................................................................. 271 Generowanie analogowych sygnaïów wyjĂciowych ........................................................ 272 Powtarzanie kodu za pomocÈ pÚtli warunkowych .......................................................... 272 OkreĂlanie dwóch warunków za pomocÈ instrukcji if i else ............................................ 274 Porównywanie wartoĂci logicznych ................................................................................ 275 Grupowanie kodu — tworzenie funkcji .......................................................................... 275 Montaĝ pïytki Screw Shield ................................................................................................. 277 Dalsza lektura ...................................................................................................................... 280 SKOROWIDZ .......................................................................................... 281
10
Spis treĂci
Kup książkę
Poleć książkę
5 Monitoring i Raspberry Pi POZA WYKRYWANIEM ZOMBIE WARTO RÓWNIE¿ OBSERWOWAm ICH POCZYNANIA. NIE PRÓBUJ ¥LEDZIm HORDY UMARLAKÓW OSOBI¥CIE! PRZYGLkDAJ SI} IM Z BEZPIECZNEJ ODLEGO¥CI, CZYLI z wnÚtrza swojej bazy — uchroni CiÚ to przed zgubnymi skutkami bezpoĂredniego kontaktu z zombie. W tym rozdziale dowiesz siÚ, jak korzystaÊ z kamer sieciowych wyposaĝonych w interfejs USB oraz z kamer wyposaĝonych w interfejs bezprzewodowy. W celu zminimalizowania zuĝycia prÈdu bÚdziemy korzystaÊ z jednopïytkowego komputera Raspberry Pi (rysunek 5.1). Oba projekty przedstawione w tym rozdziale wymagajÈ pobrania odpowiedniego oprogramowania. W zwiÈzku z tym warto przygotowaÊ system do pracy jeszcze przed nadejĂciem apokalipsy.
Raspberry Pi Zaprezentowane przeze mnie projekty mogÈ byÊ obsïugiwane za pomocÈ standardowego laptopa lub komputera stacjonarnego, ale urzÈdzenia te pobierajÈ duĝo prÈdu. Laptop charakteryzuje siÚ mocÈ od 20 W do 60 W, a komputer stacjonarny moĝe pobieraÊ jeszcze wiÚcej prÈdu. Ponadto potrzebowaïbyĂ falownika. Zasilacze laptopów generujÈ prÈd staïy o niskim napiÚciu, ale zwykle napiÚcie to jest wyĝsze od 12 V, a wiÚc bezpoĂrednie zasilanie laptopa z akumulatora 12 V jest niemoĝliwe.
Kup książkę
Poleć książkę
Rysunek 5.1. Zombie uĂmiechajÈcy siÚ i machajÈcy do obiektywu kamery Ponadto wyobraě sobie sytuacjÚ, w której jesteĂ zmuszony do opuszczenia swojej bazy z powodu naporu zombie. Czy naprawdÚ chciaïbyĂ ryzykowaÊ ĝycie, taszczÈc ogromnÈ obudowÚ komputera stacjonarnego? Raspberry Pi jest miniaturowym jednopïytkowym komputerem pracujÈcym pod kontrolÈ systemu Linux. Wymiary tej pïytki sÈ zbliĝone do wymiarów karty kredytowej. Raspberry Pi charakteryzuje siÚ mocÈ 3 W. W tym projekcie, a takĝe w innych projektach opisanych w tej ksiÈĝce wykorzystujemy pïytkÚ Raspberry Pi Model B+ (rysunek 5.2). Jeĝeli dysponujesz starszÈ pïytkÈ Raspberry Pi Model B lub nowszÈ Raspberry Pi 2, teĝ moĝesz z nich korzystaÊ. WiÚksza wydajnoĂÊ nowszej pïytki powinna sprawiÊ, ĝe strona pokazujÈca obraz rejestrowany przez kamerÚ powinna byÊ wyĂwietlana znacznie szybciej. Nie warto korzystaÊ z modeli A i A+, poniewaĝ charakteryzujÈ siÚ one niĝszÈ wydajnoĂciÈ i zainstalowano na nich pamiÚÊ operacyjnÈ o mniejszej pojemnoĂci. Raspberry Pi moĝe wykonywaÊ skrypty napisane w Pythonie i moĝe zostaÊ podïÈczony do zewnÚtrznych urzÈdzeñ. Na przykïad w projekcie opisanym w podrozdziale „Projekt 7. Monitorowanie zombie za pomocÈ kamery sieciowej wyposaĝonej w interfejs USB” dioda LED podïÈczona do zïÈcza GPIO pïytki Raspberry Pi zmieni kolor emitowanego Ăwiatïa z zielonego na czerwony. ZïÈcze GPIO skïada siÚ z dwóch rzÚdów pinów znajdujÈcych siÚ z boku pïytki (zob. rysunek 5.2).
96
Rozdziaï 5
Kup książkę
Poleć książkę
Rysunek 5.2. Pïytka Raspberry Pi Model B+
System Raspberry Pi W celu uzyskania w peïni funkcjonalnego komputera do pïytki Raspberry Pi naleĝy podïÈczyÊ klawiaturÚ i mysz USB, a takĝe maïy monitor wyposaĝony w zïÈcze HDMI (multimedialny interfejs wysokiej rozdzielczoĂci) — rysunek 5.3.
Rysunek 5.3. System komputerowy oparty na Raspberry Pi Klawiatura i mysz to standardowe urzÈdzenia peryferyjne, które moĝesz kupiÊ wszÚdzie. W celu ciÈgïego podglÈdu poczynañ zombie do Raspberry Pi moĝesz
Monitoring i Raspberry Pi
Kup książkę
97
Poleć książkę
podïÈczyÊ zwyczajny telewizor lub monitor. Jednakĝe w celu zminimalizowania iloĂci pobieranego prÈdu w tym projekcie bÚdziemy korzystaÊ z monitora zasilanego prÈdem staïym o napiÚciu 12 V, o przekÈtnej ekranu równej 7 cali (18 cm). W najgorszym wypadku zastosowanie tego monitora podwoi moc pobieranÈ przez komputer, która moĝe wtedy osiÈgnÈÊ szczytowÈ wartoĂÊ 6 W.
Czego bÚdziesz potrzebowaï? Do podïÈczenia systemu komputerowego opartego na Raspberry Pi do akumulatora dostarczajÈcego prÈd o napiÚciu 12 V bÚdziesz potrzebowaï nastÚpujÈcych komponentów: Komponent
Uwagi
½ródïo
Raspberry Pi
Model B+ lub Pi 2 z kartÈ SD zawierajÈcÈ pakiet NOOBS
Adafruit (2358), Botland (RPI-02544)
Maïy monitor wyposaĝony w zïÈcze HDMI
Monitor ze zïÈczem HDMI zasilany prÈdem o napiÚciu 12 V; sugerowane urzÈdzenie charakteryzuje siÚ rozdzielczoĂciÈ 800u480 pikseli
Adafruit (1934), Allegro
Klawiatura i mysz
Standardowa klawiatura i mysz (oba urzÈdzenia muszÈ byÊ wyposaĝone w interfejs USB)
Sklep komputerowy, sklepy internetowe
Kabel HDMI
Najkrótszy
Sklep komputerowy, sklepy internetowe
Adapter podïÈczany do gniazdka zapalniczki samochodowej umoĝliwiajÈcy zasilanie urzÈdzeñ wyposaĝonych w zïÈcze USB
Minimalne natÚĝenie prÈdu: 1 A
Sklep motoryzacyjny, sklep komputerowy
Adapter zapalniczki samochodowej zakoñczony wtykiem zasilajÈcym o Ărednicy 2,1 mm Aktywny koncentrator USB
Sklep motoryzacyjny
NiezbÚdny tylko w przypadku pracy z pïytkÈ Raspberry Pi Model B
Sklep komputerowy, sklepy internetowe
Jeĝeli korzystasz z pïytki Raspberry Pi Model B, która zawiera zaledwie dwa gniazda USB, to bÚdziesz musiaï zastosowaÊ aktywny koncentrator USB lub zestaw myszy i klawiatury bezprzewodowej wyposaĝony we wspólny kontroler USB. Jeĝeli podïÈczysz mysz i klawiaturÚ bezpoĂrednio do dwóch portów USB pïytki Raspberry Pi, to nie bÚdziesz miaï gdzie podïÈczyÊ kamery bÚdÈcej elementem kolejnego projektu.
Zasilanie systemu Raspberry Pi jest zasilany za poĂrednictwem gniazda micro USB, a wiÚc w celu podïÈczenia tej pïytki do akumulatora 12 V moĝesz skorzystaÊ z adaptera umoĝliwiajÈcego podïÈczanie urzÈdzeñ USB do gniazdka zapalniczki samochodowej. Sugerowany przeze mnie monitor jest wyposaĝony w oddzielnÈ pïytkÚ sterujÈcÈ,
98
Rozdziaï 5
Kup książkę
Poleć książkę
która dostarcza do niego prÈd i umoĝliwia poïÈczenie z Raspberry Pi (pïytkÚ tÚ widaÊ na Ărodku rysunku 5.3). Pïytka sterujÈca pracÈ monitora jest wyposaĝona w gniazdo zasilania o Ărednicy 2,1 mm. Rozdzielacz gniazda zapalniczki samochodowej wyposaĝony w zïÈcza USB (rysunek 5.4) doskonale nadaje siÚ do zasilania caïego systemu z akumulatorów. Jeĝeli jeszcze tego nie zrobiïeĂ, to zastÈp teraz wtyczkÚ gniazda zapalniczki samochodowej parÈ zacisków typu krokodyl, co umoĝliwi podïÈczenie takiego rozdzielacza bezpoĂrednio do akumulatora. W rozdziale 3. znajdziesz instrukcje dotyczÈce podïÈczania do akumulatora róĝnych urzÈdzeñ.
Rysunek 5.4. Rozdzielacz gniazda zapalniczki samochodowej wyposaĝony w dodatkowe gniazda USB KorzystajÈc z urzÈdzenia widocznego na rysunku 5.4, moĝesz zasilaÊ Raspberry Pi za pomocÈ standardowego przewodu micro USB, a w podrozdziale „Projekt 8. Bezprzewodowy system monitorowania zombie” do gniazda zapalniczki podïÈczysz adapter umoĝliwiajÈcy zasilanie kamery Wi-Fi i routera. Przyjrzyj siÚ napiÚciom znamionowym kamery i routera. Najprawdopodobniej urzÈdzenia te sÈ zasilane prÈdem staïym o napiÚciu 12 V, co w postapokaliptycznym Ăwiecie umoĝliwi zasilanie ich za pomocÈ zgromadzonego zapasu akumulatorów samochodowych. Ostrzeĝenie Zachowaj ostroĝnoĂÊ podczas pracy z wyĂwietlaczem, szczególnie jeĝeli tylna
Ăciana obudowy ekranu jest wykonana z metalu — jeĝeli dotknie ona odsïoniÚtego tyïu pïytki sterownika, to dojdzie do zwarcia i uszkodzenia pïytki. PïytkÚ sterownika ekranu moĝesz podïÈczyÊ do akumulatora za pomocÈ kabla, który z jednej strony bÚdzie zakoñczony okrÈgïÈ wtyczkÈ o Ărednicy 2,1 mm, a z drugiej zaciskami typu krokodyl. Jednakĝe lepszym pomysïem od zakïadania wielu tego typu zacisków na bieguny jednego akumulatora jest skorzystanie z rozdzielacza gniazda zapalniczki samochodowej. DziÚki niemu bÚdziesz mógï podïÈczyÊ do akumulatora wiele róĝnych urzÈdzeñ wyposaĝonych we wtyczki zapalniczki samochodowej (zob. rozdziaï 3., sekcjÚ „Gniazdo zapalniczki samochodowej”).
Monitoring i Raspberry Pi
Kup książkę
99
Poleć książkę
Instalacja systemu Raspbian Komputer Raspberry Pi nie jest wyposaĝony w dysk twardy. System operacyjny komputerów Raspberry Pi 2 i Raspberry Pi Model B+ jest zapisany na karcie microSD, na której przechowywane sÈ równieĝ programy i dane. Starsze wersje Raspberry Pi korzystaïy ze standardowej karty SD. Podczas apokalipsy nie bÚdziesz miaï dostÚpu do internetu, a wiÚc postaraj siÚ kupiÊ kartÚ z zaïadowanym systemem. Jeĝeli chcesz sam zainstalowaÊ system na pustej karcie pamiÚci, a internet jeszcze dziaïa, to wykonaj instrukcje przedstawione na stronie: http://www.raspberrypi. org/help/noobs-setup/. Niezaleĝnie od tego, czy kupisz kartÚ z zaïadowanym systemem, czy umieĂcisz go na karcie sam, zakïadam, ĝe posiadasz kartÚ microSD z instalatorem NOOBS (ang. New Out Of the Box Software) stworzonym przez Raspberry Pi Foundation. Wïóĝ kartÚ microSD w odpowiednie gniazdo komputera Raspberry Pi, podïÈcz do niego klawiaturÚ, mysz i monitor, a nastÚpnie podïÈcz wszystko do zasilania. Wskazówka Sugerowany przeze mnie monitor powinien wykryÊ Raspberry Pi podïÈczony do
portu HDMI, a Raspberry Pi powinien automatycznie wykryÊ rozdzielczoĂÊ tego ekranu. Jeĝeli Raspberry Pi nie wykrywa rozdzielczoĂci ekranu, to zajrzyj do dokumentacji znajdujÈcej siÚ na stronie: http://www.raspberrypi.org/documentation/ — sekcja configuration (konfiguracja) — i zapoznaj siÚ z zawartoĂciÈ pliku config.txt, dziÚki której dowiesz siÚ, jak skonfigurowaÊ komputer Raspberry Pi. Wydrukuj wspomnianÈ dokumentacjÚ i wïóĝ jÈ do tej ksiÈĝki — przygotuj siÚ na nadejĂcie apokalipsy i brak dostÚpu do internetu. Po uruchomieniu Raspberry Pi pakiet NOOBS zaproponuje Ci wybór systemu operacyjnego. W tej ksiÈĝce korzystamy z systemu Raspbian, a wiÚc zaznacz pole znajdujÈce siÚ obok nazwy tego systemu i kliknij przycisk Install (instaluj). Instalacja systemu operacyjnego jest dïugotrwaïa, a wiÚc obserwuj wskazania systemu wykrywajÈcego zombie i upewnij siÚ, czy dysponujesz odpowiednim zapasem akumulatorów. Po zakoñczeniu instalacji moĝesz wykonaÊ kolejne czynnoĂci. Do systemu Raspbian doïÈczono wiele uĝytecznych programów, ale w chwili pisania tej ksiÈĝki brakuje w nim porzÈdnej przeglÈdarki internetowej, która bÚdzie wspóïpracowaïa z kamerÈ sieciowÈ. MojÈ ulubionÈ przeglÈdarkÈ jest Chromium — zmodyfikowana wersja Google Chrome, która dziaïa sprawnie po uruchomieniu na skromnych zasobach komputera Raspberry Pi. Aplikacja Chromium, tak jak wiÚkszoĂÊ darmowego oprogramowania, musi zostaÊ pobrana z internetu. Przepraszam, jeĝeli jest juĝ na to za póěno, ale musisz teraz podïÈczyÊ Raspberry Pi do swojego domowego routera za pomocÈ kabla Ethernet i zainstalowaÊ przeglÈdarkÚ Chromium. Kliknij ikonÚ LX Terminal znajdujÈcÈ siÚ na pulpicie. Spowoduje to otwarcie okna terminala, w którym bÚdzie widoczny tylko znak zachÚty: $
100
Rozdziaï 5
Kup książkę
Poleć książkę
Za kaĝdym razem, gdy bÚdÚ CiÚ prosiï o wpisanie jakiegoĂ polecenia, bÚdÚ podawaï je obok znaku zachÚty, którego nie musisz wpisywaÊ. W otwartym wczeĂniej oknie wprowadě nastÚpujÈce polecenia: $ sudo apt-get update $ sudo apt-get install chromium
Polecenie sudo (z ang. substitute user do) umoĝliwia wykonywanie poleceñ administracyjnych. Naleĝy poprzedziÊ nim polecenia wymagajÈce uprawnieñ administratora — przykïadem takich poleceñ sÈ polecenia instalujÈce nowe oprogramowanie, z których teraz korzystamy. Program zarzÈdzajÈcy pakietami apt-get jest skïadnikiem dystrybucji systemu Linux opartych na projekcie Debian i sïuĝy do zarzÈdzania oprogramowaniem i instalowania aplikacji. Polecenie update uĝyte wraz z poleceniem apt-get powoduje aktualizacjÚ listy programów dostÚpnych w internetowych repozytoriach. Polecenie apt-get install sprawi, ĝe program apt-get znajdzie i zainstaluje najnowszÈ wersjÚ pakietu okreĂlanego przez ostatni argument, który w tym przypadku okreĂla koniecznoĂÊ zainstalowania przeglÈdarki Chromium. Po zainstalowaniu przeglÈdarki Chromium moĝesz przystÈpiÊ do pracy nad projektem monitoringu przeznaczonego do obserwowania poczynañ zombie!
Projekt 7. Monitorowanie zombie za pomocÈ kamery sieciowej wyposaĝonej w interfejs USB W tym projekcie bÚdziemy korzystaÊ z taniej kamery sieciowej wyposaĝonej w interfejs USB, którÈ podïÈczymy do Raspberry Pi za pomocÈ dïugiego przewodu. Maksymalna dïugoĂÊ kabla USB 2.0 wynosi 30 m, a wiÚc kamerÚ moĝesz umieĂciÊ nawet w takiej odlegïoĂci od komputera. WiÚkszoĂÊ elementów projektu widaÊ na rysunku 5.5. Kamera internetowa znajduje siÚ poza kadrem po lewej stronie biurka, a wiÚc pokazaïem jÈ na dodatkowym obrazku widocznym w prawym górnym rogu tego rysunku. Samodzielna konstrukcja systemu monitoringu, w przeciwieñstwie do gotowych zestawów telewizji przemysïowej, umoĝliwia zaprojektowanie oprogramowania idealnie dopasowanego do Twoich potrzeb. Kamera sieciowa jest sterowana za pomocÈ krótkiego programu napisanego w Pythonie. Program ten wykrywa zmiany przechwytywanego obrazu. Po wykryciu ruchu zmienia on z zielonego na czerwony kolor Ăwiatïa emitowanego przez diodÚ RGB podïÈczonÈ do pinów zïÈcza GPIO pïytki Raspberry Pi. Alarm moĝesz skasowaÊ, wciskajÈc klawisz spacji — spowoduje to zmianÚ koloru Ăwiatïa emitowanego przez diodÚ z powrotem na zielony.
Monitoring i Raspberry Pi
Kup książkę
101
Poleć książkę
Rysunek 5.5. Kamera monitorujÈca poczynania zombie oraz alarm wykrywajÈcy ruch Projekt ten ma tÚ przewagÚ nad projektem opisanym w rozdziale 4., w podrozdziale „Projekt 6. Wykrywanie zombie za pomocÈ podczerwieni”, ĝe po uruchomieniu alarmu bÚdziesz mógï dokïadnie przyjrzeÊ siÚ zombie, który chce CiÚ zaatakowaÊ.
Czego bÚdziesz potrzebowaï? Do wykonania tego projektu bÚdziesz potrzebowaï systemu opartego na pïytce Raspberry Pi (opisanego w podrozdziale „Raspberry Pi”) i nastÚpujÈcych komponentów: Komponent
Uwagi
½ródïo
Kamera USB
ListÚ kompatybilnych kamer znajdziesz na stronie: http://elinux.org/RPi_USB_
Sklep komputerowy
Przedïuĝacz kabla USB
Wybierz kabel o wïaĂciwej dïugoĂci (nie moĝe ona przekraczaÊ 30 m)
Sklep komputerowy
Raspberry Squid — dioda RGB i nakïadka uïatwiajÈca pracÚ ze zïÈczem GPIO
Dioda RGB z rezystorami ograniczajÈcymi oraz przewodami umoĝliwiajÈcymi podïÈczenie jej do gniazda GPIO
Allegro, http://www. monkmakes.com/squid/
Webcams
102
Rozdziaï 5
Kup książkę
Poleć książkę
Nie kaĝda kamera USB jest kompatybilna z Raspberry Pi. ListÚ kompatybilnych urzÈdzeñ znajdziesz na stronie: http://elinux.org/RPi_USB_Webcams. W swojej wersji opisywanego projektu skorzystaïem z kamery HP 2300 Webcam. Wskazówka Istnieje specjalny moduï kamery o wysokiej rozdzielczoĂci przeznaczonej dla Rasp-
berry Pi, podïÈczany bezpoĂrednio do specjalnego gniazda pïytki Raspberry Pi. Moduï ten sprawdza siÚ doskonale jako kamera, jednak w naszym projekcie nie moĝemy z niego skorzystaÊ, poniewaĝ kamera, której uĝywamy, musi byÊ zainstalowana w duĝej odlegïoĂci od Raspberry Pi. Raspberry Squid jest praktycznym gadĝetem stworzonym z myĂlÈ o Raspberry Pi. Jest to dioda RGB LED z wbudowanymi rezystorami ograniczajÈcymi, którÈ moĝesz podïÈczyÊ bezpoĂrednio do pinów portu GPIO. Projekt ten jest otwarty i instrukcje umoĝliwiajÈce jego samodzielne zbudowanie znajdziesz na stronie: https://github.com/simonmonk/squid/. Istnieje równieĝ moĝliwoĂÊ zakupu gotowego gadĝetu. WiÚcej informacji na ten temat znajdziesz na stronie: http:// www.monkmakes.com/.
Konstrukcja Po poïÈczeniu ze sobÈ wszystkich komponentów wymienionych w sekcji „System Raspberry Pi” bÚdziesz musiaï jedynie podïÈczyÊ diodÚ Raspberry Squid do portu GPIO, kamerÚ do gniazda USB, monitor do prÈdu o napiÚciu 12 V i Raspberry Pi do prÈdu o napiÚciu 5 V (rysunek 5.6).
Krok 1. PodïÈcz diodÚ Raspberry Squid SterujÈc trzema zïÈczami, do których podïÈczona jest dioda Raspberry Squid, moĝna wygenerowaÊ dowolny kolor emitowanego przez niÈ Ăwiatïa. W projekcie nie bÚdziemy korzystaÊ z peïnego potencjaïu tej diody, poniewaĝ potrzebujemy jedynie Ăwiateï zielonego i czerwonego. W celu uïatwienia identyfikacji pinów zïÈcza GPIO moĝesz skorzystaÊ ze specjalnego szablonu. Szablony takie znajdziesz w ofercie róĝnych dostawców, m.in. udostÚpnia je Adafruit. Przykïadem takiego szablonu jest Raspberry Leaf doïÈczany do gotowej diody Raspberry Squid. Szablon naïóĝ na piny zïÈcza GPIO — bÚdziesz mógï z ïatwoĂciÈ zidentyfikowaÊ poszczególne styki tego zïÈcza. Teraz moĝesz podïÈczyÊ diodÚ Raspberry Squid (rysunek 5.7). Czarny przewód diody Raspberry Squid naleĝy podïÈczyÊ do dowolnego pinu oznaczonego etykietÈ GND (masa). ProponujÚ, abyĂ skorzystaï w tym celu z trzeciego pinu (liczÈc od góry) znajdujÈcego siÚ w prawym rzÚdzie styków (patrzÈc na pïytkÚ tak, jak pokazano na rysunku 5.7). Czerwony przewód diody Raspberry Squid podïÈcz do pinu numer 18, a zielony do pinu numer 23. Nie bÚdziesz potrzebowaï koloru niebieskiego, a wiÚc niebieski przewód diody Raspberry Squid moĝesz pozostawiÊ niepodïÈczony, ale dla porzÈdku moĝesz go podïÈczyÊ do dowolnego z pozostaïych pinów zïÈcza GPIO oznaczonych etykietÈ GND.
Monitoring i Raspberry Pi
Kup książkę
103
Poleć książkę
Rysunek 5.6. Schemat systemu monitoringu
Rysunek 5.7. PodïÈczanie diody Raspberry Squid do zïÈcza GPIO
Krok 2. Zainstaluj kamerÚ USB Jeĝeli masz juĝ kamerÚ USB, to przed ewentualnym zakupem innego modelu sprawdě, czy posiadany przez Ciebie egzemplarz wspóïpracuje z Raspberry Pi. Na poczÈtku sprawdě, czy Raspberry Pi wykrywa TwojÈ kamerÚ jako urzÈdzenie
104
Rozdziaï 5
Kup książkę
Poleć książkę
USB — w oknie LXTerminal wpisz polecenie lsusb. Polecenie to naleĝy wpisaÊ po raz pierwszy przed podïÈczeniem kamery do komputera oraz po raz drugi po jej podïÈczeniu (nie korzystaj jeszcze z przedïuĝacza kabla USB). $ lsusb Bus 001 Bus 001 Bus 001 Bus 001 Bus 001 Bus 001
Device Device Device Device Device Device
002: 001: 003: 004: 006: 005:
ID ID ID ID ID ID
0424:9514 1d6b:0002 0424:ec00 03f0:e207 04d9:1603 1c4f:0034
Standard Microsystems Corp. Linux Foundation 2.0 root hub Standard Microsystems Corp. Hewlett-Packard Holtek Semiconductor, Inc. Keyboard SiGma Micro
Jeĝeli po podïÈczeniu kamery na liĂcie pojawia siÚ dodatkowe urzÈdzenie, to powinno byÊ ono TwojÈ kamerÈ. Moja kamera jest wyĂwietlana na powyĝszej liĂcie jako jej czwarty element (liczÈc od góry). Jeĝeli Twoja kamera nie pojawia siÚ na liĂcie, to spróbuj jÈ odïÈczyÊ, podïÈczyÊ ponownie, a nastÚpnie po raz kolejny uruchomiÊ polecenie lsusb. Jeĝeli to nie zadziaïa, spróbuj uruchomiÊ Raspberry Pi ponownie. Niestety, wykrywanie kamery jako urzÈdzenia USB nie gwarantuje jej poprawnej wspóïpracy z Raspberry Pi. Okaĝe siÚ to dopiero po uruchomieniu programu. Moĝe byÊ tak, ĝe Twoja kamera dziaïa poprawnie dopiero po podïÈczeniu do aktywnego koncentratora USB. W przypadku starszych modeli Raspberry Pi podïÈczenie kamery do portu USB moĝe powodowaÊ ponowne uruchamianie siÚ caïego systemu. W takim przypadku kamerÚ naleĝy podïÈczyÊ przed uruchomieniem Raspberry Pi.
Krok 3. Instalacja oprogramowania PodïÈcz Raspberry Pi do sieci za pomocÈ kabla Ethernet. Upewnij siÚ, ĝe poïÈczenie z internetem jest aktywne, i pobierz archiwum z kodami programów opisanych w tej ksiÈĝce. W celu pobrania tego archiwum uruchom przeglÈdarkÚ internetowÈ i wpisz w jej oknie adres: http://www.helion.pl/ksiazki/apokal.htm. Na stronie tej znajdziesz odwoïanie do pliku bÚdÈcego archiwum z kodem. Podczas pracy nad tym projektem bÚdziesz korzystaï z kodu znajdujÈcego siÚ w folderze usb_webcam. Archiwum z kodem moĝesz pobraÊ równieĝ bezpoĂrednio z serwera FTP (ramka „Pobieranie kodu z serwera”). Kod programu monitor.py napisanego w Pythonie jest doĂÊ krótki — wyjaĂniÚ go w dalszej czÚĂci tego podrozdziaïu. Nie bÚdÚ tu opisywaï zagadnieñ zwiÈzanych z jÚzykiem Python, które wykraczajÈ poza tematykÚ tego projektu. Jeĝeli nie miaïeĂ wczeĂniej stycznoĂci z tym jÚzykiem programowania, to moĝesz zajrzeÊ do mojej ksiÈĝki Raspberry Pi. Przewodnik dla programistów Pythona (Helion, 2014). Kod programu rozpoczyna siÚ od poleceñ importujÈcych moduïy, z których korzysta aplikacja. Importowane biblioteki wchodzÈ w skïad systemu Raspbian, a wiÚc nie bÚdziesz musiaï ich dodatkowo instalowaÊ.
Monitoring i Raspberry Pi
Kup książkę
105
Poleć książkę
POBIERANIE KODU Z SERWERA Kod wszystkich programów opisanych w tej ksiÈĝce moĝesz pobraÊ z serwera FTP. Moĝesz to zrobiÊ, wpisujÈc w oknie przeglÈdarki adres: ftp://ftp.helion.pl/ przyklady/apokal.zip lub wpisujÈc w oknie LXTerminal polecenie: $ wget ftp://ftp.helion.pl/przyklady/apokal.zip
Spowoduje to pobranie archiwum zawierajÈcego kod programów (bÚdzie do tego potrzebne poïÈczenie z internetem, a wiÚc plik ten warto pobraÊ, zanim rozpocznie siÚ apokalipsa). Pobrane archiwum naleĝy rozpakowaÊ. W tym celu uruchom polecenie: $ unzip apokal.zip
W niektórych dystrybucjach systemu Linux rozpakowanie pliku moĝe wymagaÊ zainstalowania specjalnego narzÚdzia. W tym celu uruchom polecenie: $ sudo apt-get install unzip
import import import import import
sys time pygame pygame.camera RPi.GPIO as GPIO
Moduïy time i sys zawierajÈ narzÚdzia umoĝliwiajÈce dostÚp do systemu operacyjnego i uĂpienie programu (jest to sposób na opóěnienie wykonywania niektórych operacji). Moduï pygame zawiera graficznÈ bibliotekÚ gier Pygame, w której znajduje siÚ interfejs obsïugujÈcy kamerÚ. Program wymaga równieĝ dostÚpu do systemu GPIO w celu sterowania pracÈ diody LED — umoĝliwia to biblioteka RPi.GPIO. W dalszej czÚĂci kodu znajdujÈ siÚ staïe, które bÚdÈ uĝywane przez program. Moĝesz je zmodyfikowaÊ, jeĝeli chcesz korzystaÊ z obrazu kamery o innej rozdzielczoĂci lub jeĝeli chcesz zwiÚkszyÊ domyĂlny rozmiar okna. camera_res = (320, 240) window_size = (640, 480) red_pin = 18 green_pin = 23
Parametry znajdujÈce siÚ w nawiasach po staïych camera_res i window_size okreĂlajÈ kolejno szerokoĂÊ i wysokoĂÊ wyraĝone w pikselach. Kod znajdujÈcy siÚ po tych staïych inicjalizuje system Pygame (uĝywany do wyĂwietlania obrazu rejestrowanego przez kamerÚ), kamerÚ oraz porty GPIO, które umoĝliwiajÈ sterowanie barwÈ diody Raspberry Squid:
106
Rozdziaï 5
Kup książkę
Poleć książkę
pygame.init() pygame.camera.init() # Inicjalizuj záącze GPIO. GPIO.setmode(GPIO.BCM) GPIO.setup(red_pin, GPIO.OUT) GPIO.setup(green_pin, GPIO.OUT) screen = pygame.display.set_mode(window_size, 0) # ZnajdĨ, otwórz i uruchom kamerĊ o niskiej rozdzielczoĞci. cam_list = pygame.camera.list_cameras() webcam = pygame.camera.Camera(cam_list[0], camera_res) webcam.start() old_image = False
Pierwsze dwie linie kodu inicjalizujÈcego ( ) obsïugujÈ bibliotekÚ Pygame i kamerÚ, a kolejne trzy linie ( ) inicjalizujÈ porty zïÈcza GPIO. NastÚpnie inicjalizowany jest ekran ( ) — przybiera on wymiary okreĂlone przez staïÈ window_size. Kolejny fragment kodu (oznaczony numerem ) wyszukuje wszystkie kamery podïÈczone do Raspberry Pi, a nastÚpnie tworzy odwoïanie do pierwszej z nich (webcam). NastÚpnie kamera ta jest uruchamiana. Ostatnia linia kodu ( ) definiuje zmiennÈ o nazwie old_image, która jest uĝywana do wykrywania ruchu w wyniku porównywania ze sobÈ kolejnych klatek rejestrowanych przez kamerÚ. Po inicjalizacji wszystkich elementów program uruchamia sprawdzajÈcÈ ruch funkcjÚ check_for_movement: def check_for_movement(old_image, new_image): global c diff_image = pygame.PixelArray(new_image) .compare(pygame.PixelArray(old_image), distance=0.5, weights=(0.299, 0.587, 0.114)) ys = range(0, camera_res[1] / 20) for x in range(0, camera_res[0] / 20): for y in ys: if diff_image[x*20, y*20] > 0: return True return False
Funkcja check_for_movement porównuje ze sobÈ dwa obrazy: poprzedniÈ klatkÚ (old_image) i ostatniÈ klatkÚ (old_image). Parametr distance jest uĝywany do porównywania (compare) róĝnicy pomiÚdzy kolorami odpowiadajÈcych sobie pikseli obu obrazów. Parametr weights nie jest wyjaĂniony w dokumentacji biblioteki pygame, a wartoĂci uĝyte w tym programie zostaïy wziÚte z przykïadu PixelArray przedstawionego w dokumentacji tej biblioteki (http://www.pygame.org/docs/ref/ pixelarray.html). W wyniku operacji porównywania powstaje nowy obraz o nazwie diff_image, w którym biaïe piksele zostaïy wstawione w miejsca, gdzie wykryto róĝnicÚ kolorów.
Monitoring i Raspberry Pi
Kup książkę
107
Poleć książkę
W celu wykrycia ruchu program powinien przeanalizowaÊ kaĝdy piksel obrazu diff_image, ale duĝy ruch spowoduje zmianÚ wielu pikseli, a zombie sÈ duĝe.
W zwiÈzku z tym kod analizuje co dwudziesty piksel. Kolejne dwie funkcje sprawiajÈ, ĝe dioda Raspberry Squid emituje czerwone (red) lub zielone (green) Ăwiatïo: def led_red(): GPIO.output(red_pin, True) GPIO.output(green_pin, False) def led_green(): GPIO.output(red_pin, False) GPIO.output(green_pin, True)
Raspberry Squid jest zwyczajnÈ diodÈ RGB LED i tak jak w przypadku wiÚkszoĂci diod tego typu kolor emitowanego przez niÈ Ăwiatïa moĝna okreĂliÊ, stosujÈc odpowiedniÈ kombinacjÚ wysokich (True) i niskich (False) stanów sygnaïów podawanych na piny zïÈcza GPIO, do których podïÈczona jest dioda. W tym projekcie chcemy, aby dioda emitowaïa Ăwiatïo o kolorach czerwonym i zielonym, a wiÚc kod przekazuje do jednego z pinów argument True, a do drugiego argument False. Nie korzystamy tu z koloru niebieskiego, a wiÚc nie musimy zajmowaÊ siÚ trzecim emiterem diody. Na koniec doszliĂmy do gïównej pÚtli programu, która przechwytuje nowÈ klatkÚ obrazu i skaluje jÈ tak, aby moĝna jÈ byïo wyĂwietliÊ w oknie programu: count = 0 led_green() while True: count = count + 1 new_image = webcam.get_image() # Zdefiniuj obraz old_image podczas pierwszego wykonania kodu pĊtli. if not old_image: old_image = new_image scaled_image = pygame.transform.scale(new_image, window_size) # Pnly sprawdza co dziesiątą klatkĊ. if (count % 10) == 0 : if check_for_movement(old_image, new_image): led_red() count = 0 old_image = new_image screen.blit(scaled_image, (0, 0)) pygame.display.update()
Zmienna count przechowuje liczbÚ wywoïañ pÚtli. Gdy zmienna count osiÈgnie wartoĂÊ równÈ 10, to porównywane sÈ ostatnie dwa obrazy. Analiza co dziesiÈtego obrazu przyspiesza dziaïanie programu (gdyby nie ten zabieg, dziaïaïby on zbyt wolno). W przypadku wykrycia ruchu funkcja check_for_movement zwraca wartoĂÊ logicznÈ True, a kolor Ăwiatïa emitowanego przez diodÚ LED jest zmieniany na czerwony. 108
Rozdziaï 5
Kup książkę
Poleć książkę
Ostatnia czÚĂÊ kodu gïównej pÚtli programu sprawdza wystÈpienie zdarzenia zamkniÚcia okna, które powoduje zatrzymanie dziaïania programu: # SprawdĨ wystąpienie zdarzeĔ. for event in pygame.event.get(): if event.type == pygame.QUIT: webcam.stop() pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: print(event.key) if event.key == 32: # spacja led_green()
Podczas sprawdzania wystÈpienia zdarzeñ przechwytywane sÈ równieĝ zdarzenia polegajÈce na wciĂniÚciu klawisza (KEYDOWN). Po wciĂniÚciu spacji program zmienia kolor Ăwiatïa emitowanego przez diodÚ LED na zielony.
Korzystanie z kamery W celu uruchomienia kamery w oknie terminala Raspberry Pi wpisz wymienione niĝej polecenia. Powinny one spowodowaÊ otwarcie okna pokazujÈcego podglÈd obrazu rejestrowanego przez kamerÚ (rysunek 5.8). $ cd "/home/pi/zombie/Raspberry Pi/usb_webcam" $ sudo python monitor.py
Rysunek 5.8. Dziaïanie kamery USB Monitoring i Raspberry Pi
Kup książkę
109
Poleć książkę
Dioda Raspberry Squid powinna teraz emitowaÊ Ăwiatïo zielone. W celu sprawdzenia dziaïania mechanizmu wykrywajÈcego ruch pomachaj rÚkÈ przed obiektywem kamery. Dioda LED powinna zmieniÊ kolor emitowanego Ăwiatïa na czerwony. Zmiana koloru na zielony nastÈpi dopiero po wciĂniÚciu klawisza spacji. Jeĝeli wszystko dziaïa poprawnie po podïÈczeniu kamery bezpoĂrednio do Raspberry Pi, czas sprawdziÊ dziaïanie kamery po podïÈczeniu jej za poĂrednictwem przedïuĝacza kabla USB. KamerÚ zamontuj w miejscu umoĝliwiajÈcym podglÈd wejĂcia do bazy (dziÚki kamerze bÚdziesz wiedziaï, czy moĝesz bezpiecznie wyjĂÊ z bazy). Istnieje pewna dïugoĂÊ kabla, po przekroczeniu której znieksztaïcenia sygnaïu generowanego przez kamerÚ bÚdÈ na tyle duĝe, ĝe Raspberry Pi wyĂwietli komunikaty bïÚdów, a wiÚc nie korzystaj z przedïuĝaczy dïuĝszych niĝ 30 m.
Projekt 8. Bezprzewodowy system monitorowania zombie Podczas apokalipsy internet moĝe przestaÊ dziaïaÊ, ale nie oznacza to, ĝe nie bÚdziesz mógï korzystaÊ z sieci bezprzewodowej, w której mogÈ pracowaÊ kamery. W tym projekcie moĝesz zastosowaÊ taniÈ kamerÚ Wi-Fi (rysunek 5.9). KamerÚ bezprzewodowÈ moĝesz umieĂciÊ w jeszcze wiÚkszej odlegïoĂci od monitorowanych zombie, co z pewnoĂciÈ spowoduje wzrost Twojego bezpieczeñstwa. Po skonfigurowaniu kamery i sieci lokalnej bÚdziesz mógï oglÈdaÊ obraz rejestrowany obiektywem kamery w oknie przeglÈdarki internetowej uruchomionej na komputerze Raspberry Pi (rysunek 5.10). BÚdziesz mógï równieĝ korzystaÊ z tabletu lub smartfona wyposaĝonego w kontroler sieci bezprzewodowej. Ponadto, Rysunek 5.9. Tania kamera jeĝeli kupisz odpowiedniÈ kamerÚ, to bÚdziesz mógï sieciowa z interfejsem Wi-Fi zdalnie zmieniaÊ kierunek, w którym zwrócony jest jej obiektyw. Niestety, bezpieczeñstwo ma swój koszt: kamera Wi-Fi pobiera doĂÊ duĝo prÈdu. Router oraz kamera bezprzewodowa pobierajÈ ïÈcznie od 10 do 20 W mocy. UrzÈdzenia te najlepiej jest wïÈczaÊ tylko w razie koniecznoĂci. Zauwaĝ, ĝe do Raspberry Pi widocznego na rysunku 5.8 podïÈczono diodÚ Raspberry Squid, mimo ĝe ten projekt z niej nie korzysta. Nie odïÈczaj od urzÈdzenia komponentów projektu 7. — bÚdziesz mógï monitorowaÊ zombie za pomocÈ obu kamer!
110
Rozdziaï 5
Kup książkę
Poleć książkę
Rysunek 5.10. Obsïuga kamery Wi-Fi za pomocÈ Raspberry Pi
Czego bÚdziesz potrzebowaï? Do wykonania tego projektu bÚdziesz potrzebowaï systemu opartego na pïytce Raspberry Pi (opisanego w sekcji „System Raspberry Pi”) i nastÚpujÈcych komponentów: Komponent
Uwagi
½ródïo
Kamera Wi-Fi
Najlepiej, aby byï to model, którego obiektywem moĝna obracaÊ (200 zï)
Sklep komputerowy, Allegro
Router Wi-Fi
Tani model (80 zï) zasilany prÈdem staïym o napiÚciu 12 V
Sklep komputerowy, Allegro
Dwa kable Ethernet
Dowolna dïugoĂÊ
Dwa kable peïniÈce funkcjÚ adapterów 12 V
Na jednym koñcu kabla powinna znajdowaÊ siÚ wtyczka zapalniczki samochodowej, a na drugim okrÈgïa wtyczka zasilajÈca o Ărednicy 2,1 mm
Sklep motoryzacyjny
W sklepach znajdziesz szeroki wybór kamer Wi-Fi róĝniÈcych siÚ cenÈ. Wybraïem jeden z najtañszych modeli. Co prawda rejestrowany przez kamerÚ obraz nie jest najwyĝszej jakoĂci, ale wciÈĝ doskonale nadaje siÚ do wypatrywania zombie. Router Wi-Fi znajdziesz w kaĝdej domowej sieci umoĝliwiajÈcej dostÚp do internetu. ZaïoĝÚ siÚ, ĝe dysponujesz modelem, którego akurat nie uĝywasz. UrzÈdzenia te peïniÈ dwie funkcje: ïÈczÈ urzÈdzenia sieciowe z internetem
Monitoring i Raspberry Pi
Kup książkę
111
Poleć książkę
(podczas apokalipsy zombie funkcja ta bÚdzie bezuĝyteczna) i tworzÈ sieÊ lokalnÈ LAN, w której mogÈ pracowaÊ urzÈdzenia przewodowe i bezprzewodowe. W naszym projekcie bÚdziemy korzystaÊ z tej drugiej funkcji routera.
Konstrukcja BÚdziemy korzystaÊ z gotowych urzÈdzeñ, a wiÚc nie bÚdziesz musiaï wykonywaÊ ĝadnych poïÈczeñ lutowniczych. Tak naprawdÚ bÚdziesz musiaï tylko poïÈczyÊ ze sobÈ komponenty wchodzÈce w skïad projektu (rysunek 5.11).
Rysunek 5.11. Schemat systemu obsïugujÈcego kamerÚ Wi-Fi Do sieci Wi-Fi nie musisz podïÈczaÊ routera ani smartfona (widaÊ je na rysunku 5.11), ale urzÈdzenia te umoĝliwiÈ Ci podglÈd obrazu rejestrowanego przez kamerÚ za pomocÈ urzÈdzenia mobilnego (bez nich bÚdziesz musiaï korzystaÊ z ekranu Raspberry Pi).
Krok 1. Skonfiguruj sieÊ lokalnÈ SieÊ ta nie bÚdzie poïÈczona z internetem, a wiÚc potrzebujesz tylko routera. W zwiÈzku z tym, jeĝeli posiadasz urzÈdzenie bÚdÈce poïÈczeniem routera i modemu, to nie musisz go podïÈczaÊ do linii telefonicznej lub zewnÚtrznego poïÈczenia z internetem.
112
Rozdziaï 5
Kup książkę
Poleć książkę
UrzÈdzenia mogÈ ïÈczyÊ siÚ z routerem za pomocÈ kabla Ethernet i bezprzewodowo przy uĝyciu technologii Wi-Fi. Raspberry Pi podïÈczymy do routera za pomocÈ kabla Ethernet, poniewaĝ poïÈczenie kablowe jest bardziej niezawodne i pobiera mniej prÈdu niĝ ïÈcznoĂÊ Wi-Fi. Raspberry Pi po podïÈczeniu do routera powinien automatycznie nawiÈzaÊ poïÈczenie sieciowe za pomocÈ protokoïu DHCP (dynamicznego konfigurowania hostów), a wiÚc nie powinieneĂ byÊ zmuszony do konfigurowania tego poïÈczenia rÚcznie. Jednakĝe po nawiÈzaniu tego poïÈczenia musisz skonfigurowaÊ sieÊ Wi-Fi obsïugiwanÈ przez router. W tym celu otwórz stronÚ konfiguracji routera. Adres IP tej strony to zwykle 192.168.1.1, ale w przypadku mojego routera jest to adres 192.168.1.254. Adres ten znajdziesz w dokumentacji routera. Po ustaleniu adresu strony administracyjnej routera otwórz przeglÈdarkÚ Chromium i wpisz go w pasku adresu tej przeglÈdarki. Panel konfiguracyjny routera powinien zawieraÊ sekcjÚ z ustawieniami sieci Wi-Fi (zwanej równieĝ WLAN). Znajdě jÈ, nadaj sieci bezprzewodowej nazwÚ (nazwÚ sieci okreĂla siÚ równieĝ mianem parametru ESSID) i ustaw hasïo umoĝliwiajÈce uzyskanie do niej dostÚpu (rysunek 5.12).
Rysunek 5.12. Konfiguracja sieci bezprzewodowej Sieci nadaj nazwÚ w rodzaju Ocaleni (umoĝliwi to znalezienie Was przez inne osoby, które przeĝyïy apokalipsÚ i dodatkowo umiejÈ korzystaÊ z komputerów). Do grupy warto przyïÈczaÊ kolejnych geeków, a szczególnie geeków, którzy biegajÈ wolniej od Ciebie.
Krok 2. Skonfiguruj kamerÚ Wi-Fi Kamera Wi-Fi nie nawiÈĝe samodzielnie poïÈczenia z TwojÈ sieciÈ, jeĝeli nie zna jej nazwy oraz hasïa. Aby jÈ skonfigurowaÊ, musisz poïÈczyÊ siÚ z niÈ za pomocÈ przeglÈdarki internetowej, ale najpierw kamera musi nawiÈzaÊ poïÈczenie z sieciÈ. Monitoring i Raspberry Pi
Kup książkę
113
Poleć książkę
Jest to doĂÊ problematyczne. Na szczÚĂcie problem ten moĝna rozwiÈzaÊ, podïÈczajÈc kamerÚ Wi-Fi do routera za pomocÈ kabla Ethernet. PoïÈczenie kablowe nie wymaga hasïa, a kamera powinna poïÈczyÊ siÚ z routerem automatycznie (podobnie jak Raspberry Pi) za pomocÈ protokoïu DHCP. Po skonfigurowaniu kamery moĝesz odïÈczyÊ od niej kabel — teraz Twoja kamera bÚdzie mogïa przesyïaÊ dane bezprzewodowo! PodïÈcz kamerÚ do routera i ponownie otwórz panel administracyjny routera. Umoĝliwi on ustalenie adresu IP kamery i odpowiednie jej skonfigurowanie. Tym razem musisz zajrzeÊ do sekcji zawierajÈcej tabelÚ DHCP (zwanÈ równieĝ tabelÈ ARP). Protokóï ARP umoĝliwia mapowanie adresów sieciowych. Na rysunku 5.13 widaÊ tabelÚ ARP mojego routera.
Rysunek 5.13. Ustalanie adresu IP kamery Kamera zostaïa podïÈczona za pomocÈ kabla, a wiÚc jej adres IP to 192.168.1.102 lub 192.168.1.100. Jeden z tych adresów jest przypisany do Raspberry Pi. Adres IP komputera moĝesz ustaliÊ, wpisujÈc w oknie LXTerminal polecenie ifconfig. W wyĂwietlonej w oknie odpowiedzi na nie pojawi siÚ jeden z wymienionych wczeĂniej adresów. WïaĂnie ustaliïeĂ adres IP Raspberry Pi. Adres IP mojego Raspberry Pi to 192.168.1.102, a wiÚc drugi adres (192.168. 1.100) jest adresem kamery. Otwórz nowÈ zakïadkÚ w przeglÈdarce i poïÈcz siÚ z tym adresem IP, dodajÈc do niego sufiks :99 (w przeglÈdarce musiaïem wpisaÊ adres 192.168.1.100:99). Ta dodatkowa liczba okreĂla numer portu sieciowego kamery. W wiÚkszoĂci przypadków jest to 99, ale jeĝeli korzystasz z innej kamery, to zajrzyj do jej dokumentacji, poniewaĝ moĝe istnieÊ koniecznoĂÊ podania innego numeru portu. PrzeglÈdarka powinna pokazaÊ podglÈd obrazu rejestrowanego przez kamerÚ. W oknie powinien równieĝ znaleěÊ siÚ panel kontrolny kamery umoĝliwiajÈcy jej obrócenie i przechylenie. Otwarta strona powinna zawieraÊ hiperïÈcze kierujÈce
114
Rozdziaï 5
Kup książkę
Poleć książkę
Wskazówka Do adresu IP moĝna przypisaÊ numer portu (róĝne porty obsïugujÈ róĝnoraki ruch
sieciowy). WiÚkszoĂÊ ruchu sieciowego korzysta z domyĂlnego portu 80. Kamera sieciowa korzysta z portu 99, a wiÚc zachodzi koniecznoĂÊ dodania tego numeru do adresu URL. do panelu administracyjnego kamery. Kliknij je i poszukaj sekcji zawierajÈcej ustawienia sieci bezprzewodowej. Wejdě do menu Wireless LAN Settings (ustawienia sieci bezprzewodowej) i wybierz opcjÚ skanowania dostÚpnych sieci bezprzewodowych (rysunek 5.14).
Rysunek 5.14. Èczenie kamery z sieciÈ bezprzewodowÈ Wybierz sieÊ Ocaleni, podaj hasïo (pole Share key) zwane równieĝ kluczem sieciowym i kliknij przycisk Submit (wyĂlij). Kamera powinna uruchomiÊ siÚ ponownie. Teraz moĝesz odïÈczyÊ od niej kabel Ethernet, poniewaĝ bÚdziesz korzystaï tylko z sieci bezprzewodowej. Kamera, pracujÈc w sieci bezprzewodowej, bÚdzie miaïa inny adres IP, a wiÚc otwórz ponownie panel administracyjny routera (zob. rysunek 5.13). Tym razem na liĂcie urzÈdzeñ poïÈczonych z sieciÈ bezprzewodowÈ powinien znaleěÊ siÚ jeden element (bÚdzie to wïaĂnie kamera). Spróbuj nawiÈzaÊ poïÈczenie z kamerÈ za pomocÈ przeglÈdarki internetowej, korzystajÈc z tego adresu IP (pamiÚtaj o koniecznoĂci okreĂlenia numeru portu :99 na koñcu adresu). W oknie przeglÈdarki powinieneĂ ponownie zobaczyÊ podglÈd rejestrowanego obrazu oraz panel umoĝliwiajÈcy obracanie obiektywem kamery (rysunek 5.15). Jednym z problemów zwiÈzanych z wykorzystaniem protokoïu DHCP jest to, ĝe po ponownym uruchomieniu kamery moĝe jej zostaÊ przypisany inny adres IP. W celu unikniÚcia tego problemu w panelu administracyjnym routera poszukaj okreĂlajÈcej czas dzierĝawy adresu IP i wybierz maksymalnÈ wartoĂÊ tego parametru. Teraz adres IP przypisany kamerze nie powinien ulec zmianie aĝ do koñca apokalipsy.
Monitoring i Raspberry Pi
Kup książkę
115
Poleć książkę
Rysunek 5.15. PodglÈd obrazu rejestrowanego przez kamerÚ Wi-Fi
Korzystanie z kamery Wi-Fi Po wykonaniu wszystkich opisanych czynnoĂci i zamontowaniu kamery w odpowiednim miejscu moĝesz podglÈdaÊ obraz rejestrowany przez kamerÚ, wpisujÈc w oknie przeglÈdarki internetowej odpowiedni adres URL. Oprogramowanie wiÚkszoĂci kamer sieciowych pozwala wyĂwietlaÊ obraz z kilku kamer na jednym ekranie. Takie rozwiÈzanie umoĝliwia jednoczesny podglÈd wejĂcia do kryjówki, magazynu, puïapek na zombie, a takĝe sytuacji innych ocalaïych znajdujÈcych siÚ na zewnÈtrz. DostÚp do obrazu rejestrowanego przez kamerÚ moĝna uzyskaÊ równieĝ za pomocÈ smartfona lub tabletu (producenci niektórych kamer udostÚpniajÈ w tym celu specjalne aplikacje, które dziaïajÈ sprawniej od przeglÈdarki internetowej). DziÚki urzÈdzeniom mobilnym moĝesz pracowaÊ, obserwujÈc sytuacjÚ w innym miejscu. Aplikacja doïÈczona do mojej kamery oferuje funkcjÚ alarmu wykrywajÈcego ruch. W kolejnym rozdziale nauczysz siÚ sterowania elektrycznym zamkiem do drzwi. Po wykonaniu takiego zamka bÚdziesz mógï zdalnie otwieraÊ drzwi, co umoĝliwi Ci szybsze wejĂcie do kryjówki. Ponadto bÚdziesz mógï wykryÊ otwarcie drzwi przez zombie szturmujÈce TwojÈ bazÚ.
116
Rozdziaï 5
Kup książkę
Poleć książkę