14 KiB
Virtuális egykártyás számítógép
Ahelyett, hogy IoT eszközt, szenzorokat és aktuátorokat vásárolnál, a számítógépedet is használhatod IoT hardver szimulálására. A CounterFit projekt lehetővé teszi, hogy helyben futtass egy alkalmazást, amely szimulálja az IoT hardvert, például szenzorokat és aktuátorokat, és hozzáférj ezekhez a helyi Python kódból, ugyanúgy, ahogy fizikai hardverrel, például Raspberry Pi-vel dolgoznál.
Beállítás
A CounterFit használatához néhány ingyenes szoftvert kell telepítened a számítógépedre.
Feladat
Telepítsd a szükséges szoftvereket.
-
Telepítsd a Python-t. A legújabb Python verzió telepítéséhez lásd a Python letöltési oldalát.
-
Telepítsd a Visual Studio Code-ot (VS Code). Ez lesz az editor, amelyben a virtuális eszköz kódját Pythonban írod. A telepítési útmutatóért lásd a VS Code dokumentációját.
💁 Szabadon használhatsz bármilyen Python IDE-t vagy editort, ha van kedvenc eszközöd, de a leckék a VS Code használatára vonatkozó utasításokat tartalmaznak.
-
Telepítsd a VS Code Pylance bővítményt. Ez egy VS Code bővítmény, amely Python nyelvi támogatást nyújt. A telepítési útmutatóért lásd a Pylance bővítmény dokumentációját.
A CounterFit alkalmazás telepítésére és konfigurálására vonatkozó utasításokat a megfelelő időben, a feladat utasításai között találod, mivel ez projektalapon kerül telepítésre.
Hello világ
Hagyomány, hogy egy új programozási nyelv vagy technológia elsajátításakor egy 'Hello World' alkalmazással kezdünk - egy kis alkalmazással, amely például a "Hello World"
szöveget jeleníti meg, hogy megbizonyosodjunk arról, hogy minden eszköz megfelelően van konfigurálva.
A virtuális IoT hardverhez készült Hello World alkalmazás biztosítja, hogy a Python és a Visual Studio Code helyesen legyen telepítve. Emellett csatlakozik a CounterFit-hez a virtuális IoT szenzorok és aktuátorok számára. Nem használ semmilyen hardvert, csak csatlakozik, hogy bizonyítsa, minden működik.
Ez az alkalmazás egy nightlight
nevű mappában lesz, és később, a feladat további részeiben újra felhasználásra kerül a nightlight alkalmazás építéséhez.
Python virtuális környezet konfigurálása
A Python egyik erőteljes funkciója a Pip csomagok telepítésének lehetősége - ezek olyan kódcsomagok, amelyeket mások írtak és publikáltak az interneten. Egy Pip csomagot egyetlen paranccsal telepíthetsz a számítógépedre, majd használhatod azt a kódodban. A CounterFit-hez való kommunikációhoz egy csomagot fogsz telepíteni Pip segítségével.
Alapértelmezés szerint, amikor telepítesz egy csomagot, az mindenhol elérhető a számítógépeden, ami problémákat okozhat a csomagverziókkal - például egy alkalmazás egy csomag egyik verziójától függ, amely megszakad, ha egy másik alkalmazáshoz új verziót telepítesz. Ennek a problémának a megoldására használhatsz egy Python virtuális környezetet, amely lényegében egy Python másolat egy dedikált mappában, és amikor Pip csomagokat telepítesz, azok csak abba a mappába kerülnek telepítésre.
💁 Ha Raspberry Pi-t használsz, akkor nem állítottál be virtuális környezetet azon az eszközön a Pip csomagok kezelésére, hanem globális csomagokat használsz, mivel a Grove csomagok globálisan kerülnek telepítésre a telepítő szkript által.
Feladat - Python virtuális környezet konfigurálása
Konfiguráld a Python virtuális környezetet, és telepítsd a CounterFit-hez szükséges Pip csomagokat.
-
A terminálodban vagy parancssorodban futtasd a következő parancsokat egy általad választott helyen, hogy létrehozz és navigálj egy új könyvtárba:
mkdir nightlight cd nightlight
-
Most futtasd a következőt, hogy létrehozz egy virtuális környezetet a
.venv
mappában:python3 -m venv .venv
💁 Kifejezetten a
python3
-at kell hívnod a virtuális környezet létrehozásához, arra az esetre, ha Python 2 is telepítve van a Python 3 mellett (a legújabb verzió). Ha Python 2 telepítve van, akkor apython
hívása Python 2-t fog használni Python 3 helyett. -
Aktiváld a virtuális környezetet:
-
Windows esetén:
-
Ha a Command Promptot vagy a Windows Terminalon keresztül a Command Promptot használod, futtasd:
.venv\Scripts\activate.bat
-
Ha PowerShellt használsz, futtasd:
.\.venv\Scripts\Activate.ps1
Ha hibaüzenetet kapsz arról, hogy a szkriptek futtatása le van tiltva ezen a rendszeren, engedélyezned kell a szkriptek futtatását egy megfelelő végrehajtási szabályzat beállításával. Ezt úgy teheted meg, hogy rendszergazdaként indítod el a PowerShellt, majd futtatod a következő parancsot:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Nyomj
Y
-t a megerősítéshez. Ezután indítsd újra a PowerShellt, és próbáld újra.Ha szükséges, később visszaállíthatod ezt a végrehajtási szabályzatot. Erről többet olvashatsz a Microsoft Docs végrehajtási szabályzatok oldalán.
-
-
macOS vagy Linux esetén futtasd:
source ./.venv/bin/activate
💁 Ezeket a parancsokat ugyanabból a helyről kell futtatnod, ahol a virtuális környezet létrehozására vonatkozó parancsot futtattad. Soha nem kell belépned a
.venv
mappába, mindig az aktiváló parancsot és a csomagok telepítésére vagy kód futtatására vonatkozó parancsokat kell futtatnod abból a mappából, ahol a virtuális környezetet létrehoztad. -
-
Miután a virtuális környezet aktiválva lett, az alapértelmezett
python
parancs azt a Python verziót fogja futtatni, amelyet a virtuális környezet létrehozásához használtál. Futtasd a következőt a verzió lekéréséhez:python --version
A kimenetnek a következőt kell tartalmaznia:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 A Python verziód eltérő lehet - amíg 3.6 vagy magasabb verziójú, minden rendben. Ha nem, töröld ezt a mappát, telepíts egy újabb Python verziót, és próbáld újra.
-
Futtasd a következő parancsokat a CounterFit-hez szükséges Pip csomagok telepítéséhez. Ezek a csomagok tartalmazzák a fő CounterFit alkalmazást, valamint Grove hardverhez való shimeket. Ezek a shimek lehetővé teszik, hogy úgy írj kódot, mintha fizikai szenzorokat és aktuátorokat programoznál a Grove ökoszisztémából, de virtuális IoT eszközökhöz csatlakozva.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
Ezek a pip csomagok csak a virtuális környezetben lesznek telepítve, és azon kívül nem lesznek elérhetők.
Írd meg a kódot
Miután a Python virtuális környezet készen áll, megírhatod a 'Hello World' alkalmazás kódját.
Feladat - írd meg a kódot
Hozz létre egy Python alkalmazást, amely kiírja a "Hello World"
szöveget a konzolra.
-
A terminálodban vagy parancssorodban futtasd a következőt a virtuális környezeten belül, hogy létrehozz egy
app.py
nevű Python fájlt:-
Windows esetén futtasd:
type nul > app.py
-
macOS vagy Linux esetén futtasd:
touch app.py
-
-
Nyisd meg az aktuális mappát a VS Code-ban:
code .
💁 Ha a terminálod
command not found
üzenetet ad vissza macOS-en, az azt jelenti, hogy a VS Code nincs hozzáadva a PATH-hoz. A VS Code-ot hozzáadhatod a PATH-hoz a VS Code dokumentációjának Parancssorból indítás szakaszában található utasítások követésével, majd futtasd a parancsot utána. A VS Code alapértelmezés szerint hozzáadódik a PATH-hoz Windows és Linux rendszeren. -
Amikor a VS Code elindul, aktiválja a Python virtuális környezetet. A kiválasztott virtuális környezet megjelenik az alsó állapotsávban:
-
Ha a VS Code terminál már fut, amikor a VS Code elindul, akkor nem lesz aktiválva benne a virtuális környezet. A legegyszerűbb megoldás az, ha bezárod a terminált a Kill the active terminal instance gombbal:
Megállapíthatod, hogy a terminálban aktiválva van-e a virtuális környezet, ha a terminál promptjának előtagja a virtuális környezet neve. Például lehet:
(.venv) ➜ nightlight
Ha nincs
.venv
előtag a prompton, akkor a virtuális környezet nincs aktiválva a terminálban. -
Indíts egy új VS Code terminált a Terminal -> New Terminal menüpont kiválasztásával, vagy a
CTRL+`
billentyűkombinációval. Az új terminál betölti a virtuális környezetet, és az aktiválásra vonatkozó hívás megjelenik a terminálban. A prompton is megjelenik a virtuális környezet neve (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
Nyisd meg az
app.py
fájlt a VS Code explorerből, és add hozzá a következő kódot:print('Hello World!')
A
print
függvény kiírja a konzolra azt, amit átadnak neki. -
A VS Code terminálból futtasd a következőt a Python alkalmazás futtatásához:
python app.py
A kimenetben a következő lesz:
(.venv) ➜ nightlight python app.py Hello World!
😀 A 'Hello World' programod sikeres volt!
Csatlakoztasd a 'hardvert'
Második 'Hello World' lépésként futtatni fogod a CounterFit alkalmazást, és csatlakoztatod hozzá a kódodat. Ez a virtuális megfelelője annak, hogy IoT hardvert csatlakoztatsz egy fejlesztői készlethez.
Feladat - csatlakoztasd a 'hardvert'
-
A VS Code terminálból indítsd el a CounterFit alkalmazást a következő paranccsal:
counterfit
Az alkalmazás elindul, és megnyílik a webböngésződben:
Disconnected állapotban lesz, a jobb felső sarokban lévő LED ki lesz kapcsolva.
-
Add hozzá a következő kódot az
app.py
fájl tetejéhez:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Ez a kód importálja a
CounterFitConnection
osztályt acounterfit_connection
modulból, amely a korábban telepítettcounterfit-connection
pip csomagból származik. Ezután inicializál egy kapcsolatot a CounterFit alkalmazáshoz, amely a127.0.0.1
címen fut, ami egy IP-cím, amelyet mindig használhatsz a helyi számítógéped eléréséhez (localhost néven is ismert), az 5000-es porton.💁 Ha más alkalmazások futnak az 5000-es porton, ezt megváltoztathatod a kódban a port frissítésével, és a CounterFit futtatásával
CounterFit --port <port_number>
paranccsal, ahol<port_number>
helyére az általad használni kívánt portot írod. -
Új VS Code terminált kell indítanod a Create a new integrated terminal gombbal. Ez azért szükséges, mert a CounterFit alkalmazás a jelenlegi terminálban fut.
-
Ebben az új terminálban futtasd az
app.py
fájlt, ahogy korábban. A CounterFit állapota Connected-re változik, és a LED világítani fog.
💁 Ezt a kódot megtalálod a code/virtual-device mappában.
😀 A hardverhez való csatlakozásod sikeres volt!
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.