You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sl/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md

13 KiB

Virtualni enojni računalnik

Namesto nakupa IoT naprave, skupaj s senzorji in aktuatorji, lahko uporabite svoj računalnik za simulacijo IoT strojne opreme. Projekt CounterFit vam omogoča, da lokalno zaženete aplikacijo, ki simulira IoT strojno opremo, kot so senzorji in aktuatorji, ter dostopate do teh senzorjev in aktuatorjev iz lokalne Python kode, napisane na enak način, kot bi jo napisali na Raspberry Pi z uporabo fizične strojne opreme.

Namestitev

Za uporabo CounterFit boste morali na svoj računalnik namestiti nekaj brezplačne programske opreme.

Naloga

Namestite potrebno programsko opremo.

  1. Namestite Python. Za navodila o namestitvi najnovejše različice Pythona si oglejte stran za prenose Pythona.

  2. Namestite Visual Studio Code (VS Code). To je urejevalnik, ki ga boste uporabljali za pisanje kode za virtualno napravo v Pythonu. Za navodila o namestitvi VS Code si oglejte dokumentacijo VS Code.

    💁 Prosto lahko uporabljate katerikoli Python IDE ali urejevalnik za te lekcije, če imate raje kakšno drugo orodje, vendar bodo navodila v lekcijah temeljila na uporabi VS Code.

  3. Namestite razširitev VS Code Pylance. To je razširitev za VS Code, ki zagotavlja podporo za Python. Za navodila o namestitvi te razširitve v VS Code si oglejte dokumentacijo razširitve Pylance.

Navodila za namestitev in konfiguracijo aplikacije CounterFit bodo podana ob ustreznem času v navodilih za nalogo, saj se aplikacija namesti za vsak projekt posebej.

Hello world

Običajno je, da ob začetku uporabe novega programskega jezika ali tehnologije ustvarite aplikacijo 'Hello World' - majhno aplikacijo, ki izpiše besedilo, kot je "Hello World", da preverite, ali so vsa orodja pravilno konfigurirana.

Aplikacija Hello World za virtualno IoT strojno opremo bo zagotovila, da imate pravilno nameščen Python in Visual Studio Code. Prav tako se bo povezala s CounterFit za virtualne IoT senzorje in aktuatorje. Ne bo uporabljala nobene strojne opreme, le povezala se bo, da dokaže, da vse deluje.

Ta aplikacija bo v mapi z imenom nightlight, ki bo ponovno uporabljena z različnimi kodami v kasnejših delih te naloge za izdelavo aplikacije nočne lučke.

Konfiguracija virtualnega okolja za Python

Ena od zmogljivih funkcij Pythona je možnost namestitve Pip paketov - to so paketi kode, ki jih napišejo drugi ljudje in objavijo na internetu. Pip paket lahko namestite na svoj računalnik z enim ukazom, nato pa ta paket uporabite v svoji kodi. Pip boste uporabljali za namestitev paketa za komunikacijo s CounterFit.

Privzeto, ko namestite paket, je ta na voljo povsod na vašem računalniku, kar lahko povzroči težave z različicami paketov - na primer, ena aplikacija je odvisna od ene različice paketa, ki pa se pokvari, ko namestite novo različico za drugo aplikacijo. Da bi se izognili tej težavi, lahko uporabite virtualno okolje za Python, ki je v bistvu kopija Pythona v namenski mapi, in ko namestite Pip pakete, se ti namestijo samo v to mapo.

💁 Če uporabljate Raspberry Pi, potem na tej napravi niste nastavili virtualnega okolja za upravljanje Pip paketov, ampak uporabljate globalne pakete, saj so Grove paketi globalno nameščeni s skripto za namestitev.

Naloga - konfiguracija virtualnega okolja za Python

