Raspberry Pi: hračka neobmedzených možností

Raspberry Pi

Keď v Raspberry Pi Foundation navrhovali minipočítač Raspberry Pi primárne ako lacný nástroj na výuku programovania do škol, určite ani netušili, aké rôznorodé využitie pre neho nadšenci nájdu. Tento článok prináša niekoľko využití pre tento minipočítač a možno inšpiruje aj vás kúpiť si svoje vlastné Raspberry Pi.

Raspberry Pi je minipočítač (8x5x2cm) za 25 dolárov (32€ pri objednaní z UK) s ARM procesorom, 256 alebo 512 MB RAM, ethernetom, 2 USB portmi, HDMI a audio výstupom. Namiesto disku obsahuje čítačku na SD karty, operačný systém na báze Linuxu sa zavádza práve z SD karty. Napájanie je realizované cez MicroUSB port. Okrem zdroja môžete Raspberry Pi napájať aj z iného zariadenia, napríklad USB portu TV. Raspberry Pi sa vám tak bude spolu s TV zapínať aj vypínať.

Raspberry Pi ďalej obsahuje GPIO porty, pomocou ktorých je k nemu možné pripojiť rôzne hadrvérové zariadenia, od čidla na meranie teploty až po Arduino dosky.

pi

Majitelia Raspberry PI už našli pre svoj minipočítač viacero kreatívnych využití, ja ho využívam hlavne ako NAS a multimediálne centrum.

Multimediálne centrum

Pre Raspberry PI existujú dve linuxové distribúcie optimalizované pre úlohu multimediálneho centra, a to OpenELEC a Raspbmc. Obe tieto distribúcie obsahujú XBMC, o ktorom som už dávnejšie písal a používal ho na desktope. Namiesto desktopu mám teda teraz na TV cez HDMI pripojený Raspberry PI. OpenELEC funguje lepšie, nedá sa však do neho zasahovať a doinštalovávať ďalšie balíčky, zvolil som preto Raspbmc.

Raspbmc naštartuje priamo do XBMC, nie je ho možné používať ako klasický Linux s okenným manažérom. Samozrejmosťou je však vzdialený prístup cez SSH. Do XBMC je možné pridať multimediálny obsah z diskov pripojených cez USB porty ale aj zo sieťových diskov. Ja som pridal niekoľko adresárov zdieľaných na desktope s Windows 7 (Samba). Prehrávanie cez lokálnu sieť funguje bez problémov, Raspberry Pi dokáže bez problémov prehrať aj film v 720p.

Celkom ma prekvapilo, že s Raspbmc funguje diaľkový ovládač od mojej TV bez akejkoľvek konfigurácie. Nefunguje na ňom však zásadná vec, a to návrat o úroveň vyššie pri navigácií. Takže ak sa zanorím do nejakých menu, už sa z nich bez pomoci pripojenej bezdrôtovej klávesnice nedostanem.

XBMC podporuje UPnP (potrebné zapnúť v nastavení), vďaka ktorému ho vidia všetky počítače v sieti a sú na ňom schopné prehrávať multimediálny obsah. V praxi to funguje tak, že v akomkoľvek počítači v sieti vyberiete video súbor, zvolíte prehrať cez XBMC na Raspberry Pi a video sa vám skoro ihneď začne prehrávať na pripojenej TV. Ak vlastníte zariadenia od firmy Apple, je možné v XBMC zapnúť podporu AirPlay.

Sťahovanie torrentov

Keďže Raspbmc podporuje inštaláciu softvéru vo forme Debian balíčkov (apt-get), môžete si doinštalovať torrent klient Transmission (sudo apt-get install transmission). Transmission obsahuje aj webové rozhranie, takže torrenty na stiahnutie v Raspberry Pi môžete pridávať z akéhokoľvek počítača v sieti cez prehliadač. Aj samotné XBMC obsahuje plugin na ovládanie Transmission.

