虛擬單板計算機
不用購買IoT器件,包括 sensor 和 actuator,您可以使用自己的電腦來模擬IoT硬體。CounterFit專案 允許您在本地上運行應用程序,模擬IoT硬體如sensor和actuator,並使用與您在Raspberry Pi上使用物理硬體時相同的語法,從本地Python程式碼訪問sensor和actuator。
设置
為了使用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'应用程序是最傳統的做法——一個輸出像"text 'Hello World'"的小应用程序,以顯示所有工具都已正确配置。
虛擬IoT硬體的Hello World应用程序將確保您已正确安裝Python和Visual Studio code。它還將連接到CounterFit以虛擬IoT感應器和actuator。它不會使用任何硬體,它只是連接到證明everything is working。
這個應用程序將在名為nightlight
的文件夹中,並將在這個作業的後階段使用不同的代碼重新使用來建立夜燈應用程序。
配置Python虛擬環境
Python的一個強大功能是可以安裝Pip包——這些是由其他人撰寫並在互聯網上公布的包。您可以使用一個命令將Pip包安裝到您的電腦上,然後在您的代碼中使用該包。您將使用Pip安裝與CounterFit通信的包。
默認情況下,當您安裝包時,它可以在您的電腦上任何地方 可用,這可能會導致包版本的問題——比如一個應用程序依賴於某個包的一個版本,而您為另一個應用程序安裝的新版本會破壞它。為了解決這個問題,您可以使用Python虛擬環境,實際上是一個專為Python創建的副資料夾的Python副本,當您安裝Pip包時,它們僅在那個資料夾中安裝。
💁 如果您在Raspberry Pi上使用,則沒有為管理Pip包在該設備上設置虛擬環境,而是使用全局包,因為Grover包是通過安裝腳本全局安裝的。
任務 - 配置Python虛擬環境
配置Python虛擬環境,並安裝CounterFit的Pip包。
-
在您的終端或命令行中,運行以下命令在您選擇的位址創建和_nav到一個新目錄:
mkdir nightlight
cd nightlight -
現在運行以下命令以在
.venv
資料夾中創建虛擬環境:python3 -m venv .venv
💁 您需要明確使用
python3
來創建虛擬環境,以防您除了Python 3還安裝了Python 2(最新版本)。如果您安裝了Python2,則只會使用Python 2而不是Python 3去呼叫。 -
激活虛擬環境:
-
在Windows上:
-
如果您正在使用命令提示符或通过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
💁 這些命令應該從您運行創建虛擬環境的命令的位置運行。您永遠不需要進入虛擬環境資料夾,您應該永遠運行激活命令和任何安裝包或運行程式命令從您在創建虛擬環境時所在的資料夾。
-
-
一旦虛擬環境被激活,默認的
python
命令將運行用於創建虛擬環境的Python版本。運行以下命令來獲取版本:python --version
輸出應包含以下內容:
(.venv) ➜ nightlight python --version
Python 3.9.1💁 您的Python版本可能不同——只要它是3.6或更高版本,您就沒問題。如果不是,刪除這個資料夾,安裝較新版本的Python,然後再次嘗試。
-
運行以下命令以安裝CounterFit的Pip包。這些包包括主要的CounterFit應用程序以及為Grove硬體提供的shim。這些shim允許您像使用物理sensor和actuator從Grove硬體生态系统編程時一樣編寫代碼,但連接到虛擬IoT設備。
pip install CounterFit
pip install counterfit-connection
pip install counterfit-shims-grove这些pip包將只安裝在虛擬環境中,並不在其外部可用。
编写代码
一旦Python虛擬環境已準備就緒,您可以為'Hello World'應用程序編寫代碼