19 KiB
Виртуелни рачунар са једном плочом
Уместо куповине IoT уређаја са сензорима и актуаторима, можете користити свој рачунар за симулацију IoT хардвера. CounterFit пројекат вам омогућава да локално покренете апликацију која симулира IoT хардвер, као што су сензори и актуатори, и приступите им из локалног Python кода написаног на исти начин као што бисте писали код за Raspberry Pi са физичким хардвером.
Подешавање
Да бисте користили CounterFit, потребно је да инсталирате одређени бесплатан софтвер на свој рачунар.
Задатак
Инсталирајте потребан софтвер.
-
Инсталирајте Python. Погледајте Python страницу за преузимање за упутства о инсталацији најновије верзије Python-а.
-
Инсталирајте Visual Studio Code (VS Code). Ово је уређивач који ћете користити за писање кода за ваш виртуелни уређај у Python-у. Погледајте VS Code документацију за упутства о инсталацији VS Code-а.
💁 Слободно користите било који Python IDE или уређивач за ове лекције ако имате омиљени алат, али упутства у лекцијама ће бити заснована на коришћењу VS Code-а.
-
Инсталирајте VS Code Pylance екстензију. Ово је екстензија за VS Code која пружа подршку за Python језик. Погледајте документацију за Pylance екстензију за упутства о инсталацији ове екстензије у VS Code-у.
Упутства за инсталацију и конфигурацију CounterFit апликације биће дата у одговарајућем тренутку у задацима, јер се она инсталира за сваки пројекат посебно.
Hello World
Традиционално је да се приликом упознавања са новим програмским језиком или технологијом направи апликација 'Hello World' – мала апликација која исписује текст попут "Hello World"
како би се проверило да ли су сви алати исправно конфигурисани.
Hello World апликација за виртуелни IoT хардвер ће осигурати да су Python и Visual Studio Code исправно инсталирани. Такође ће се повезати са CounterFit-ом за виртуелне IoT сензоре и актуаторе. Неће користити никакав хардвер, већ ће се само повезати како би се доказало да све функционише.
Ова апликација ће бити у фасцикли под називом nightlight
, и биће поново коришћена са различитим кодом у каснијим деловима овог задатка за изградњу апликације ноћног светла.
Конфигуришите Python виртуелно окружење
Једна од моћних карактеристика Python-а је могућност инсталирања Pip пакета – пакета кода које су написали други људи и објавили на интернету. Можете инсталирати Pip пакет на свој рачунар једном командом, а затим користити тај пакет у свом коду. Користићете Pip за инсталацију пакета за комуникацију са CounterFit-ом.
Подразумевано, када инсталирате пакет, он је доступан свуда на вашем рачунару, што може довести до проблема са верзијама пакета – на пример, једна апликација зависи од једне верзије пакета која престаје да ради када инсталирате нову верзију за другу апликацију. Да бисте избегли овај проблем, можете користити Python виртуелно окружење, што је у суштини копија Python-а у посебној фасцикли, а када инсталирате Pip пакете, они се инсталирају само у ту фасциклу.
💁 Ако користите Raspberry Pi, онда нисте подесили виртуелно окружење на том уређају за управљање Pip пакетима, већ користите глобалне пакете, јер су Grove пакети глобално инсталирани помоћу инсталационог скрипта.
Задатак – конфигуришите Python виртуелно окружење
Конфигуришите Python виртуелно окружење и инсталирајте Pip пакете за CounterFit.
-
Са вашег терминала или командне линије, покрените следеће команде на локацији по вашем избору како бисте креирали и прешли у нови директоријум:
mkdir nightlight cd nightlight
-
Сада покрените следеће команде како бисте креирали виртуелно окружење у фасцикли
.venv
:python3 -m venv .venv
💁 Потребно је експлицитно позвати
python3
како бисте креирали виртуелно окружење, у случају да имате инсталиран Python 2 поред Python 3 (најновије верзије). Ако имате инсталиран Python 2, позивањеpython
ће користити Python 2 уместо Python 3. -
Активирајте виртуелно окружење:
-
На Windows-у:
-
Ако користите Command Prompt или Command Prompt преко Windows Terminal-а, покрените:
.venv\Scripts\activate.bat
-
Ако користите PowerShell, покрените:
.\.venv\Scripts\Activate.ps1
Ако добијете грешку о томе да је извршавање скрипти онемогућено на овом систему, потребно је да омогућите извршавање скрипти постављањем одговарајуће политике извршавања. То можете урадити покретањем PowerShell-а као администратора, а затим покретањем следеће команде:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Унесите
Y
када се од вас затражи потврда. Затим поново покрените PowerShell и покушајте поново.Ову политику извршавања можете ресетовати касније ако је потребно. Више о томе можете прочитати на страници о политикама извршавања на Microsoft Docs.
-
-
На macOS-у или Linux-у, покрените:
source ./.venv/bin/activate
💁 Ове команде треба покренути са исте локације на којој сте покренули команду за креирање виртуелног окружења. Никада нећете морати да улазите у
.venv
фасциклу, увек треба да покрећете команду за активацију и било које команде за инсталацију пакета или покретање кода из фасцикле у којој сте били када сте креирали виртуелно окружење. -
-
Када је виртуелно окружење активирано, подразумевана
python
команда ће покренути верзију Python-а која је коришћена за креирање виртуелног окружења. Покрените следеће како бисте добили верзију:python --version
Излаз би требало да садржи следеће:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 Ваша Python верзија може бити другачија – све док је верзија 3.6 или новија, све је у реду. Ако није, обришите ову фасциклу, инсталирајте новију верзију Python-а и покушајте поново.
-
Покрените следеће команде како бисте инсталирали Pip пакете за CounterFit. Ови пакети укључују главну CounterFit апликацију као и шимове за Grove хардвер. Ови шимови вам омогућавају да пишете код као да програмирате физичке сензоре и актуаторе из Grove екосистема, али повезане са виртуелним IoT уређајима.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
Ови Pip пакети ће бити инсталирани само у виртуелном окружењу и неће бити доступни ван њега.
Напишите код
Када је Python виртуелно окружење спремно, можете написати код за 'Hello World' апликацију.
Задатак – напишите код
Креирајте Python апликацију која исписује "Hello World"
у конзолу.
-
Са вашег терминала или командне линије, покрените следеће унутар виртуелног окружења како бисте креирали Python датотеку под називом
app.py
:-
На Windows-у покрените:
type nul > app.py
-
На macOS-у или Linux-у покрените:
touch app.py
-
-
Отворите тренутну фасциклу у VS Code-у:
code .
💁 Ако ваш терминал врати
command not found
на macOS-у, то значи да VS Code није додат у ваш PATH. Можете додати VS Code у ваш PATH пратећи упутства у секцији о покретању из командне линије у VS Code документацији и покренути команду након тога. VS Code је подразумевано додат у PATH на Windows-у и Linux-у. -
Када се VS Code покрене, активираће Python виртуелно окружење. Изабрано виртуелно окружење ће се појавити у доњој статусној траци:
-
Ако је VS Code терминал већ покренут када се VS Code стартује, виртуелно окружење неће бити активирано у њему. Најлакше је угасити терминал користећи дугме Kill the active terminal instance:
Можете проверити да ли је терминал активирао виртуелно окружење тако што ће име виртуелног окружења бити префикс на терминалском промпту. На пример, може бити:
(.venv) ➜ nightlight
Ако немате
.venv
као префикс на промпту, виртуелно окружење није активно у терминалу. -
Покрените нови VS Code терминал одабиром Terminal -> New Terminal, или притиском на
CTRL+`
. Нови терминал ће учитати виртуелно окружење, а позив за активацију ће се појавити у терминалу. Промпт ће такође имати име виртуелног окружења (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
Отворите
app.py
датотеку из VS Code explorer-а и додајте следећи код:print('Hello World!')
Функција
print
исписује све што јој се проследи у конзолу. -
Са VS Code терминала, покрените следеће како бисте покренули вашу Python апликацију:
python app.py
Следеће ће бити у излазу:
(.venv) ➜ nightlight python app.py Hello World!
😀 Ваша 'Hello World' апликација је успешно покренута!
Повежите 'хардвер'
Као други корак 'Hello World', покренућете CounterFit апликацију и повезати ваш код са њом. Ово је виртуелни еквивалент прикључивања IoT хардвера на развојни кит.
Задатак – повежите 'хардвер'
-
Са VS Code терминала, покрените CounterFit апликацију следећом командом:
counterfit
Апликација ће почети са радом и отворити се у вашем веб прегледачу:
Биће означена као Disconnected, са искљученим LED-ом у горњем десном углу.
-
Додајте следећи код на врх
app.py
:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Овај код увози
CounterFitConnection
класу изcounterfit_connection
модула, који долази изcounterfit-connection
pip пакета који сте раније инсталирали. Затим иницијализује везу са CounterFit апликацијом која ради на127.0.0.1
, што је IP адреса која се увек користи за приступ вашем локалном рачунару (често називан localhost), на порту 5000.💁 Ако имате друге апликације које раде на порту 5000, можете променити ово ажурирањем порта у коду и покретањем CounterFit-а користећи
CounterFit --port <port_number>
, замењујући<port_number>
са портом који желите да користите. -
Биће потребно да покренете нови VS Code терминал одабиром дугмета Create a new integrated terminal. Ово је зато што CounterFit апликација ради у тренутном терминалу.
-
У овом новом терминалу, покрените
app.py
датотеку као и раније. Статус CounterFit-а ће се променити у Connected и LED ће се упалити.
💁 Овај код можете пронаћи у code/virtual-device фасцикли.
😀 Ваша веза са хардвером је успешно успостављена!
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.