Konfigurirajte virtualno okolje za Python in namestite Pip pakete za CounterFit.

  1. V terminalu ali ukazni vrstici zaženite naslednje na lokaciji po vaši izbiri, da ustvarite in se premaknete v novo mapo:

    mkdir nightlight
    cd nightlight
    
  2. Zdaj zaženite naslednje, da ustvarite virtualno okolje v mapi .venv:

    python3 -m venv .venv
    

    💁 Izrecno morate poklicati python3, da ustvarite virtualno okolje, za primer, če imate nameščen Python 2 poleg Pythona 3 (najnovejše različice). Če imate nameščen Python 2, bo klic python uporabil Python 2 namesto Pythona 3.

  3. Aktivirajte virtualno okolje:

    • Na Windows:

      • Če uporabljate Command Prompt ali Command Prompt prek Windows Terminala, zaženite:

        .venv\Scripts\activate.bat
        
      • Če uporabljate PowerShell, zaženite:

        .\.venv\Scripts\Activate.ps1
        

        Če dobite napako o tem, da je izvajanje skriptov onemogočeno na tem sistemu, boste morali omogočiti izvajanje skriptov z nastavitvijo ustrezne politike izvajanja. To lahko storite tako, da zaženete PowerShell kot skrbnik in nato zaženete naslednji ukaz:

        Set-ExecutionPolicy -ExecutionPolicy Unrestricted
        

        Vnesite Y, ko vas pozove k potrditvi. Nato ponovno zaženite PowerShell in poskusite znova.

        Politiko izvajanja lahko po potrebi pozneje ponastavite. Več o tem si lahko preberete na strani o politikah izvajanja v Microsoft Docs.

    • Na macOS ali Linux zaženite:

      source ./.venv/bin/activate
      

    💁 Te ukaze je treba zagnati z iste lokacije, kjer ste zagnali ukaz za ustvarjanje virtualnega okolja. Nikoli vam ne bo treba navigirati v mapo .venv, vedno morate zagnati ukaz za aktivacijo in ukaze za namestitev paketov ali zagon kode iz mape, v kateri ste bili, ko ste ustvarili virtualno okolje.

  4. Ko je virtualno okolje aktivirano, bo privzeti ukaz python zagnal različico Pythona, ki je bila uporabljena za ustvarjanje virtualnega okolja. Zaženite naslednje, da preverite različico:

    python --version
    

    Izhod bi moral vsebovati naslednje:

    (.venv) ➜  nightlight python --version
    Python 3.9.1
    

    💁 Vaša različica Pythona je lahko drugačna - dokler je različica 3.6 ali višja, je vse v redu. Če ni, izbrišite to mapo, namestite novejšo različico Pythona in poskusite znova.

  5. Zaženite naslednje ukaze za namestitev Pip paketov za CounterFit. Ti paketi vključujejo glavno aplikacijo CounterFit ter shime za strojno opremo Grove. Ti shimi vam omogočajo pisanje kode, kot da bi programirali z uporabo fizičnih senzorjev in aktuatorjev iz ekosistema Grove, vendar povezanih z virtualnimi IoT napravami.

    pip install CounterFit
    pip install counterfit-connection
    pip install counterfit-shims-grove
    

    Ti Pip paketi bodo nameščeni samo v virtualnem okolju in ne bodo na voljo zunaj njega.

Napišite kodo

Ko je virtualno okolje za Python pripravljeno, lahko napišete kodo za aplikacijo 'Hello World'.

Naloga - napišite kodo

