Pobierz - Sklep AVT

Transkrypt

Pobierz - Sklep AVT
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.
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
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
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
7
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 OCALA’YMI ............................................... 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
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
9
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
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 ODLEG’O¥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.
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
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
97
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
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
99
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
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
101
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
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
103
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
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
105
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
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
107
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
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
109
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
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
111
(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
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
113
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
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
115
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

Podobne dokumenty