Stiahnuté torrenty môžete nechať ihneď zaindexovať v XBMC, mať ich prístupné na sieťovom disku, ak používate Raspberry Pi aj ako NAS, alebo ich priamo z Raspberry Pi streamovať do mobilných zariadení

NAS

Každý disk, ktorý k Raspberry Pi pripojíte cez USB port, je automaticky dostupný ako sieťový disk cez Sambu, ktorá v Raspbmc štandardne beží. Raspberry Pi tak môžete jednoducho použiť ako lacnú alternatívu k NAS.

Pri disku, ktorý chcete použiť s Raspberry Pi si však dajte pozor na použitý súborový systém. Nepoužívajte NTFS, pretože NTFS ovládač je dosť pomalý a výrazne vyťažuje procesor. Disk si radšej naformátujte na Ext3 alebo nejaký iný linuxový súborový systém.

Vzdialený prístup

Na vzdialený prístup je možné použiť SSH bežiace na porte 22, na porte 9091 beží webové rozhranie k Transmission, v prípade potreby je možné doinštalovať napríklad FTP server. Nutnosťou je samozrejme nastaviť presmerovanie portov na routeri. Aby ste si pri pripájaní nemuseli pamätať vašu IP adresu (ktorá sa naviac môže meniť), je na Raspberry Pi možné jednoducho rozbehnúť Dynamic DNS a pristupovať k nemu pomocou vami zvolenej ľahko zapamätateľnej adresy.

Streamovanie filmov a hudby

Aj keď Raspberry Pi používam primárne na sťahovanie filmov a seriálov a ich prehrávanie na pripojenej televízii, napadlo ma vyskúšať, či je možný a trochu odlišný spôsob prehrávania stiahnutého obsahu, a to streamovanie na mobilné zariadenia (telefóny, tablety).

MiniDLNA je jednoduchý media server, ktorý je na dané použitie vhodný. Jeho inštalácia je na Raspberry Pi (RaspBMC) naozaj jednoduchá

sudo apt-get install minidlna

Po nainštalovaní je nutné MiniDLNA nakonfigurovať. Konfigurácia sa nachádza v súbore /etc/minidlna.conf

sudo vim /etc/minidlna.conf

Najdôležitejšia je položka media_dir, ktorú je možné nastaviť osobitne pre audio, video a fotky. Vhod príde aj povolenie automatickej detekcie zmien v sledovaných adresároch. U mňa je to

media_dir=V,/media/mybook/downloads
media_dir=A,/media/mybook/Music
media_dir=P,/media/mybook/Photos

inotify=yes
notify_interval=300

Následne je nutné ešte znovunačítanie konfigurácie

sudo service minidlna force-reload

a na adrese vašeho Raspberry Pi a porte 8200 môžete cez webové rozhranie sledovať postupnú indexáciu súborov.

Po dokončení indexovania je všetko pripravené, môžete začať streamovať. Na iOS sa mi osvedčilo použiť VLC, DLNA klienti však existujú pre všetky platformy, stačí si len vybrať.

Záloha Git repozitárov

Všetky svoje projekty mám na Bitbuckete, ktorý ponúka neobmedzený počet verejných a súkromných Git repozitárov úplne zadarmo. Za Bitbucketom stojí Atlassian, takže mu celkom verím, zálohovanie na lokálny disk však určite nie je na škodu.

Na zálohovanie repozitárov som využil veľmi jednoduchý princíp. Na externý disk pripojený k Raspberry Pi som vy vyklonoval všetky repozitáre a vytvoril jednoduchý skript, ktorý na všetkých vykoná git pull:

#!/bin/bash 
for x in `ls /media/mybook/_backup/projects` 
do 
echo "processing $x" 
cd $x 
git pull 
cd .. 
Done

Git sa v Raspbmc štandardne nenachádza, je potrebné ho nainštalovať (sudo apt-get install git).

Záloha databáz

