4.9 KiB
Upptäck närhet - Virtuell IoT-hårdvara
I den här delen av lektionen kommer du att lägga till en närhetssensor till din virtuella IoT-enhet och läsa avstånd från den.
Hårdvara
Den virtuella IoT-enheten kommer att använda en simulerad avståndssensor.
På en fysisk IoT-enhet skulle du använda en sensor med en lasermodul för att mäta avstånd.
Lägg till avståndssensorn i CounterFit
För att använda en virtuell avståndssensor behöver du lägga till en i CounterFit-appen.
Uppgift - lägg till avståndssensorn i CounterFit
Lägg till avståndssensorn i CounterFit-appen.
-
Öppna koden
fruit-quality-detector
i VS Code och se till att den virtuella miljön är aktiverad. -
Installera ett extra Pip-paket för att lägga till en CounterFit-shim som kan kommunicera med avståndssensorer genom att simulera rpi-vl53l0x Pip-paketet, ett Python-paket som interagerar med en VL53L0X time-of-flight avståndssensor. Se till att du installerar detta från en terminal med den virtuella miljön aktiverad.
pip install counterfit-shims-rpi-vl53l0x
-
Se till att CounterFit-webbappen körs.
-
Skapa en avståndssensor:
-
I rutan Create sensor i Sensors-panelen, öppna rullgardinsmenyn Sensor type och välj Distance.
-
Lämna Units som
Millimeter
. -
Den här sensorn är en I²C-sensor, så ställ in adressen till
0x29
. Om du använde en fysisk VL53L0X-sensor skulle den vara hårdkodad till denna adress. -
Välj knappen Add för att skapa avståndssensorn.
Avståndssensorn kommer att skapas och visas i sensorlistan.
-
Programmera avståndssensorn
Den virtuella IoT-enheten kan nu programmeras för att använda den simulerade avståndssensorn.
Uppgift - programmera time-of-flight-sensorn
-
Skapa en ny fil i projektet
fruit-quality-detector
som heterdistance-sensor.py
.💁 Ett enkelt sätt att simulera flera IoT-enheter är att göra varje enhet i en separat Python-fil och sedan köra dem samtidigt.
-
Starta en anslutning till CounterFit med följande kod:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Lägg till följande kod under detta:
import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
Detta importerar sensorbibliotekets shim för VL53L0X time-of-flight-sensorn.
-
Lägg till följande kod under detta för att komma åt sensorn:
distance_sensor = VL53L0X() distance_sensor.begin()
Denna kod deklarerar en avståndssensor och startar sensorn.
-
Slutligen, lägg till en oändlig loop för att läsa avstånd:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
Denna kod väntar på att ett värde ska vara redo att läsas från sensorn och skriver sedan ut det till konsolen.
-
Kör denna kod.
💁 Glöm inte att denna fil heter
distance-sensor.py
! Se till att köra den via Python, inteapp.py
. -
Du kommer att se avståndsmätningar visas i konsolen. Ändra värdet i CounterFit för att se detta värde ändras, eller använd slumpmässiga värden.
(.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm
💁 Du kan hitta denna kod i mappen code-proximity/virtual-iot-device.
😀 Ditt program för närhetssensorn var en framgång!
Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör du vara medveten om att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.