Blog (45)
Komentarze (1.5k)
Recenzje (0)

Drugie oko sprawiedliwości

@mordzioDrugie oko sprawiedliwości28.03.2015 20:16

W poprzednim wpisie obiecałem omówić kolejny element systemu monitoringu, który pomału buduję, w celu ochrony działki przed intruzami. Na chwilę obecną działki strzegą dwie kamerki- opisana poprzednio nocna oraz nowa, malinowa. Planuje dodać jeszcze kilka czujników ruchu (głównie w pomieszczeniach) oraz mikrofon, na podstawie którego uruchomię detektor tłuczonego szkła. I na tym poprzestanę.

Dalsza rozbudowa systemu pójdzie już w kierunku ogrodowej stacji pogodowej. W pierwszej kolejności zamontuje czujniki, które już posiadam, czyli czujnik wilgotności podłoża oraz czujnik wilgotności i temperatury powierza. Wszystkie czujniki zamierzam połączyć bezprzewodowo. Gdy tylko uda się to spiąć w sensowną całość, to postaram się opisać to na blogu. Gdyby się okazało, że malinka nie podoła wszystkim zadaniom, w gotowości na przejęcie jej obowiązków czeka już Cubietruck.

Druga kamera od tygodnia monitoruje teren. Do jej budowy wykorzystałem malinkę, którą otrzymałem na zeszłorocznym ColdZlocie. Dla przypominania jest to model RPI Raspberry Pi 1 model B. Natomiast cyfrowe oko to moduł kamery 5mpix FULL HD v1.3, który można nabyć już od 110 zł. Całość na dzień dzisiejszy ma wartość ok 170 zł, więc cenowo odpowiada gotowym, chińskim konstrukcjom.

Złożenie wszystkiego w jedną, sprawnie funkcjonującą całość, zabrało mi trochę czasu i nerwów. Spędziłem wiele godzin na testowaniu różnych rozwiązań. Poradniki, z których korzystałem, nie ustrzegły się niestety drobnych błędów, np. w postaci literówek. A że nie pałam wielką miłością do Linuxa, to zeszło mi nad tym trochę więcej czasu, niż pierwotnie zakładałem. Mam nadzieję, że ustrzegłem się podobnych błędów i wszyscy zainteresowani zbudują sobie podobny niskobudżetowy system monitoringu.

W tym miejscu wspomnę o programie, który oszczędził mi sporo czasu. Program HDD Raw Copy Tool służy do tworzenia obrazu kart SD, dzięki czemu w razie "popsucia" systemu w miarę szybko można przywrócić sprawną kopię.

Instalacja Systemu

W pierwszej kolejności pobrałem NOOBS w wersji 1.4.0 Proces instalacji i konfiguracji na tym etapie sprowadza się tylko do rozpakowania archiwum na kartę SD, a następnie wybraniu systemu do zainstalowania. Po ok. 15 minutach, jak prostes instalacji dobiegnie końca, w oknie konfiguracji raspi-config należy włączyć obsługę modułu kamery.

Instalacja motion i motioneye

No to idziemy po kolei i wklepujemy na klawiaturze następujące polecenia:


sudo aptitude update && sudo aptitude upgrade
sudo aptitude install python-tornado python-jinja2 python-imaging motion ffmpeg v4l-utils 
cd /home/pi
wget https://bitbucket.org/ccrisan/motioneye/get/b50d24175d74.zip

