Raspberry Pi kaugjuhtimine SSH ja VNC abil
<- eelmine peatükk
järgmine peatükk ->
Kaugjuhtimine
Kaugjuhtimine tähendab sisuliselt ühe arvuti kontrollimist teisest arvutist üle võrgu. Väga paljud Raspberry Pi projektid on küll väga vahvad, kuid tõeliselt kasulikuks ja põnevaks saame me need teha kasutades justnimelt kaugühendust. Selles praktikumis vaatame, kuidas luua kaugühendus oma Raspberry Pi’ga.
Raspberry Pi eelseadistus:
1. Käivita miniarvuti, vali Eelistused > Raspberry Pi Configuration > Interfaces
2. Luba SSH ja VNC ühendused ning vajuta nupul OK
3. Kui Raspberry soovib teha taaskäivitamist, siis luba seda.
Vaikimisi on Raspberry kasutajaks "pi" ning parooliks Raspberry. Mine käsureale ning muuda parool endale sobivaks käsklusega:
sudo passwd
Seejärel seadista järgnev ühendus (Raspberry ei tohiks samal ajal vooluvõrgus olla).
Allikas: https://projects.raspberrypi.org/en/projects/physical-computing/3
Ning veendu, et Sinu miniarvutis oleks mugavasse kohta salvestatud järgnev kood failinimega “vilkuv.py":
from gpiozero import LED from time import sleep led = LED(17) print(“LED-tuluke alustab vilkumist”) for i in range(10): led.on() sleep(0.2) led.off() sleep(0.2) print(“LED-tuluke vilkus 10 korda”)
Kindlasti kontrolli, et see kood ka töötaks. Proovi ka koodi tööd käsurealt. Selleks liigu käsureal kausta, kus fail on salvestatud ning sisesta käsklus python vilkuv.py.
Kui kõik töötab, võime liikuda SSH ühenduse loomise juurde. SSH (inglise keeles Secure Shell) on võrguprotokoll turvaliseks ühenduse loomiseks üle võrgu kahe arvuti või serveri vahel.
SSH ühenduse abil saadakse ligipääs sihtarvuti käsureale, kus saame korda saata peaaegu kõike. Ainuke piirang on see, et nagu ka tavaliselt käsureal olles, ei saa me vaadata näiteks pilte või videosid.
SSH ühenduse loomiseks on meil vaja teada oma Raspberry Pi kasutajanime ning lokaalset ip-aadressi. Iga arvutiga on seotud kindel IP-aadress, mis toimib identse koodina, sellest võib mõelda nagu isikukoodist. Raspberry IP-aadressi teada saamiseks toimi järgnevalt:
1. Ava terminal
2. Laadi alla käsklus ifconfig käsuga
sudo apt install net-tools
3. Kirjuta terminali käsklus ifconfig
4. Leia üles lokaalne IP-aadress
Alternatiivne variant IP-aadressi leidmiseks on kirjutada terminali käsklus hostname -I
Järgnevalt käivita oma arvutis Ubuntu virtuaalmasin ning ava terminal.
NB! Kui sul puudub ligipääs Linuxi operatsioonisüsteemiga arvutile/virtuaalmasinale, siis asub juhend ühenduse loomiseks Windowsi masina abil siin. Kui ühendus on loodud, siis jätka siinolevat juhendi läbitöötamist (jäta vahele järgmised kolm rida ja illustreeriv pilt).
NB! Vaikimisi on kasutajanimi "pi" ning parool "raspberry".
Veendu, et Raspberry oleks endiselt sisselülitatud ning proovi luua ühendus käsuga ssh pi@ip-aadress, kus vaheta sõna IP-aadress lokaalse aadressiga.
Näiteks kui Raspberry ip-aadress on 192.168.1.123, siis luuakse ühendus järgnevalt:
Kui said ühenduse edukalt loodud, siis liigu kaustades natuke ringi ning tekita Raspberry’sse juurde suvaline tekstifail koos lausega “see on kirjutatud kaugühendusega!” (abiks tuleb käsk nano).
Kui sinu Raspberry pi on ühendatud puutetundliku ekraaniga, siis veendu, et sellise sisuga fail loodi kindlasti Sinu miniarvutisse.
Seejärel liigu kaugjuhtimise abil kausta, kuhu lõid praktikumi alguses tehtud LED-tule vilgutamise faili ning käivita see käsurealt käsuga python vilkuv.py.
Nagu näed, saab SSH abil väga palju korda saata. Antud juhul tegime läbi vilkuva tulukese lihtsa näite, kuid tegelikult on sinu võimalused piiramatud.
VNC
Vaatamata “piiramatutele võimalustele” ei ole SSH ühenduse loomine alati piisav.
Näiteks kui Sa soovid ehitada koju turvakaamera, mis edastaks Sulle pilti, siis terminali kaudu on seda raske teha. VNC (inglise keeles Virtual Network Computing) on graafiline ekraani-jagamise süsteem, millega saame ligipääsu mitte ainult käsureale vaid kogu operatsioonisüsteemile koos graafilise liidesega.
Lae alla vastavalt arvuti operatsioonisüsteemile sobiv versioon ning käivita programm VNC Viewer:
Linux (lae alla .deb pakett, mine kausta Downloads ning tee failil topelt-klõps. Järgnevalt vajuta Install nupul): https://www.realvnc.com/en/connect/download/viewer/linux/
Windows: https://www.realvnc.com/en/connect/download/viewer/windows/
Kirjuta ülemisele ribale Raspberry lokaalne ip-aadress ning vajuta klahvi “Enter”. Seejärel sisesta kasutajanimi “pi” ja mikroarvutile määratud parool.
Tuleme tagasi käsurea skripti juurde, mis teeb pildi iga natukese aja tagant. Leia see skript üles oma arvutist või otsi see üles eelmisest praktikumist.
Muudame pildiring.sh skripti natukene elulisemaks nii, et iga kümne sekundi tagant tehakse pilt ning et mälus hoitakse 100 pilti. Selline võib olla juba turvakaamera mõõtu seade, mida ka päriselt kasutada saab.
Kui jääd koodiga hätta, küsi abi sõbralt või pöördu juhendaja poole.
Laadi mõni “turvakaamera” poolt tehtud pilt oma arvutisse.
Selleks klõpsa VNC vaates Raspberry pi’s avatud VNC server akna paremal üleval nurgas ning vali File Transfer…
Seejärel vajuta nupul Send files… ja vali soovitud fail.
Fail peaks ilmuma arvuti Desktopile.
VNC ühendusel on mitmeid kasutusvõimalusi.
Näiteks saad oma kodusolevat Raspberry Pi’d kasutada isikliku serverina, kust saab mugavalt faile edasi-tagasi saata. Samal ajal saab kindel olla failide privaatsuses.
Senini on kõik meie miniprojektid olnud lauapeal nokitsemised.
Kujuta aga ette, et Sa soovidki teostada kodus turvakaamera, mis reageerib liikumisele. Või sätid akna taha ilmajaama, mis edastab andmeid.
Nende ja paljude teiste lahendite puhul oleks mõttetu oma vidina küljes hoida ekraani, olgu see siis puutetundlik või mitte.
Oletame aga, et Sa tahad teada, kes viimasel nädalal Sinu toas käisid. Selleks oleks tüütu võtta oma turvakaamerakonstruktsioon lahti ning hakata ekraani taha ühendama. Palju mugavam on kasutada VNC ühendust nende andmete lugemiseks.
Oluline on teada, et SSH ühendust on lihtne teostada, kui mõlemad seadmed asuvad samas võrgus (näiteks kodus WiFi ühendusega). Küll aga on tunduvalt keerukam seada üles võimalus suvalisest võrgust ühenduse võtmiseks.
Selleks on olemas mitmeid erinevaid võimalusi, üks nendest on lasta oma kodusel ruuteril edastada kõik läbi kindla pordi tulevad ühendused lokaalsele ip-aadressile, mis kuulub Raspberry Pi’le. Teine võimalus on kasutada kolmandate osapoolte lahendusi, näiteks remote.it’d.
VNC puhul on aga üle-interneti ühendused veelgi lihtsamad. Tuleb teha oma isiklik kasutaja ning sellega sisse logida mõlemas seadmes, täpsem juhend asub siin (peatükk “Establishing a cloud connection”).