4.6 KiB
偵測接近 - 虛擬物聯網硬體
在本課程的這部分,您將為虛擬物聯網設備添加一個接近感測器,並從中讀取距離。
硬體
虛擬物聯網設備將使用模擬的距離感測器。
在實體物聯網設備中,您會使用帶有雷射測距模組的感測器來偵測距離。
在 CounterFit 中添加距離感測器
要使用虛擬距離感測器,您需要在 CounterFit 應用程式中添加一個。
任務 - 在 CounterFit 中添加距離感測器
在 CounterFit 應用程式中添加距離感測器。
-
在 VS Code 中打開
fruit-quality-detector
程式碼,並確保虛擬環境已啟動。 -
安裝額外的 Pip 套件,以安裝一個 CounterFit shim,該 shim 可以通過模擬 rpi-vl53l0x Pip 套件 與距離感測器通信。這是一個與 VL53L0X 飛行時間距離感測器 互動的 Python 套件。確保您是在啟動虛擬環境的終端中安裝此套件。
pip install counterfit-shims-rpi-vl53l0x
-
確保 CounterFit 網頁應用程式正在運行。
-
創建一個距離感測器:
-
在 Sensors 面板的 Create sensor 框中,展開 Sensor type 下拉框並選擇 Distance。
-
將 Units 保持為
Millimeter
。 -
此感測器是一個 I2C 感測器,因此將地址設置為
0x29
。如果您使用的是實體 VL53L0X 感測器,它的地址會被硬編碼為此值。 -
選擇 Add 按鈕以創建距離感測器。
距離感測器將被創建並顯示在感測器列表中。
-
程式化距離感測器
現在可以程式化虛擬物聯網設備以使用模擬的距離感測器。
任務 - 程式化飛行時間感測器
-
在
fruit-quality-detector
專案中創建一個名為distance-sensor.py
的新檔案。💁 模擬多個物聯網設備的一個簡單方法是將每個設備放在不同的 Python 檔案中,然後同時運行它們。
-
使用以下程式碼啟動與 CounterFit 的連接:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
在此程式碼下方添加以下程式碼:
import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
這會導入 VL53L0X 飛行時間感測器的感測器庫 shim。
-
在此程式碼下方,添加以下程式碼以訪問感測器:
distance_sensor = VL53L0X() distance_sensor.begin()
此程式碼宣告了一個距離感測器,然後啟動該感測器。
-
最後,添加一個無限迴圈以讀取距離:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
此程式碼等待感測器準備好讀取值,然後將其打印到控制台。
-
運行此程式碼。
💁 別忘了此檔案名為
distance-sensor.py
!請確保通過 Python 運行此檔案,而不是app.py
。 -
您將在控制台中看到距離測量值。更改 CounterFit 中的值以查看此值的變化,或者使用隨機值。
(.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm
💁 您可以在 code-proximity/virtual-iot-device 資料夾中找到此程式碼。
😀 您的接近感測器程式成功了!
免責聲明:
本文件已使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。