14 KiB
Computer virtual cu o singură placă
În loc să achiziționați un dispozitiv IoT, împreună cu senzori și actuatori, puteți utiliza computerul pentru a simula hardware-ul IoT. Proiectul CounterFit vă permite să rulați o aplicație locală care simulează hardware-ul IoT, cum ar fi senzori și actuatori, și să accesați acești senzori și actuatori din cod Python local, scris în același mod în care ați scrie cod pe un Raspberry Pi folosind hardware fizic.
Configurare
Pentru a utiliza CounterFit, va trebui să instalați câteva programe gratuite pe computerul dvs.
Sarcină
Instalați software-ul necesar.
-
Instalați Python. Consultați pagina de descărcări Python pentru instrucțiuni despre instalarea celei mai recente versiuni de Python.
-
Instalați Visual Studio Code (VS Code). Acesta este editorul pe care îl veți folosi pentru a scrie codul dispozitivului virtual în Python. Consultați documentația VS Code pentru instrucțiuni despre instalarea VS Code.
💁 Sunteți liber să utilizați orice IDE sau editor Python pentru aceste lecții dacă aveți un instrument preferat, dar lecțiile vor oferi instrucțiuni bazate pe utilizarea VS Code.
-
Instalați extensia VS Code Pylance. Aceasta este o extensie pentru VS Code care oferă suport pentru limbajul Python. Consultați documentația extensiei Pylance pentru instrucțiuni despre instalarea acestei extensii în VS Code.
Instrucțiunile pentru instalarea și configurarea aplicației CounterFit vor fi oferite la momentul relevant în instrucțiunile de sarcină, deoarece aceasta este instalată pe baza fiecărui proiect.
Hello world
Este tradițional ca atunci când începeți să lucrați cu un nou limbaj de programare sau tehnologie să creați o aplicație 'Hello World' - o mică aplicație care afișează textul "Hello World"
pentru a demonstra că toate instrumentele sunt configurate corect.
Aplicația Hello World pentru hardware-ul IoT virtual va asigura că aveți Python și Visual Studio Code instalate corect. De asemenea, se va conecta la CounterFit pentru senzorii și actuatorii IoT virtuali. Nu va folosi niciun hardware, ci doar se va conecta pentru a demonstra că totul funcționează.
Această aplicație va fi într-un folder numit nightlight
, și va fi reutilizată cu cod diferit în părțile ulterioare ale acestei sarcini pentru a construi aplicația nightlight.
Configurarea unui mediu virtual Python
Una dintre caracteristicile puternice ale Python este abilitatea de a instala pachete Pip - acestea sunt pachete de cod scrise de alte persoane și publicate pe Internet. Puteți instala un pachet Pip pe computerul dvs. cu o singură comandă, apoi utilizați acel pachet în codul dvs. Veți folosi Pip pentru a instala un pachet care să comunice cu CounterFit.
În mod implicit, atunci când instalați un pachet, acesta este disponibil peste tot pe computerul dvs., iar acest lucru poate duce la probleme cu versiunile pachetelor - cum ar fi o aplicație care depinde de o versiune a unui pachet care se strică atunci când instalați o versiune nouă pentru o altă aplicație. Pentru a evita această problemă, puteți utiliza un mediu virtual Python, practic o copie a Python într-un folder dedicat, iar când instalați pachete Pip, acestea sunt instalate doar în acel folder.
💁 Dacă utilizați un Raspberry Pi, atunci nu ați configurat un mediu virtual pe acel dispozitiv pentru a gestiona pachetele Pip, ci utilizați pachete globale, deoarece pachetele Grove sunt instalate global de scriptul de instalare.
Sarcină - configurarea unui mediu virtual Python
Configurați un mediu virtual Python și instalați pachetele Pip pentru CounterFit.
-
Din terminalul sau linia de comandă, rulați următoarele într-o locație la alegerea dvs. pentru a crea și naviga într-un nou director:
mkdir nightlight cd nightlight
-
Acum rulați următoarele pentru a crea un mediu virtual în folderul
.venv
:python3 -m venv .venv
💁 Trebuie să apelați explicit
python3
pentru a crea mediul virtual, în cazul în care aveți instalat Python 2 pe lângă Python 3 (cea mai recentă versiune). Dacă aveți instalat Python 2, atunci apelareapython
va folosi Python 2 în loc de Python 3. -
Activați mediul virtual:
-
Pe Windows:
-
Dacă utilizați Command Prompt sau Command Prompt prin Windows Terminal, rulați:
.venv\Scripts\activate.bat
-
Dacă utilizați PowerShell, rulați:
.\.venv\Scripts\Activate.ps1
Dacă primiți o eroare despre faptul că rularea scripturilor este dezactivată pe acest sistem, va trebui să activați rularea scripturilor prin setarea unei politici de execuție adecvate. Puteți face acest lucru lansând PowerShell ca administrator, apoi rulând următoarea comandă:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Introduceți
Y
când vi se cere să confirmați. Apoi relansați PowerShell și încercați din nou.Puteți reseta această politică de execuție la o dată ulterioară, dacă este necesar. Puteți citi mai multe despre acest lucru în pagina despre politici de execuție pe Microsoft Docs.
-
-
Pe macOS sau Linux, rulați:
source ./.venv/bin/activate
💁 Aceste comenzi ar trebui să fie rulate din aceeași locație în care ați rulat comanda pentru a crea mediul virtual. Nu va trebui niciodată să navigați în folderul
.venv
, ar trebui să rulați întotdeauna comanda de activare și orice comenzi pentru instalarea pachetelor sau rularea codului din folderul în care ați fost când ați creat mediul virtual. -
-
Odată ce mediul virtual a fost activat, comanda implicită
python
va rula versiunea de Python care a fost utilizată pentru a crea mediul virtual. Rulați următoarea comandă pentru a obține versiunea:python --version
Rezultatul ar trebui să conțină următoarele:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 Versiunea dvs. de Python poate fi diferită - atâta timp cât este versiunea 3.6 sau mai mare, este în regulă. Dacă nu, ștergeți acest folder, instalați o versiune mai nouă de Python și încercați din nou.
-
Rulați următoarele comenzi pentru a instala pachetele Pip pentru CounterFit. Aceste pachete includ aplicația principală CounterFit, precum și shims pentru hardware-ul Grove. Aceste shims vă permit să scrieți cod ca și cum ați programa folosind senzori și actuatori fizici din ecosistemul Grove, dar conectați la dispozitive IoT virtuale.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
Aceste pachete Pip vor fi instalate doar în mediul virtual și nu vor fi disponibile în afara acestuia.
Scrieți codul
Odată ce mediul virtual Python este pregătit, puteți scrie codul pentru aplicația 'Hello World'.
Sarcină - scrieți codul
Creați o aplicație Python pentru a afișa "Hello World"
în consolă.
-
Din terminalul sau linia de comandă, rulați următoarele în mediul virtual pentru a crea un fișier Python numit
app.py
:-
Pe Windows, rulați:
type nul > app.py
-
Pe macOS sau Linux, rulați:
touch app.py
-
-
Deschideți folderul curent în VS Code:
code .
💁 Dacă terminalul dvs. returnează
command not found
pe macOS, înseamnă că VS Code nu a fost adăugat la PATH-ul dvs. Puteți adăuga VS Code la PATH urmând instrucțiunile din secțiunea despre lansarea din linia de comandă din documentația VS Code și rulați comanda ulterior. VS Code este instalat în mod implicit în PATH pe Windows și Linux. -
Când VS Code se lansează, va activa mediul virtual Python. Mediul virtual selectat va apărea în bara de stare de jos:
-
Dacă terminalul VS Code este deja activ când VS Code pornește, acesta nu va avea mediul virtual activat. Cel mai simplu lucru de făcut este să închideți terminalul folosind butonul Kill the active terminal instance:
Puteți spune dacă terminalul are mediul virtual activat, deoarece numele mediului virtual va fi un prefix pe promptul terminalului. De exemplu, ar putea fi:
(.venv) ➜ nightlight
Dacă nu aveți
.venv
ca prefix pe prompt, mediul virtual nu este activ în terminal. -
Lansați un nou terminal VS Code selectând Terminal -> New Terminal, sau apăsând
CTRL+`
. Noul terminal va încărca mediul virtual, iar apelul pentru activarea acestuia va apărea în terminal. Promptul va avea, de asemenea, numele mediului virtual (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
Deschideți fișierul
app.py
din exploratorul VS Code și adăugați următorul cod:print('Hello World!')
Funcția
print
afișează în consolă ceea ce este transmis către ea. -
Din terminalul VS Code, rulați următoarea comandă pentru a rula aplicația Python:
python app.py
Următorul text va fi în output:
(.venv) ➜ nightlight python app.py Hello World!
😀 Programul dvs. 'Hello World' a fost un succes!
Conectați 'hardware-ul'
Ca un al doilea pas 'Hello World', veți rula aplicația CounterFit și veți conecta codul dvs. la aceasta. Acesta este echivalentul virtual al conectării unui hardware IoT la un kit de dezvoltare.
Sarcină - conectați 'hardware-ul'
-
Din terminalul VS Code, lansați aplicația CounterFit cu următoarea comandă:
counterfit
Aplicația va începe să ruleze și se va deschide în browserul dvs. web:
Va fi marcată ca Disconnected, cu LED-ul din colțul din dreapta sus stins.
-
Adăugați următorul cod în partea de sus a fișierului
app.py
:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Acest cod importă clasa
CounterFitConnection
din modululcounterfit_connection
, care provine din pachetul pipcounterfit-connection
pe care l-ați instalat anterior. Apoi inițializează o conexiune la aplicația CounterFit care rulează pe127.0.0.1
, care este o adresă IP pe care o puteți folosi întotdeauna pentru a accesa computerul local (adesea denumit localhost), pe portul 5000.💁 Dacă aveți alte aplicații care rulează pe portul 5000, puteți schimba acest lucru actualizând portul în cod și rulând CounterFit folosind
CounterFit --port <port_number>
, înlocuind<port_number>
cu portul pe care doriți să îl utilizați. -
Va trebui să lansați un nou terminal VS Code selectând butonul Create a new integrated terminal. Acest lucru se datorează faptului că aplicația CounterFit rulează în terminalul curent.
-
În acest nou terminal, rulați fișierul
app.py
ca înainte. Statusul CounterFit se va schimba la Connected, iar LED-ul se va aprinde.
💁 Puteți găsi acest cod în folderul code/virtual-device.
😀 Conexiunea dvs. la hardware a fost un succes!
Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.