Priča o Malini i Magičnom ogledalu

Priča o Malini i Magičnom ogledalu


Inicijalna ideja zbog koje sam kupio Raspberry Pi bio je projekat magično ogledalo. Izgledalo je prilično interesantno, a opet dovoljno jednostavno da ne moram da koristim njihov kod da bih napravio sličnu aplikaciju. Objasniću kako sam ja instalirao sve i kako je meni proradilo, što uopšte ne mora da znači da je ovo najbolji i najbrži način.

Kupovina Raspberry Pi u Srbiji

Raspberry Pi 3 ne možete kupiti na mnogo mesta u Srbiji, a ja sam se odlučio za „Primotronic” iz Petrovaradina, kod kojih me je nabavka koštala 7000 dinara, plus poštarina, jer nije moguće lično preuzimanje uređaja, s obzirom da su samo veb-prodavnica. Napominjem da sam kupio samo uređaj kod njih i da je to cena bez punjača, zaštitne kutije i ostalih stvari koje možete naći u starter kitu.

Instalacija NOOBS(New Out Of Box Software) na Raspberry Pi

Postoji više distribucija za Raspberry, ali ja sam se držao preporučene - NOOBS instalacije. SD karticu treba da formatirate kao FAT32, a zatim da zipovanu NOOBS distribuciju raspakujete na karticu. Karticu zatim ubacite u slot na uređaju koji možete napajati sa punjačem mobilnog telefona, i u ovom trenutku rada sa Malinom će vam trebati tastatura i miš, a HDMI kablom se možete povezati na monitor ili televizor.

<img src="//images.ctfassets.net/e04novf313gb/5j9NJyCPDeSIcFZISgJJB8/18ac2253413e7142d671d4be6041f837/image.png" class="body-image" alt="Raspberry Pi otpakovan" />

Instalacija operativnog sistema traje 20-ak minuta, nakon čega se pojavljuje početni ekran. U ovom trenutku, dok još imate priključene periferije, uđite u terminal i pokrenite sudo apt-get update && sudo apt-get dist-upgrade. Ovaj proces može potrajati sat vremena, tako da je vreme da popijete kafu i odmorite ipak ste se naradili do sad.

<img src="//images.ctfassets.net/e04novf313gb/1r53GbxeicYbzE9XzWkRbp/eba0570926c06346c0253d84dd8a41ad/image.png" class="body-image" alt="NOOBS terminal update" />

Nameštanje SSH i Remote pristupa Raspberry Pi

Kada se završi ažuriranje, možete podesiti SSH pristup i ukoliko smatrate da vam je potrebno instalirajte i Remote Desktop. Da bi ste uključili SSH, pokrenite raspi-config iz terminala i u Advanced Options ćete naći opciju SSH. Posle ovoga bi sistem trebao da se ponovo pokrene i da vas upozori da promenite šifru (fabrički je raspberry za korisnika pi ). Ukoliko ste se nakačili na neku bežičnu mrežu ili ste se pak odlučili za LAN konekciju, možete proveriti IP adresu uređaja komandom hostname -I (npr. 192.168.0.5). Zatim se možete nakačiti na uređaj sa bilo kog računara u istoj mreži sa ssh pi@192.168.adresa.uređaja.

<img src="//images.ctfassets.net/e04novf313gb/5GsQAMB9RJUgeElDx957PV/c036ce5da89d3ff8ba8c4a54d14db225/image.png" class="body-image" alt="SSH na Raspberry Pi" />

Ukoliko želite, sada možete putem ssh pokrenuti raspi-config i onemogućiti Rasbianu da podigne svoj GUI, kako biste smanjili potrošnju resursa prilikom ostvarivanja Remote desktop konekcije. Na Malini ćete morati da instalirate dve stvari kako bi vam Remote Desktop radio: sudo apt-get install xrdp tightvncserver. Na mašini sa koje želite da pristupate Malini, instalirajte Putty ili Remina (u zavisnosti da li ste Windows ili Linux korisnik).

NodeJS na Raspberry Pi

Instalacija NodeJS je prilično jednostavna i ne traje dugo (posle inicijalnog ažuriranja ništa mi više nije delovalo da traje dugo). Komande za instalaciju su:


curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

sudo apt install nodejs

Pokretanje NodeJS aplikacije na Raspberry PI

Konačno smo spremni da pokrenemo aplikaciju :) Kod možete pogledati, forkovati ili klonirati sa repozitorijuma https://github.com/skendzicr/node_magic_mirror. Kada ste prekopirali sadržaj repozitorijuma na Malinu, uđite u root projekta i pokrenite npm install koji će vam instalirati sve potrebne module za program. Kada se instalacija završi pokrenite node app.js koji bi u terminalu trebao da ispiše Listening on port 3000… a ukoliko na Malini uđete u Chromium i ukucate http://localhost:3000 pojaviće vam se magija na ekranu :)

<img src="//images.ctfassets.net/e04novf313gb/3qQY8Ken10VHKA0sC1L23u/f349ace78ae77a32b49223cfe745c7d1/image.png" class="body-image" alt="RaspberryPi na ekranu" />

Pokretanje aplikacije odmah po podizanju Raspberry Pi

S obzirom da je ideja da se aplikacija sama pokreće i da bude nezavisna moraćemo malo da se igramo i sa skriptama. Instalirajte sudo apt-get install x11-xserver-utils unclutter koje su zadužene za skrinsejver i za kurzor . Moramo promeniti autostart skriptu.

sudo nano .config/lxsession/LXDE-pi/autostart.

Dodajte ove linije:

@/usr/bin/chromium-browser --kiosk --disable-restore-session-state http://localhost:3000/
@xset s noblank
@xset s off
@xset -dpms
@unclutter -idle 0.1 -root

Takođe treba izmeniti kada će Malina da ide u hibernaciju. Podešavanja promenite sa:

sudo nano /etc/lightdm/lightdm.conf

Nađite liniju koda xserver-command i neka izgleda ovako

xserver-command= X -s 0 -dpms

Da bi se pokrenuo program, pre nego što učitamo browser, tj. da bi browser imao šta da prikaže napravio sam jednu bash skriptu

#!/bin/sh
cd /home/pi/projects/node_magic_mirror/
node app.js

I snimio je u folder scripts pod imenom magicmirror.sh. Zatim sam namestio jedan „cron job” da se izvrši prilikom svakog pokretanja Maline. sudo crontab -e Dodajte ovu liniju koda

@reboot /home/pi/scripts/magicmirror.sh

Sada bi trebalo da je sve podešeno i da možete da ponovo pokrenete Malinu. sudo reboot Za manje od minuta aplikacija za vaše „Magično ogledalo" bi trebalo da je pokrenuta automatski. Ako negde zapne, ja i gugl ćemo biti vaši najveći prijatelji, jer je zajednica malinara velika i sigurno neko može da reši problem na koji naiđete.

Ostaje vam samo da napravite lep ram, stavite dvosmerno staklo i upakujete svoju Malinu i monitor. Ako vam fali ideja kako bi ste to uradili pogledajte ovde.