檢測接近 - 虛擬 IoT 硬件
在本課程的這一部分中,您將為您的虛擬 IoT 設備添加一個接近傳感器,並從中讀取距離。
硬件
虛擬 IoT 設備將使用模擬距離傳感器。
在物理 IoT 設備中,您將使用帶有激光測距模塊的傳感器來檢測距離。
將距離傳感器添加到 CounterFit
要使用虛擬距離傳感器,您需要將其添加到 CounterFit 應用程序中
任務 - 將距離傳感器添加到 CounterFit
將距離傳感器添加到 CounterFit 應用程序中。
-
在 VS Code 中打開
fruit-quality-detector
代碼,並確保虛擬環境已激活。 -
安裝一 個額外的 Pip 包來安裝一個 CounterFit shim,它可以通過模擬 rpi-vl53l0x Pip 包,與 VL53L0X 飛行時間距離傳感器 進行交互。確保您是在激活虛擬環境的終端中安裝此包。
pip install counterfit-shims-rpi-vl53l0x
-
確保 CounterFit 網頁應用程序正在運行
-
創建一個距離傳感器:
-
在 Sensors 面板的 Create sensor 框中,打開 Sensor type 下拉框並選擇 Distance。
-
將 Units 保持為
Millimeter
-
這個傳感器是一個 I2C 傳感器,所以將地址設置為
0x29
。如果您使用的是物理 VL53L0X 傳感器,它將被硬編碼為此地址。 -
選擇 Add 按鈕來創建距離傳感器
距離傳感器將被創建並出現在傳感器列表中。
-
編程距離傳感器
現在可以編程虛擬 IoT 設備以使用模擬距離傳感器。
任務 - 編程飛行時間傳感器
-
在
fruit-quality-detector
項目中創建一個名為distance-sensor.py
的新文件。💁 模擬多個 IoT 設備的一個簡單方法是將每個設備放在不同的 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 文件夾中找到此代碼。
😀 您的接近傳感器程序成功了!