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/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md

20 KiB

Виртуальный одноплатный компьютер

Вместо покупки IoT-устройства вместе с датчиками и исполнительными механизмами, вы можете использовать свой компьютер для симуляции IoT-оборудования. Проект CounterFit позволяет запускать приложение локально, которое симулирует IoT-оборудование, такое как датчики и исполнительные механизмы, и получать доступ к этим компонентам из локального Python-кода, написанного так же, как если бы вы работали с Raspberry Pi и физическим оборудованием.

Настройка

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

Задача

Установите необходимое программное обеспечение.

  1. Установите Python. Ознакомьтесь с страницей загрузки Python для получения инструкций по установке последней версии Python.

  2. Установите Visual Studio Code (VS Code). Это редактор, который вы будете использовать для написания кода виртуального устройства на Python. Ознакомьтесь с документацией VS Code для получения инструкций по установке VS Code.

    💁 Вы можете использовать любой IDE или редактор для Python, если у вас есть предпочтительный инструмент, но инструкции в уроках будут основаны на использовании VS Code.

  3. Установите расширение Pylance для VS Code. Это расширение предоставляет поддержку языка Python в VS Code. Ознакомьтесь с документацией расширения Pylance для получения инструкций по установке этого расширения.

Инструкции по установке и настройке приложения CounterFit будут предоставлены в соответствующем разделе задания, так как оно устанавливается для каждого проекта отдельно.

Hello World

Традиционно при изучении нового языка программирования или технологии создается приложение "Hello World" — небольшое приложение, которое выводит текст вроде "Hello World", чтобы убедиться, что все инструменты настроены правильно.

Приложение Hello World для виртуального IoT-оборудования поможет убедиться, что Python и Visual Studio Code установлены корректно. Оно также подключится к CounterFit для работы с виртуальными IoT-датчиками и исполнительными механизмами. Оборудование использоваться не будет, приложение просто подключится, чтобы доказать, что все работает.

Это приложение будет находиться в папке nightlight и будет использоваться с разным кодом в последующих частях задания для создания приложения ночника.

Настройка виртуального окружения Python

Одной из мощных функций Python является возможность устанавливать Pip-пакеты — это пакеты кода, написанные другими разработчиками и опубликованные в Интернете. Вы можете установить Pip-пакет на свой компьютер одной командой, а затем использовать его в своем коде. Вы будете использовать Pip для установки пакета, который позволяет взаимодействовать с CounterFit.

По умолчанию, когда вы устанавливаете пакет, он становится доступным везде на вашем компьютере, что может привести к проблемам с версиями пакетов — например, одно приложение зависит от одной версии пакета, которая перестает работать после установки новой версии для другого приложения. Чтобы избежать этой проблемы, можно использовать виртуальное окружение Python — это копия Python в выделенной папке, и установленные через Pip пакеты будут доступны только в этой папке.

💁 Если вы используете Raspberry Pi, то вы не настраивали виртуальное окружение на этом устройстве для управления Pip-пакетами, вместо этого вы используете глобальные пакеты, так как пакеты Grove устанавливаются глобально с помощью установочного скрипта.

Задача — настройка виртуального окружения Python

Настройте виртуальное окружение Python и установите Pip-пакеты для CounterFit.

  1. В терминале или командной строке выполните следующую команду в выбранной вами директории, чтобы создать и перейти в новую папку:

    mkdir nightlight
    cd nightlight
    
  2. Затем выполните следующую команду, чтобы создать виртуальное окружение в папке .venv:

    python3 -m venv .venv
    

    💁 Необходимо явно вызвать python3 для создания виртуального окружения, на случай если у вас установлены Python 2 и Python 3 (последняя версия). Если установлен Python 2, то вызов python будет использовать Python 2 вместо Python 3.

  3. Активируйте виртуальное окружение:

    • На Windows:

      • Если вы используете Command Prompt или Command Prompt через Windows Terminal, выполните:

        .venv\Scripts\activate.bat
        
      • Если вы используете PowerShell, выполните:

        .\.venv\Scripts\Activate.ps1
        

        Если вы получите ошибку о том, что выполнение скриптов отключено на этой системе, вам нужно включить выполнение скриптов, установив соответствующую политику выполнения. Для этого запустите PowerShell от имени администратора и выполните следующую команду:

        Set-ExecutionPolicy -ExecutionPolicy Unrestricted
        

        Подтвердите, введя Y. Затем перезапустите PowerShell и попробуйте снова.

        Вы можете сбросить эту политику выполнения позже, если потребуется. Подробнее об этом можно прочитать на странице о политиках выполнения на Microsoft Docs.

    • На macOS или Linux выполните:

      source ./.venv/bin/activate
      

    💁 Эти команды должны быть выполнены из той же директории, где вы создавали виртуальное окружение. Вам никогда не нужно переходить в папку .venv, всегда запускайте команду активации и любые команды для установки пакетов или выполнения кода из папки, где было создано виртуальное окружение.

  4. После активации виртуального окружения команда python по умолчанию будет использовать версию Python, которая была использована для создания виртуального окружения. Выполните следующую команду, чтобы узнать версию:

    python --version
    

    В выводе должно быть указано:

    (.venv) ➜  nightlight python --version
    Python 3.9.1
    

    💁 Ваша версия Python может отличаться — главное, чтобы она была 3.6 или выше. Если нет, удалите эту папку, установите более новую версию Python и попробуйте снова.

  5. Выполните следующие команды для установки Pip-пакетов для CounterFit. Эти пакеты включают основное приложение CounterFit, а также шимы для оборудования Grove. Эти шимы позволяют писать код так, как если бы вы программировали с использованием физических датчиков и исполнительных механизмов из экосистемы Grove, но подключенных к виртуальным IoT-устройствам.

    pip install CounterFit
    pip install counterfit-connection
    pip install counterfit-shims-grove
    

    Эти Pip-пакеты будут установлены только в виртуальном окружении и не будут доступны вне его.