Ustvarite Python aplikacijo, ki izpiše "Hello World" v konzolo.

  1. V terminalu ali ukazni vrstici zaženite naslednje znotraj virtualnega okolja, da ustvarite Python datoteko z imenom app.py:

    • Na Windows zaženite:

      type nul > app.py
      
    • Na macOS ali Linux zaženite:

      touch app.py
      
  2. Odprite trenutno mapo v VS Code:

    code .
    

    💁 Če vaš terminal na macOS vrne command not found, to pomeni, da VS Code ni bil dodan v vaš PATH. VS Code lahko dodate v PATH tako, da sledite navodilom v razdelku o zagonu iz ukazne vrstice v dokumentaciji VS Code in nato zaženete ukaz. VS Code je privzeto dodan v PATH na Windows in Linux.

  3. Ko se VS Code zažene, bo aktiviral virtualno okolje za Python. Izbrano virtualno okolje bo prikazano v spodnji vrstici stanja:

    VS Code prikazuje izbrano virtualno okolje

  4. Če je terminal VS Code že aktiven, ko se VS Code zažene, virtualno okolje v njem ne bo aktivirano. Najlažje je ubiti terminal z gumbom Kill the active terminal instance:

    Gumb za ubijanje aktivnega terminala v VS Code

    Prepoznate lahko, ali je terminal aktiviral virtualno okolje, saj bo ime virtualnega okolja predpona na ukaznem pozivu terminala. Na primer, lahko je:

    (.venv) ➜  nightlight
    

    Če na pozivu ni .venv kot predpone, virtualno okolje ni aktivno v terminalu.

  5. Zaženite nov terminal v VS Code z izbiro Terminal -> New Terminal ali s pritiskom na CTRL+`. Nov terminal bo naložil virtualno okolje, klic za aktivacijo pa se bo pojavil v terminalu. Poziv bo imel tudi ime virtualnega okolja (.venv):

    ➜  nightlight source .venv/bin/activate
    (.venv) ➜  nightlight 
    
  6. Odprite datoteko app.py iz raziskovalca VS Code in dodajte naslednjo kodo:

    print('Hello World!')
    

    Funkcija print izpiše karkoli ji je podano v konzolo.

  7. V terminalu VS Code zaženite naslednje, da zaženete svojo Python aplikacijo:

    python app.py
    

    Izhod bo vseboval naslednje:

    (.venv) ➜  nightlight python app.py 
    Hello World!
    

😀 Vaš program 'Hello World' je bil uspešen!

Povežite 'strojno opremo'

Kot drugi korak 'Hello World' boste zagnali aplikacijo CounterFit in jo povezali s svojo kodo. To je virtualni ekvivalent priklopa IoT strojne opreme na razvojni komplet.

Naloga - povežite 'strojno opremo'

  1. V terminalu VS Code zaženite aplikacijo CounterFit z naslednjim ukazom:

    counterfit
    

    Aplikacija se bo začela izvajati in odprla v vašem spletnem brskalniku:

    Aplikacija CounterFit, ki se izvaja v brskalniku

    Označena bo kot Disconnected, z LED lučko v zgornjem desnem kotu, ki bo ugasnjena.

  2. Dodajte naslednjo kodo na vrh datoteke app.py:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    

    Ta koda uvozi razred CounterFitConnection iz modula counterfit_connection, ki prihaja iz Pip paketa counterfit-connection, ki ste ga prej namestili. Nato inicializira povezavo z aplikacijo CounterFit, ki se izvaja na 127.0.0.1, kar je IP naslov, ki ga lahko vedno uporabite za dostop do svojega lokalnega računalnika (pogosto imenovan localhost), na vratih 5000.

    💁 Če imate druge aplikacije, ki se izvajajo na vratih 5000, lahko to spremenite tako, da posodobite vrata v kodi in zaženete CounterFit z ukazom CounterFit --port <port_number>, pri čemer <port_number> zamenjate s številko vrat, ki jih želite uporabiti.

  3. Morali boste zagnati nov terminal v VS Code z izbiro gumba Create a new integrated terminal. To je zato, ker se aplikacija CounterFit izvaja v trenutnem terminalu.

    Gumb za ustvarjanje novega integriranega terminala v VS Code

  4. V tem novem terminalu zaženite datoteko app.py kot prej. Status CounterFit se bo spremenil v Connected, LED lučka pa se bo prižgala.

    CounterFit prikazuje status Connected

💁 To kodo lahko najdete v mapi code/virtual-device.

😀 Vaša povezava s strojno opremo je bila uspešna!


Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.