Kamera szpiegująca

Każdy elektronik chce mieć inteligentny dom, który sam zaprogramuje i zlutuje. Niestety z braku funduszy mogę mieć jedynie inteligentnym pokój, ale to nie przeszkadza mi w dążeniu do mojego celu :). Taki inteligentny dom ma zawsze główny komputer zarządzający, w naszym przypadku będzie to raspberry, ponieważ jest tani i ma możliwość wgrania Linuxa. Dzięki systemowi operacyjnemu jakim jest Linux możemy instalować gotowe programy z repozytorium, które przyspieszą nam pracę nad naszym domem. W tym artykule zaprezentuje jak stworzyć podgląd na nasz pokój za pomocą kamery internetowej podpiętej na USB. Kamera na której testowałem układ to Webcam C120 firmy Logintech, która kosztowała niecałe 50zł w komputroniku.

Mając zdalny dostęp do pulpitu mamy dostęp do wszystkich zasobów. Nasza kamera znajduje się w pliku /dev/video0 i to z tego pliku pobieramy obraz. Polecam link http://klapacz.linuxpl.eu/kamery.html na którym znajdziecie kilka użytecznych porad dotyczących uruchamiania i odbioru obrazu z kamery.

Aby przetestować naszą kamerę wystarczy zainstalować pakiety:

sudo apt-get install ffmpeg
sudo apt-get install mplayer
sudo apt-get install xawtv

Teraz powinniśmy mieć wszystkie biblioteki i kodeki do oglądania filmów. Aby przetestować kamerę wystarczy wpisać w konsoli:

xawtv -remote -c /dev/video0

W naszym zdalnym pulpicie powinno pokazać się okno w którym będziemy widzieli obraz z kamery.

Oczywiście sposób jest dosyć męczący, dlatego lepiej zainstalować pakiet life-stream. jest on opisany na stronie:

http://iqjar.com/jar/live-stream-from-your-raspberry-pi/

Aby go zainstalować wystarczy wpisać kilka komend. Poniżej macie logi z konsoli:

teraz mamy uruchomiony serwer www z kamerą wystarczy wpisać w przeglądarce:

http://192.168.1.106:8083/?action=stream

Jeśli masz model B+ i system Resbian 3.18, to kamera może nie działać ponieważ jest tam problem ze sterownikami. Najprościej wrócić do wersji 3.12. Aby tego dokonać wystarczy wpisać coś takiego:

sudo rpi-update 6413da9f74871b239c5bd27d7edf90a8afeab363

Jak chcesz zmienić sterowniki to polecam wątek na forum:

http://www.raspberrypi.org/forums/viewtopic.php?t=97983

Zamiast 192.168.1.106 musicie podać lokalny adres naszego raspberry oczywiście :). Aby program uruchamiał się automatycznie po odpalaniu należy w pliku /etc/rc.local wpisać taką komendę:

sudo /mjpg-streamer/mjpg-streamer.sh start

Można tez ustalić port rozdzielczość i fps:

sudo /mjpg-streamer/mjpg-streamer.sh start 8083 640x480 10

Wystawianie obrazu na stronie www jest banalne. Wystarczy wpisać taki kod:

<img src=”http://192.168.1.106:8083/?action=stream” width=”640″ height=”480″/>

Oczywiście jeśli chcemy stworzyć system w którym automatycznie wybieramy adres IP urządzenia, to należy wykorzystać jakiś język skryptowy, który to poda adres IP serwer. Ja na swoim Raspberry Pi zainstalowałem PHP z Apachem2 i zamiast adresu IP mogę wstawić to:

<?php echo $_SERVER['HTTP_HOST'];?>

Czyli teraz wystarczy:

<img src=”http://<?php echo $_SERVER['HTTP_HOST'];?>:8083/?action=stream” width=”640″ height=”480″/>

Teraz wstawiamy ten tag do serwera lighttpd, którego zainstalowaliśmy wcześniej i dostajęmy lifestream prosto na nasze www. Teraz wystarczy podłączyć to do naszego RaspCar2.0 i dorobić sterowanie przez www:

W ten sposób możemy zapisywać zdjęcia z kamery i udostępniać na serwerze www (np: lighttpd, który wcześniej już opisałem). Najważniejszą zaletą tej kamery jest podgląd na nasze urządzenie z każdego miejsca na ziemi (oczywiście jeśli mamy stałe IP). Aby połączyć się z naszym urządzeniem zdalnie wystarczy dodać do routera port naszego urządzenia i jego adres IP tak jak zaprezentowałem na poniższym obrazku:

Oczywiście porty dobieramy do własnych potrzeb (w tym przypadku trzeba dać 8083).

Teraz możecie połączyć się z naszym urządzeniem z każdego miejsca na ziemi i mieć pełen dostęp do komputera i wszystkich jego peryferiów. Jeśli chcecie połączyć się za pomocą telefonu z androidem to polecam darmowy program:

https://play.google.com/store/apps/details?id=android.androidVNC&feature=search_result#?t=W251bGwsMSwxLDEsImFuZHJvaWQuYW5kcm9pZFZOQyJd

Miłej zabawy i monitoringu :).