Arvutiteaduse instituut
  1. Esileht
  2. Noored Koodi
EN
Logi sisse

Noored Koodi

<- Kõik kursused

  • Linux ja Raspberry Pi kursus
  • Olulisemad mõisted ja kiirteed
  • I osa. Sissejuhatus Linuxisse
  • II osa. Linuxi töölaud
  • III osa. Käsurida 101
  • IV osa. Ubuntu tarkvara
  • V osa. Käsurida 202
  • VI osa. Failiõigused ja käsurea kordamine
  • VII osa. Turvalisus
  • VIII osa. Windowsi programmid Linuxis ja töölaua keskkonnad
  • IX osa. Kordamine ja kuidas Linuxit oma arvutis tööle panna
  • X osa. Linuxi Kontrolltöö


  • XI osa. Raspberry Pi tutvustus ja sissejuhatus
  • XII osa. Raspberry Pi puutetundlik ekraan ja LED tuled
  • XIII osa. Raspberry Pi ja Sense HAT
  • XIV osa. Raspberry Pi kaamera moodul
  • XV osa. Raspberry Pi kasutamine eemalt (SSH ja VNC)
  • XVI osa. Raspberry Pi oma projekt ja huvitavad näited

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”).



<- eelmine peatükk
järgmine peatükk ->

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo