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
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:
Č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://
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.
Ključne besede: Raspberry Pi