pobrany plik `b50d24175d74.zip' należy rozpakować

unzip b50d24175d74.zip

a następnie zmieniamy nazwę katalogu na bardziej przejrzystą:

mv ccrisan-motioneye-b50d24175d74 motioneye
cd motioneye
cp settings_default.py settings.py

Teraz należy dodać obsługę modułu kamery:

sudo nano /etc/modules

W edytorze dodajemy: bcm2835_v4l2

Aby motion uruchamiał się wraz z systemem należy dodać odpowiednią linię do /etc/rc.local

Wykonujemy następujące polecenie:

su nano /etc/rc.local

przed linią "exit 0" dodajemy

sudo -u pi sh -c '/home/pi/motioneye/motioneye.py > /home/pi/motioneye/run/motioneye.log 2>&1' &

Uruchamiamy ponownie malinkę.

Po ponownym uruchomieniu malinki, możemy przejść do konfiguracji motion. Całą sprawę bardzo upraszcza motioneye, dzięki któremu skonfigurujemy wszystkie parametry nagrywania przez przeglądarkę WWW.

W przeglądarce wystarczy wpisać: http://ip_malinki:8765/

Po zalogowaniu, z listy kamer wybieramy wbudowany moduł i gotowe. Konfigurację motion opiszę w kolejnym wpisie, teraz przejdziemy do kolejnego etapu. Ponieważ z kamery będę korzystał głównie zdalnie, to aby ułatwić przenoszenie i podgląd plików, dodałem serwer Samby. Dzięki czemu katalog z nagraniami będzie automatycznie dostępny w otoczeniu sieciowym.

Instalacja serwera Samba

Tak jak poprzenio, wykonujemy kolejno wszystkie polecenia. Zaczynamy od:

sudo apt-get install samba samba-common-bin

Teraz dodamy dowolnego użytkownia, w miejsce "pi" można wpisać dowolną nazwę:

sudo smbpasswd -a pi 111

Następnie przechodzimy do konfiguracji serwera:

sudo nano /etc/samba/smb.conf

na końcu dodajemy:
[public]
comment = Public Storage
path = /home/pi/motioneye/media
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no

Ostatnim poleceniem zrestartujemy sambe.

sudo /etc/init.d/samba restart

Monitoring już działa, a nagrania bez problemu można przeglądać przez otoczenie sieciowe z dowolnego komputera. Problem pojawia się w chwili, w której chcemy połączyć się z kamerą podłączoną do Internetu Mobilnego. Korzystając z modemu 3G, w większości przypadków nie mamy publicznego IP. Z tego co się dowiedziałem, takie usługi można włączyć w ofertach abonamentowych w Orange i Plus. Niestety cena odblokowania jest zbyt wysoka, więc postanowiłem obejść to za pomocą prostego VPN. Na domowym routerze skonfigurowałem serwer VPN PPTP, natomiast na malince zainstalowałem:

Klienta VPN PPTP

No to zabieramy się za instalację:


sudo apt-get install -y pptp-linux
sudo pptpsetup --create tunel --adres_serwera --username konto --password hasło--encrypt --start
 

Opis, z którego korzystałem był obszerniejszy, ale wydanie tych dwóch poleceń w zupełności załatwia całą sprawę. Zainteresowanych niuansami konfiguracji mogę tylko odesłać do lektury poradnika.

Oczywiście nie będziemy za każdym razem ręcznie nawiązywać połączenia VPN, dlatego dodajemy kilka linijek do /etc/rc.local

sudo nano -B /etc/rc.local 

i wklejamy:


vpn="on"
if [ $vpn = on ]; then
pon tunel updetach
sudo route add -net "0.0.0.0/0" dev "ppp0"
printf "Netstat output of all PPTP sockets\n"
netstat -a | grep "/var/run/pptp/"
fi
 

Od teraz malinka przy każdym uruchamianiu nawiąże połączenie z serwerem VPN. Dzięki temu zyskujemy dostęp do podglądu obrazu na żywo oraz za pomocą dwóch kliknięć uzyskamy dostęp do zgromadzonego materiału dowodowego.

W tym miejscu dzieło można uznać za prawie ukończone. No prawie..

Dodanie skryptu zestawiającego tunel VPN do /etc/rc.local ma jedną wadę. Jeżeli połączenie z internetem zadanie zerwane, tunel VPN również zostanie zerwany. Przez kilka dni korzystałem z prostego skryptu sprawdzającego stan połączenia, do czasu aż odmówił posłuszeństwa. Dopiero po tym fakcie doczytałem, że wystarczyło dodać parametr "persist" do pon tunel updetach, aby zautomatyzować nawiązywanie połączenia. Zawartość /etc/rc.local powinna wyglądać następująco:


vpn="on"
if [ $vpn = on ]; then
pon tunel updetach persist
sudo route add -net "0.0.0.0/0" dev "ppp0"
printf "Netstat output of all PPTP sockets\n"
netstat -a | grep "/var/run/pptp/"
fi
 

Czas na podsumowanie dotychczasowej pracy, na malince działa:

  • Monitoring (motion + motioneye)
  • SAMBA
  • Klient VPN z funkcją wznawiania połączenia
  • W planach: dodanie powiadomień SMS o zdarzeniach
  • dodanie czujnika temperatury (w obudowie malinki)

Oczywiście nie jest to jedyna i słuszna droga, którą należy obrać przy budowie malinowego monitoringu. Np. serwer VPN można zastąpić klientem FTP i automatycznie przerzucać pliki na zdalny serwer.

Opisana przez mnie konfiguracja, w 99% odpowiada moim oczekiwaniom odnośnie monitoringu oraz automatycznej kopii zapasowej. Jeszcze kilka drobnych elementów wymaga dopracowania, a że mam dwie malinki, to jest na czym testować wprowadzone zmiany. W najbliższym czasie zamierzam pochylić się bardziej nad konfiguracją pakietu motion. Jeżeli pojawi się coś ciekawego, to podzielę się tym na moim blogu.

O ile nie zamierzam śledzić obrazu z obu kamer na żywo przez 24h, to i tak z ciekawości sprawdziłem, ile zużywają kamery podczas 60 minut streamingu video. I tak kamera p2p w tym czasie zużyła ponad 900 MB, natomiast transmisja z malinki (o podobnych parametrach transmitowanego obrazu) zużyła tylko 200 MB. O ile spodziewałem się wyniku w granicach 200-300 MB/h, to wynik chińskiej kamerki nieco mnie przeraził.

Podsumowując dotychczasowe prace, mogę stwierdzić, że malinowa kamera daje o wiele więcej możliwości i satysfakcji od kupnej wcześniej kamery p2p.

Wpis powstał w zeszłym tygodniu, a od tego czasu trochę się zmieniło. I tak, nie mam już kamerki p2p. Znalazła nowy dom;) Stary model Raspberry Pi zastąpiłem najnowszą wersją malinki. Dążąc do zminimalizowania pozostawionego na działce sprzętu elektronicznego, zrezygnowałem z routera. Od wczoraj malinka korzysta z modemu 4G USB. A dzisiaj pozostawiłem mały wabik na złodzieja;)

Wabik na złodzieja :)
Wabik na złodzieja :)
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.