20 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.
-
Инсталирайте разширението Pylance за VS Code. Това е разширение за 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, със светодиод в горния десен ъгъл, който е изключен.
-
Добавете следния код в началото на
app.py
:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Този код импортира класа
CounterFitConnection
от модулаcounterfit_connection
, който идва от Pip пакетаcounterfit-connection
, който инсталирахте по-рано. След това инициализира връзка към приложението 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, и светодиодът ще светне.
💁 Можете да намерите този код в папката code/virtual-device.
😀 Вашата връзка с хардуера беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.