Okrem Git repozitárov zálohujem aj databázy mojich webov, ktoré bežia na hostingu Inet.sk. Tento hosting vykonáva každý deň dumpy databáz, ktoré sú prístupné cez ftp.

Vytvoril som si preto jednoduchý bash skript, ktorý dané dumpy stiahne a následne zmaže všetky zálohy staršie ako 10 dní

#!/bin/bash
cd /media/mybook/_backup/db/
echo "connecting to ftp"
ftp -in ftp.exmaple.com << SCRIPTEND
user login heslo
binary
cd backup
cd mysql
mget *
cd ..
cd pgsql
mget *
SCRIPTEND

echo "deleting old backups"
find /media/mybook/_backup/db* -mtime +10 -exec rm {} \;

Meranie teploty v miestnosti

K zostrojeniu teplomera pre Raspberry PI som použil teplotný senzor DS18B20 a rezistor RRU 4K7. Problémom je, že si tieto dve súčiastky musíte zospájkovať. Ja som na to použil ochotného kolegu, ktorý sa vyzná v elektronike a spravil to za mňa. Výsledkom bol teplomer s 3 výstupmi (mínus = GND, plus = +3,3V, data = GPIO4).

rpitemp

Teplomer je nutné pripojiť do GPIO na Raspberry Pi. Pomocou schémy jednoducho zistíte, že +3,3V je prvý pin v druhom riadku, GPIO4 je štvrtý pin v prvom riadku a GND je tretí pin v prvom riadku (schéma je otočená o 90 stupňov oproti „skutočnosti“).

Distrubúcie RaspBMC a Raspbian v sebe obsahujú potrebné ovládače, takže ich stačí zaviesť

sudo modprobe w1-gpio
sudo modprobe w1-therm

a teplomer sa následne objaví v zozname zariadení

ls /sys/bus/w1/devices/

u mňa je identifikovaný ako zariadenie 28-000004e23e98, u vás sa to môže líšiť. Aktuálnu teplotu potom získate pomocou

cat /sys/bus/w1/devices/28-000004e23e98/w1_slave

ako posledné číslo v druhom riadku výstupu, ktorý má tvar na štýl

bc 01 4b 46 7f ff 04 10 d2 : crc=d2 YES
bc 01 4b 46 7f ff 04 10 d2 t=20865

Teplotu predstavuje údaj t=20865, ktorý znamená 20,865 stupňa.

Zisťovanie teploty priamo z konzoly nie je veľmi pohodlné, vytvoril som si preto jednoduché webové rozhranie v Node.js. Kompletný kód nájdete na mojom GitHube, stačí v súbore server.js zmeniť id zariadenia a aplikáciu spustiť.

node server.js

Záver

Rapsberry Pi je malé lacná zariadenie s obrovským potenciálom, ktorý záleží len a len na vás. Keďže ide o plnohodnotný počítač s operačným systémom, možnosti jeho využitia sú naozaj rozsiahle.

Autor je absolventom softvérového inžinierstva na Univerzite Karlovej v Prahe, pracuje ako Windows Azure a Windows Phone vývojár v Inmite, občas publikuje a prednáša.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 13

Přehled komentářů

JirkaV Zalohy Gitu - optimalizace ;-)
tomasfejfar Re: Zalohy Gitu - optimalizace ;-)
Madmucho owncloud
Hever Úložiště - SD karty
igorkulman Re: Úložiště - SD karty
Sob Re: Úložiště - SD karty
Roman Bílek Re: Úložiště - SD karty
igorkulman Re: Úložiště - SD karty
Roman Bílek Re: Úložiště - SD karty
Rhomedan RPi jde využít daleko lépe, než jako náhradu desktopu
Martin Hassman Re: RPi jde využít daleko lépe, než jako náhradu desktopu
lukas.zelenik wifi
igorkulman Re: wifi
Zdroj: https://www.zdrojak.cz/?p=11168