4.8 KiB
Oppdag nærhet - Virtuell IoT-maskinvare
I denne delen av leksjonen skal du legge til en nærhetssensor på din virtuelle IoT-enhet og lese avstand fra den.
Maskinvare
Den virtuelle IoT-enheten vil bruke en simulert avstandssensor.
På en fysisk IoT-enhet ville du brukt en sensor med et laserbasert målingsmodul for å oppdage avstand.
Legg til avstandssensoren i CounterFit
For å bruke en virtuell avstandssensor, må du legge til en i CounterFit-appen.
Oppgave - legg til avstandssensoren i CounterFit
Legg til avstandssensoren i CounterFit-appen.
-
Åpne koden
fruit-quality-detector
i VS Code, og sørg for at det virtuelle miljøet er aktivert. -
Installer en ekstra Pip-pakke for å installere en CounterFit shim som kan kommunisere med avstandssensorer ved å simulere rpi-vl53l0x Pip-pakken, en Python-pakke som interagerer med en VL53L0X time-of-flight avstandssensor. Sørg for at du installerer dette fra en terminal med det virtuelle miljøet aktivert.
pip install counterfit-shims-rpi-vl53l0x
-
Sørg for at CounterFit-nettappen kjører.
-
Opprett en avstandssensor:
-
I boksen Create sensor i Sensors-panelet, åpne rullegardinmenyen Sensor type og velg Distance.
-
La Units stå som
Millimeter
. -
Denne sensoren er en I²C-sensor, så sett adressen til
0x29
. Hvis du brukte en fysisk VL53L0X-sensor, ville den vært hardkodet til denne adressen. -
Velg Add-knappen for å opprette avstandssensoren.
Avstandssensoren vil bli opprettet og vises i sensorlisten.
-
Programmer avstandssensoren
Den virtuelle IoT-enheten kan nå programmeres til å bruke den simulerte avstandssensoren.
Oppgave - programmer time-of-flight-sensoren
-
Opprett en ny fil i prosjektet
fruit-quality-detector
kaltdistance-sensor.py
.💁 En enkel måte å simulere flere IoT-enheter på er å gjøre hver enhet i en egen Python-fil, og deretter kjøre dem samtidig.
-
Start en tilkobling til CounterFit med følgende kode:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Legg til følgende kode under dette:
import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
Dette importerer sensorbiblioteket shim for VL53L0X time-of-flight-sensoren.
-
Under dette, legg til følgende kode for å få tilgang til sensoren:
distance_sensor = VL53L0X() distance_sensor.begin()
Denne koden erklærer en avstandssensor og starter sensoren.
-
Til slutt, legg til en uendelig løkke for å lese avstander:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
Denne koden venter på at en verdi skal være klar til å leses fra sensoren, og skriver den deretter ut til konsollen.
-
Kjør denne koden.
💁 Husk at denne filen heter
distance-sensor.py
! Sørg for å kjøre den via Python, ikkeapp.py
. -
Du vil se avstandsmålinger vises i konsollen. Endre verdien i CounterFit for å se denne verdien endre seg, eller bruk tilfeldige verdier.
(.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm
💁 Du finner denne koden i mappen code-proximity/virtual-iot-device.
😀 Programmet for nærhetssensoren din var en suksess!
Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.