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

7.4 KiB

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

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

Оборудование

Виртуальное IoT-устройство будет использовать симулированный датчик расстояния.

В физическом IoT-устройстве вы бы использовали датчик с лазерным модулем для измерения расстояния.

Добавление датчика расстояния в CounterFit

Чтобы использовать виртуальный датчик расстояния, необходимо добавить его в приложение CounterFit.

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

Добавьте датчик расстояния в приложение CounterFit.

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

  2. Установите дополнительный пакет Pip, чтобы добавить CounterFit shim, который может взаимодействовать с датчиками расстояния, симулируя rpi-vl53l0x Pip package — 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.

😀 Программа для вашего датчика близости успешно завершена!


Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.