You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sv/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md

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.

  1. Öppna koden fruit-quality-detector i VS Code och se till att den virtuella miljön är aktiverad.

  2. 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
    
  3. Se till att CounterFit-webbappen körs.

  4. Skapa en avståndssensor:

    1. I rutan Create sensor i Sensors-panelen, öppna rullgardinsmenyn Sensor type och välj Distance.

    2. Lämna Units som Millimeter.

    3. 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.

    4. Välj knappen Add för att skapa avståndssensorn.

    Inställningar för avståndssensorn

    Avståndssensorn kommer att skapas och visas i sensorlistan.

    Avståndssensorn skapad

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

  1. Skapa en ny fil i projektet fruit-quality-detector som heter distance-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.

  2. Starta en anslutning till CounterFit med följande kod:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  3. 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.

  4. 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.

  5. 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.

  6. Kör denna kod.

    💁 Glöm inte att denna fil heter distance-sensor.py! Se till att köra den via Python, inte app.py.

  7. 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.