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/bg/4-manufacturing/lessons/4-trigger-fruit-detector/virtual-device-proximity.md

7.3 KiB

Откриване на близост - Виртуален IoT хардуер

В тази част от урока ще добавите сензор за близост към вашето виртуално IoT устройство и ще четете разстояние от него.

Хардуер

Виртуалното IoT устройство ще използва симулиран сензор за разстояние.

При физическо IoT устройство бихте използвали сензор с лазерен модул за измерване на разстояние.

Добавяне на сензор за разстояние към CounterFit

За да използвате виртуален сензор за разстояние, трябва да добавите такъв към приложението CounterFit.

Задача - добавяне на сензор за разстояние към CounterFit

Добавете сензор за разстояние към приложението CounterFit.

  1. Отворете кода fruit-quality-detector в VS Code и се уверете, че виртуалната среда е активирана.

  2. Инсталирайте допълнителен Pip пакет, за да добавите CounterFit shim, който може да комуникира със сензори за разстояние, като симулира rpi-vl53l0x Pip пакета, Python пакет, който работи с VL53L0X сензор за разстояние чрез време на полет. Уверете се, че инсталирате това от терминал с активирана виртуална среда.

    pip install counterfit-shims-rpi-vl53l0x
    
  3. Уверете се, че уеб приложението CounterFit работи.

  4. Създайте сензор за разстояние:

    1. В полето Create sensor в панела Sensors, отворете падащото меню Sensor type и изберете Distance.

    2. Оставете Units като Millimeter.

    3. Този сензор е I²C сензор, затова задайте адреса на 0x29. Ако използвате физически VL53L0X сензор, той ще бъде твърдо зададен на този адрес.

    4. Натиснете бутона Add, за да създадете сензора за разстояние.

    Настройки на сензора за разстояние

    Сензорът за разстояние ще бъде създаден и ще се появи в списъка със сензори.

    Създаден сензор за разстояние

Програмиране на сензора за разстояние

Виртуалното IoT устройство вече може да бъде програмирано да използва симулирания сензор за разстояние.

Задача - програмиране на сензора за време на полет

  1. Създайте нов файл в проекта fruit-quality-detector, наречен distance-sensor.py.

    💁 Лесен начин за симулиране на множество IoT устройства е да създадете всяко в отделен Python файл и след това да ги стартирате едновременно.

  2. Започнете връзка с CounterFit със следния код:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  3. Добавете следния код под това:

    import time
    
    from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
    

    Това импортира библиотеката shim за сензора VL53L0X за време на полет.

  4. Под това добавете следния код за достъп до сензора:

    distance_sensor = VL53L0X()
    distance_sensor.begin()
    

    Този код декларира сензор за разстояние и след това стартира сензора.

  5. Накрая добавете безкраен цикъл за четене на разстояния:

    while True:
        distance_sensor.wait_ready()
        print(f'Distance = {distance_sensor.get_distance()} mm')
        time.sleep(1)
    

    Този код изчаква стойност, която е готова за четене от сензора, и след това я отпечатва в конзолата.

  6. Стартирайте този код.

    💁 Не забравяйте, че този файл се нарича distance-sensor.py! Уверете се, че го стартирате чрез Python, а не app.py.

  7. Ще видите измервания на разстояние в конзолата. Променете стойността в 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. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.