13 KiB
Virtuální jednodeskový počítač
Místo nákupu IoT zařízení spolu se senzory a akčními členy můžete použít svůj počítač k simulaci IoT hardwaru. Projekt CounterFit vám umožňuje spustit aplikaci lokálně, která simuluje IoT hardware, jako jsou senzory a akční členy, a přistupovat k těmto senzorům a akčním členům z lokálního Python kódu napsaného stejným způsobem, jako byste psali kód pro Raspberry Pi s fyzickým hardwarem.
Nastavení
Pro použití CounterFit budete muset na svém počítači nainstalovat několik bezplatných softwarů.
Úkol
Nainstalujte požadovaný software.
-
Nainstalujte Python. Pokyny k instalaci nejnovější verze Pythonu naleznete na stránce ke stažení Pythonu.
-
Nainstalujte Visual Studio Code (VS Code). To je editor, který budete používat k psaní kódu pro váš virtuální hardware v Pythonu. Pokyny k instalaci VS Code naleznete v dokumentaci k VS Code.
💁 Můžete použít jakékoli IDE nebo editor pro Python, pokud máte preferovaný nástroj, ale pokyny v lekcích budou vycházet z používání VS Code.
-
Nainstalujte rozšíření Pylance pro VS Code. Toto rozšíření poskytuje podporu pro jazyk Python. Pokyny k instalaci tohoto rozšíření naleznete v dokumentaci k rozšíření Pylance.
Pokyny k instalaci a konfiguraci aplikace CounterFit budou uvedeny v příslušné části zadání, protože se instalují pro každý projekt zvlášť.
Hello world
Je tradicí při začátcích s novým programovacím jazykem nebo technologií vytvořit aplikaci 'Hello World' – malou aplikaci, která vypíše například text "Hello World"
, aby se ověřilo, že všechny nástroje jsou správně nastaveny.
Aplikace Hello World pro virtuální IoT hardware zajistí, že máte správně nainstalovaný Python a Visual Studio Code. Také se připojí k CounterFit pro virtuální IoT senzory a akční členy. Nebude používat žádný hardware, pouze se připojí, aby ověřila, že vše funguje.
Tato aplikace bude ve složce nightlight
a bude znovu použita s jiným kódem v dalších částech tohoto zadání pro vytvoření aplikace nočního světla.
Konfigurace virtuálního prostředí Pythonu
Jednou z výkonných funkcí Pythonu je možnost instalace Pip balíčků – to jsou balíčky kódu napsané jinými lidmi a publikované na internetu. Pip balíček můžete nainstalovat na svůj počítač jedním příkazem a poté jej použít ve svém kódu. Pip budete používat k instalaci balíčku pro komunikaci s CounterFit.
Ve výchozím nastavení, když nainstalujete balíček, je dostupný všude na vašem počítači, což může vést k problémům s verzemi balíčků – například jedna aplikace závisí na jedné verzi balíčku, která přestane fungovat, když nainstalujete novou verzi pro jinou aplikaci. Aby se tento problém obešel, můžete použít virtuální prostředí Pythonu, což je v podstatě kopie Pythonu v dedikované složce, a když nainstalujete Pip balíčky, nainstalují se pouze do této složky.
💁 Pokud používáte Raspberry Pi, pak jste na tomto zařízení nenastavili virtuální prostředí pro správu Pip balíčků, místo toho používáte globální balíčky, protože balíčky Grove jsou globálně nainstalovány instalačním skriptem.
Úkol – konfigurace virtuálního prostředí Pythonu
Nakonfigurujte virtuální prostředí Pythonu a nainstalujte Pip balíčky pro CounterFit.
-
Z terminálu nebo příkazového řádku spusťte následující příkaz na místě dle vašeho výběru pro vytvoření a přechod do nové složky:
mkdir nightlight cd nightlight
-
Nyní spusťte následující příkaz pro vytvoření virtuálního prostředí ve složce
.venv
:python3 -m venv .venv
💁 Musíte explicitně zavolat
python3
pro vytvoření virtuálního prostředí, protože můžete mít nainstalovaný Python 2 vedle Pythonu 3 (nejnovější verze). Pokud máte nainstalovaný Python 2, pak volánípython
použije Python 2 místo Pythonu 3. -
Aktivujte virtuální prostředí:
-
Na Windows:
-
Pokud používáte příkazový řádek nebo příkazový řádek přes Windows Terminal, spusťte:
.venv\Scripts\activate.bat
-
Pokud používáte PowerShell, spusťte:
.\.venv\Scripts\Activate.ps1
Pokud se zobrazí chyba o tom, že spouštění skriptů je na tomto systému zakázáno, budete muset povolit spouštění skriptů nastavením vhodné politiky provádění. To můžete udělat spuštěním PowerShellu jako správce a následným spuštěním následujícího příkazu:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Zadejte
Y
, když budete požádáni o potvrzení. Poté znovu spusťte PowerShell a zkuste to znovu.Tuto politiku provádění můžete později resetovat, pokud to bude potřeba. Více si o tom můžete přečíst na stránce o politikách provádění na Microsoft Docs.
-
-
Na macOS nebo Linuxu spusťte:
source ./.venv/bin/activate
💁 Tyto příkazy by měly být spuštěny ze stejného místa, kde jste spustili příkaz pro vytvoření virtuálního prostředí. Nikdy nebudete muset přejít do složky
.venv
, vždy byste měli spustit aktivační příkaz a jakékoli příkazy pro instalaci balíčků nebo spuštění kódu ze složky, ve které jste byli při vytváření virtuálního prostředí. -
-
Jakmile je virtuální prostředí aktivováno, výchozí příkaz
python
spustí verzi Pythonu, která byla použita k vytvoření virtuálního prostředí. Spusťte následující příkaz pro zjištění verze:python --version
Výstup by měl obsahovat následující:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 Vaše verze Pythonu může být jiná – pokud je to verze 3.6 nebo vyšší, je to v pořádku. Pokud ne, smažte tuto složku, nainstalujte novější verzi Pythonu a zkuste to znovu.
-
Spusťte následující příkazy pro instalaci Pip balíčků pro CounterFit. Tyto balíčky zahrnují hlavní aplikaci CounterFit a také shims pro hardware Grove. Tyto shims vám umožňují psát kód, jako byste programovali s fyzickými senzory a akčními členy z ekosystému Grove, ale připojenými k virtuálním IoT zařízením.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
Tyto Pip balíčky budou nainstalovány pouze ve virtuálním prostředí a nebudou dostupné mimo něj.
Napište kód
Jakmile je virtuální prostředí Pythonu připraveno, můžete napsat kód pro aplikaci 'Hello World'.
Úkol – napište kód
Vytvořte Python aplikaci, která vypíše "Hello World"
do konzole.
-
Z terminálu nebo příkazového řádku spusťte následující příkaz uvnitř virtuálního prostředí pro vytvoření Python souboru s názvem
app.py
:-
Na Windows spusťte:
type nul > app.py
-
Na macOS nebo Linuxu spusťte:
touch app.py
-
-
Otevřete aktuální složku ve VS Code:
code .
💁 Pokud váš terminál na macOS vrátí
command not found
, znamená to, že VS Code nebyl přidán do PATH. Můžete přidat VS Code do PATH podle pokynů v sekci Spuštění z příkazového řádku v dokumentaci k VS Code a poté příkaz znovu spustit. Na Windows a Linuxu je VS Code ve výchozím nastavení přidán do PATH. -
Když se VS Code spustí, aktivuje virtuální prostředí Pythonu. Vybrané virtuální prostředí se zobrazí ve spodním stavovém řádku:
-
Pokud je terminál VS Code již spuštěn při spuštění VS Code, nebude mít aktivované virtuální prostředí. Nejjednodušší je ukončit terminál pomocí tlačítka Kill the active terminal instance:
Můžete zjistit, zda má terminál aktivované virtuální prostředí, protože název virtuálního prostředí bude předponou na výzvě terminálu. Například to může být:
(.venv) ➜ nightlight
Pokud nemáte
.venv
jako předponu na výzvě, virtuální prostředí není v terminálu aktivní. -
Spusťte nový terminál VS Code výběrem Terminal -> New Terminal nebo stisknutím
CTRL+`
. Nový terminál načte virtuální prostředí a volání pro jeho aktivaci se objeví v terminálu. Výzva bude také obsahovat název virtuálního prostředí (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
Otevřete soubor
app.py
z průzkumníka VS Code a přidejte následující kód:print('Hello World!')
Funkce
print
vypíše do konzole vše, co jí předáte. -
Z terminálu VS Code spusťte následující příkaz pro spuštění vaší Python aplikace:
python app.py
Ve výstupu bude následující:
(.venv) ➜ nightlight python app.py Hello World!
😀 Vaše aplikace 'Hello World' byla úspěšná!
Připojte 'hardware'
Jako druhý krok 'Hello World' spustíte aplikaci CounterFit a připojíte k ní svůj kód. To je virtuální ekvivalent připojení IoT hardwaru k vývojové desce.
Úkol – připojte 'hardware'
-
Z terminálu VS Code spusťte aplikaci CounterFit následujícím příkazem:
counterfit
Aplikace se spustí a otevře ve vašem webovém prohlížeči:
Bude označena jako Disconnected a LED v pravém horním rohu bude vypnutá.
-
Přidejte následující kód na začátek souboru
app.py
:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Tento kód importuje třídu
CounterFitConnection
z modulucounterfit_connection
, který pochází z Pip balíčkucounterfit-connection
, který jste nainstalovali dříve. Poté inicializuje připojení k aplikaci CounterFit běžící na127.0.0.1
, což je IP adresa, kterou můžete vždy použít pro přístup k vašemu lokálnímu počítači (často označovanému jako localhost), na portu 5000.💁 Pokud máte jiné aplikace běžící na portu 5000, můžete to změnit aktualizací portu v kódu a spuštěním CounterFit pomocí
CounterFit --port <port_number>
, kde<port_number>
nahradíte požadovaným portem. -
Budete muset spustit nový terminál VS Code výběrem tlačítka Create a new integrated terminal. To proto, že aplikace CounterFit běží v aktuálním terminálu.
-
V tomto novém terminálu spusťte soubor
app.py
jako dříve. Stav CounterFit se změní na Connected a LED se rozsvítí.
💁 Tento kód najdete ve složce code/virtual-device.
😀 Vaše připojení k hardwaru bylo úspěšné!
Upozornění:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.