Написание кода

После настройки виртуального окружения Python вы можете написать код для приложения "Hello World".

Задача — написание кода

Создайте приложение на Python, которое выводит "Hello World" в консоль.

  1. В терминале или командной строке выполните следующую команду внутри виртуального окружения, чтобы создать файл Python с именем app.py:

    • На Windows выполните:

      type nul > app.py
      
    • На macOS или Linux выполните:

      touch app.py
      
  2. Откройте текущую папку в VS Code:

    code .
    

    💁 Если ваш терминал возвращает command not found на macOS, это означает, что VS Code не был добавлен в ваш PATH. Вы можете добавить VS Code в PATH, следуя инструкциям в разделе о запуске из командной строки в документации VS Code и затем выполнить команду. VS Code добавляется в PATH по умолчанию на Windows и Linux.

  3. Когда VS Code запустится, он активирует виртуальное окружение Python. Выбранное виртуальное окружение будет отображаться в нижней строке состояния:

    VS Code показывает выбранное виртуальное окружение

  4. Если терминал VS Code уже запущен при старте VS Code, виртуальное окружение в нем не будет активировано. Самый простой способ — закрыть терминал, используя кнопку Kill the active terminal instance:

    Кнопка VS Code Kill the active terminal instance

    Вы можете определить, активировано ли виртуальное окружение в терминале, по имени виртуального окружения, которое будет префиксом в приглашении терминала. Например, это может быть:

    (.venv) ➜  nightlight
    

    Если в приглашении нет .venv в качестве префикса, виртуальное окружение не активировано в терминале.

  5. Запустите новый терминал VS Code, выбрав Terminal -> New Terminal или нажав CTRL+`. Новый терминал загрузит виртуальное окружение, и вызов активации появится в терминале. В приглашении также будет имя виртуального окружения (.venv):

    ➜  nightlight source .venv/bin/activate
    (.venv) ➜  nightlight 
    
  6. Откройте файл app.py в проводнике VS Code и добавьте следующий код:

    print('Hello World!')
    

    Функция print выводит в консоль все, что передано ей в качестве аргумента.

  7. В терминале VS Code выполните следующую команду, чтобы запустить ваше приложение на Python:

    python app.py
    

    В выводе будет:

    (.venv) ➜  nightlight python app.py 
    Hello World!
    

😀 Ваше приложение "Hello World" успешно запущено!

Подключение "оборудования"

На втором этапе "Hello World" вы запустите приложение CounterFit и подключите к нему свой код. Это виртуальный эквивалент подключения IoT-оборудования к плате разработки.

Задача — подключение "оборудования"

  1. В терминале VS Code запустите приложение CounterFit с помощью следующей команды:

    counterfit
    

    Приложение начнет работать и откроется в вашем веб-браузере:

    Приложение Counter Fit запущено в браузере

    Оно будет отмечено как Disconnected, а светодиод в правом верхнем углу будет выключен.

  2. Добавьте следующий код в начало файла app.py:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    

    Этот код импортирует класс CounterFitConnection из модуля counterfit_connection, который предоставляется пакетом counterfit-connection, установленным ранее. Затем он инициализирует подключение к приложению CounterFit, работающему на 127.0.0.1 — IP-адресу, который всегда можно использовать для доступа к вашему локальному компьютеру (часто называемому localhost), на порту 5000.

    💁 Если у вас есть другие приложения, работающие на порту 5000, вы можете изменить это, обновив порт в коде и запустив CounterFit с помощью CounterFit --port <port_number>, заменив <port_number> на нужный порт.

  3. Вам нужно запустить новый терминал VS Code, выбрав кнопку Create a new integrated terminal. Это связано с тем, что приложение CounterFit работает в текущем терминале.

    Кнопка VS Code Create a new integrated terminal

  4. В новом терминале выполните файл app.py, как и раньше. Статус CounterFit изменится на Connected, и светодиод загорится.

    Counter Fit показывает статус Connected

💁 Вы можете найти этот код в папке code/virtual-device.

😀 Подключение к оборудованию прошло успешно!


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