Objavljeno:

OrangePi Zero kot spletna kamera

OrangePi je nizkocenovni kitajski klon RaspberryPi sistemov, na katerem lahko poganjamo Android, Ubuntu, Debian, Raspbian in ostale operacijske sisteme.

OrangePi Zero, ki poleg ARM procesorja (štirijedrni Cortex-A7) vsebuje še 512 MB pomnilnika RAM, ethernet in USB 2.0 priključek, vgrajeno pa ima tudi Wi-fi kartico, na spletu lahko kupimo za dobrih 10 EUR (s poštnino vred). Za dober evro dobimo še plastično ohišje. Naprava vsebuje tudi 13-pinski razširitveni vmesnik, na katerega lahko priključimo razširitveno kartico (tim. Orange Pi Zero expansion board) z dodatnima dvema USB priključkoma, vhodom za mikrofon, infrardečim vmesnikom ter izhodi za zvok in TV.

Na napravo smo namestili ARMbian različico Linuxa in sicer različico Ubuntu. Uporabili smo Armbian 5.25 Orangepizero Ubuntu xenial default z Linux jedrom 3.4.113 iz dne 2. 2. 2017.

Namestitev je preprosta – na mikro SD kartico preprosto zapišemo ISO sliko operacijskega sistema in kartico vstavimo v OrangePi.

Namestitev osnovnega sistema

Po uspešnem zagonu naprave moramo najprej ugotoviti njen IP naslov. Ker naprava nima izhoda za monitor, se je nanjo potrebno povezati preko SSH. Napravo zato priključimo v žično omrežje in počakamo, da ji domači usmerjevalnik preko DHCP dodeli IP naslov.

Ko ugotovimo njen IP naslov, se nanjo povežemo preko SSH. Privzeto uporabniško ime je root, geslo pa 1234. Ob prvem zagonu sistem od nas zahteva spremembo gesla.

Po namestitvi je potrebno najprej razširiti prostor na SD kartici, za kar je računalnik potrebno ponovno zagnati z ustreznim ukazom:

reboot

Sledi posodobitev programske opreme (tokrat se lahko prijavimo z novo ustvarjenim uporabniškim imenom):

sudo apt-get update
sudo apt-get upgrade

Če želimo uporabljati brezžično omrežje, se povežemo nanj:

sudo nmtui-connect SSID_omrežja

Sledi namestitev požarnega zidu UFW:

sudo apt-get install ufw

…nastavimo ustrezna pravila (dohodne povezave privzeto blokiramo, odhodne privzeto dovolimo):

sudo ufw default deny incoming
sudo ufw default allow outgoing

…ter dovolimo le SSH povezave:

sudo ufw allow 22/tcp

Pomembno, če SSH povezav ne dovolimo, smo se uspešno zaklenili ven iz sistema.

Sedaj aktiviramo požarni zid:

sudo ufw enable
ARMbian na Orange Pi Zero.

ARMbian na Orange Pi Zero.

VNC

Če želimo do naprave dostopati preko VNC, namestimo VNC strežnik, pisave ter grafično okolje LXDE:

sudo apt-get install tightvncserver xfonts-base
sudo apt-get install lxde

Nastavimo še razporeditev tipkovnice in časovni pas:

sudo dpkg-reconfigure keyboard-configuration
sudo dpkg-reconfigure tzdata

Sedaj lahko zaženemo VNC strežnik in nastavimo geslo za dostop preko VNC:

tightvncserver

Sedaj lahko zaženemo VNC strežnik:

vncserver :1 -geometry 1024x728 -depth 24

Na napravo se od zunaj povežemo preko vrat 5901, pred tem je seveda potrebno odpreti požarni zid:

sudo ufw allow 5901/tcp

VNC strežnik ugasnemo z ukazom:

vncserver -kill :1

Z nekaj brskanja po nastavitvenih datotekah je mogoče nastaviti, da se VNC strežnik vedno zažene samodejno ob zagonu sistema.

Priklop USB kamere

Ceneni OrangePi je seveda mogoče uporabiti za različne namene, tokrat si bomo pogledali kako nanj priključimo USB kamero s pomočjo katere lahko preko interneta gledamo živo sliko.

Najprej namestimo ustrezna orodja:

sudo apt-get install subversion-tools libcairo2-dev libjpeg62-dev libpango1.0-dev libgif-dev build-essential g++ imagemagick

Nato si prenesemo in prevedemo program za pretakanje videa MJPG Streamer (uporabili smo različico 0.1 iz 22. oktobra 2007):

svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
cd mjpg-streamer
make
sudo make install

Odpremo požarni zid:

sudo ufw allow 8080/tcp

Na koncu pa zaženemo MJPG streamer:

mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 1024x768 -f 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080"

Namesto ločljivosti 1024 x 768 lahko uporabimo ločljivost 640 x 480, namesto vrat 8080, vrata 80, itd. Za več informacij o posameznih parametrih vpišemo ukaz:

mjpg_streamer -h

Parameter -b MJPG Streamer zažene v ozadju, v tem primeru ga ugasnemo z ukazom:

killall mjpg_streamer

Iz drugih računalnikov se sedaj lahko povežemo na IP naslov OrangePi naprave na vrata 8080 in gledamo živo sliko:

MJPG Streamer na Orange Pi Zero.

MJPG Streamer na Orange Pi Zero.

Če želimo, da se nam pretakanje videa samodejno zažene ob vsakem zagonu naprave je potrebno nastaviti /etc/rc.local skripto:

sudo nano /etc/rc.local

Nato pred vrstico:

exit 0

vstavimo naslednje ukaze:

echo before-mjpg
/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 1024x768 -f 15" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080"
echo after-mjpg

Ob ponovnem zagonu naprave se bo pretakanje videa preko spleta samodejno zagnalo.

Še opozorilo! MJPG Streamer je star že skoraj desetletje in ne vsebuje praktično nikakršne resne zaščite. Zato je priporočljivo, da ga uporabljamo zgolj v zaprtih omrežjih. Na Githubu je sicer na voljo nekoliko novejša izvedena različica (tim. fork), vendar varnostno ravno tako ni dosti boljša.

Če želimo si lahko nekoliko popravimo izgled vmesnika naše spletne kamere, dodamo pa lahko tudi podporo za dostop z geslom. HTML datoteke zanj se nahajajo na /usr/local/www.

Primer preprostega vmesnika:

sudo nano /usr/local/www/kamera.html

V datoteko vpišemo:

<html> <body> <h1>Orange Pi Zero spletna kamera</h1> <img src="/?action=stream" width="1024"> </body> </html>

Sliko sedaj lahko spremljamo preko URL naslova: _http://:8080/kamera.html_.

 

DODATEK (12. februar 2017): Iz nekega čudnega razloga operacijski Arbmian ne zna izvajati DNS razreševanja (ang. DNS resolving), če v datoteko /etc/resolv.conf ne vpišemo nameserver <IP_naslov_lokalnega_usmerjevalnika>. Primer:

sudo nano /etc/resolv.conf
nameserver 192.168.1.1

Če so vpisani drugi DNS strežniki, DNS poizvedbe preprosto ne delujejo.

Kategorije: Informacijska tehnologija, Odprta koda
Ključne besede: Raspberry Pi