Руководство. Подключение комплект Интернета вещей ESPRESSIF ESP32-Azure для Центр Интернета вещей

В этом руководстве описано, как использовать ПО промежуточного слоя Интернета вещей Azure для FreeRTOS для подключения к Azure IoT Kit ESPRESSIF ESP32-Azure IoT Kit (начиная с этого момента— ESP32 DevKit) с Azure IoT.

Выполните следующие задачи.

  • Установка набора встроенных средств разработки для программирования devKit ESP32
  • Создание образа и его вспышка на ESP32 DevKit
  • Создание Центра Интернета вещей Azure и управление ими с помощью Azure CLI, к которому подключается DEVKit ESP32
  • Использование Azure IoT Explorer для регистрации устройства в вашем Центре Интернета вещей Azure, просмотра свойств устройства, просмотра телеметрии устройства и вызова прямых команд на устройстве

Необходимые компоненты

  • ПК под управлением Windows 10 или Windows 11.
  • Git для клонирования репозитория.
  • Оборудования
    • ESPRESSIF ESP32-Azure IoT Kit
    • Кабель с разъемами USB 2.0 A и Micro-USB.
    • Устройство Wi-Fi с частотой 2,4 ГГц.
  • Активная подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Подготовка среды разработки

Установка средств

Чтобы настроить среду разработки, сначала установите среду сборки ESPRESSIF ESP-IDF. Установщик включает все средства, необходимые для клонирования, сборки, флэш-памяти и мониторинга устройства.

Чтобы установить средства ESP-IDF, выполните следующие действия.

  1. Скачайте и запустите автономный установщик ESP-IDF версии 5.0.
  2. Когда установщик выводит список компонентов для установки, выберите все компоненты и завершите установку.

Клонирование репозитория

Клонируйте следующий репозиторий, чтобы скачать весь пример кода устройства, скрипты установки и документацию по пакету SDK. Если вы ранее клонировали этот репозиторий, это не нужно делать снова.

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

git clone --recursive  https://github.com/Azure-Samples/iot-middleware-freertos-samples.git

Для Windows 10 и 11 убедитесь, что длинные пути включены.

  1. Чтобы включить длинные пути, см. раздел "Включить длинные пути" в Windows 10.

  2. В Git выполните следующую команду в терминале с разрешениями администратора:

    git config --system core.longpaths true
    

Создание облачных компонентов

Создание Центра Интернета вещей

Вы можете использовать Azure CLI для создания Центра Интернета вещей Azure, который обрабатывает события и обмен сообщениями для вашего устройства.

Чтобы создать Центр Интернета вещей, выполните:

  1. Запустите приложение CLI. Чтобы выполнить команды интерфейса командной строки, указанные в оставшейся части этого краткого руководства, скопируйте синтаксис команды, вставьте его в приложение CLI, измените значения переменных и нажмите клавишу ВВОД.

    • Если вы используете Cloud Shell, щелкните правой кнопкой мыши ссылку для Cloud Shell и выберите параметр, чтобы открыть ее на новой вкладке.
    • Если вы используете Azure CLI локально, запустите консольное приложение CLI и войдите в Azure CLI.
  2. Запустите az extension add, чтобы установить или обновить расширение azure-iot до текущей версии.

    az extension add --upgrade --name azure-iot
    
  3. Выполните команду az group create, чтобы создать группу ресурсов. Следующая команда создает группу ресурсов с именем MyResourceGroup в регионе centralus.

    Примечание.

    При желании вы можете установить альтернативный location. Чтобы увидеть доступные местоположения, запустите az account list-locations.

    az group create --name MyResourceGroup --location centralus
    
  4. Создайте Центр Интернета вещей с помощью команды az iot hub create. Создание Центра Интернета вещей может занять несколько минут.

    YourIotHubName Замените этот заполнитель в коде именем, выбранным для центра Интернета вещей. Имя центра Интернета вещей должно быть уникальным по всему Azure. Этот заполнитель используется в оставшейся части этого краткого руководства для представления вашего уникального имени центра Интернета вещей.

    Параметр --sku F1 создает Центр Интернета вещей на уровне бесплатного пользования. Концентраторы бесплатного уровня имеют ограниченный набор функций и используются для подтверждения концепции приложений. Дополнительные сведения об уровнях, функциях и ценах Центра Интернета вещей см. в разделе Цены на Центр Интернета вещей Azure.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. После создания Центра Интернета вещей просмотрите выходные данные JSON в консоли и скопируйте значение hostName для использования на более позднем этапе. Значение hostName выглядит как в нижеприведенном примере:

    {Your IoT hub name}.azure-devices.net

Настройка IoT Explorer

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

Для добавления подключения к Центру Интернета вещей:

  1. Установите Обозреватель Azure IoT. Это кроссплатформенная программа для мониторинга ресурсов Интернета вещей Azure и управления ими.

  2. В приложении с интерфейсом командной строки выполните команду az iot hub connection-string show, чтобы получить строку подключения для вашего центра Интернета вещей.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. Скопируйте строку подключения без окружающих кавычек.

  4. В Обозреватель Azure IoT выберите центры Интернета вещей в меню слева.

  5. Выберите + Add connection (+ Добавить подключение).

  6. Вставьте строку подключения в поле Строка подключения.

  7. Выберите Сохранить.

    Снимок экрана: добавление подключения в Обозреватель Интернета вещей.

Если соединение установлено, IoT Explorer переключается на представление Устройства.

Чтобы добавить публичный репозиторий моделей:

  1. В IoT Explorer выберите Дом, чтобы вернуться в главный экран.

  2. В меню слева выберите Настройки IoT Plug and Play, после чего выберите + Добавить и в раскрывающемся меню выберите Публичный репозиторий.

  3. Запись для общедоступного репозитория моделей отображается по адресу https://devicemodels.azure.com.

    Снимок экрана: добавление общедоступного репозитория моделей в Обозреватель Интернета вещей.

  4. Выберите Сохранить.

Регистрация устройства

В этом разделе вы создаете новый экземпляр устройства и регистрируете его в созданном вами Центре Интернета вещей. Сведения о подключении нового зарегистрированного устройства используются для безопасного подключения физического устройства в следующем разделе.

Для регистрации устройства:

  1. На главном экране в IoT Explorer выберите Центры Интернета вещей.

  2. Должно отобразиться ранее добавленное подключение. Выберите Просмотреть устройства в этом концентраторе под свойствами подключения.

  3. Выберите +Создать и введите идентификатор устройства для устройства, например mydevice. Остальные свойства оставьте без изменений.

  4. Нажмите кнопку создания.

    Снимок экрана: удостоверение устройства Обозреватель Azure IoT.

  5. Используйте кнопки копирования для копирования полей идентификатора устройства и первичного ключа.

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

  • hostName
  • deviceId
  • primaryKey

Подготовка устройства

Чтобы подключить ESP32 DevKit к Azure, измените параметры конфигурации, создадите образ и запустите образ на устройство.

Настройка среды

Чтобы запустить среду ESP-IDF, выполните следующие действия.

  1. Выберите "Пуск Windows", найдите CMD ESP-IDF 5.0 и запустите его.

  2. В CMD ESP-IDF 5.0 перейдите к каталогу iot-middleware-freertos-samples , клонированному ранее.

  3. Перейдите к каталогу проекта IoT Kit ESP32-Azure IoT Kit demos\projects\ESPRESSIF\aziotkit.

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

    idf.py menuconfig
    

Добавление конфигурации

Чтобы добавить конфигурацию беспроводной сети, выполните приведенные действия.

  1. В CMD ESP-IDF 5.0 выберите ПО промежуточного слоя Azure IoT для примера конфигурации FreeRTOS ---> и нажмите клавишу ВВОД.

  2. Задайте следующие параметры конфигурации с помощью учетных данных локальной беспроводной сети.

    Параметр Значение
    WiFi SSID {Идентификатор SSID для Wi-Fi}
    Пароль WiFi {Пароль для Wi-Fi}
  3. Выберите Esc , чтобы вернуться в предыдущее меню.

Чтобы добавить конфигурацию для подключения к Центр Интернета вещей Azure:

  1. Выберите ПО промежуточного слоя Azure IoT для настройки основной задачи FreeRTOS ---> и нажмите клавишу ВВОД.

  2. Задайте для следующих параметров конфигурации Интернета вещей Azure значения, сохраненные после создания ресурсов Azure.

    Параметр Значение
    полное доменное имя Центр Интернета вещей Azure {Имя узла}
    Идентификатор устройства Интернета вещей Azure {Идентификатор устройства}
    Симметричный ключ устройства Интернета вещей Azure {Ваш первичный ключ}

    Примечание.

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

  3. Выберите Esc , чтобы вернуться в предыдущее меню.

Чтобы сохранить конфигурацию, выполните следующие действия.

  1. Выберите SHIFT+S , чтобы открыть параметры сохранения. Это меню позволяет сохранить конфигурацию в файл с именем skconfig в текущем каталоге .\aziotkit .
  2. Нажмите клавишу ВВОД , чтобы сохранить конфигурацию.
  3. Нажмите клавишу ВВОД , чтобы закрыть сообщение подтверждения.
  4. Выберите Q , чтобы выйти из меню конфигурации.

Сборка и вспышка образа

В этом разделе описано, как использовать средства ESP-IDF для сборки, флэш-памяти и мониторинга ESP32 DevKit при подключении к Azure IoT.

Примечание.

В следующих командах в этом разделе используйте короткий путь вывода сборки возле корневого каталога. Укажите путь сборки после параметра в каждой команде -B , требующей ее. Короткий путь помогает избежать текущей проблемы в средствах ESPRESSIF ESP-IDF, которые могут вызвать ошибки с длинными именами путей сборки. В следующих командах используется локальный путь C:\espbuild в качестве примера.

Чтобы создать образ, выполните следующие действия.

  1. В CMD ESP-IDF 5.0 из каталога iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit выполните следующую команду, чтобы создать образ.

    idf.py --no-ccache -B "C:\espbuild" build 
    
  2. После завершения сборки убедитесь, что файл двоичного образа был создан в пути сборки, указанном ранее.

    C:\espbuild\azure_iot_freertos_esp32.bin

Чтобы промелькнуть изображение, выполните следующие действия:

  1. На устройстве ESP32 DevKit найдите usb-порт Micro, выделенный на следующем изображении:

    Фотография доски ESP32-Azure IoT Kit.

  2. Подключение usb-кабель Micro в порт Micro USB на ESP32 DevKit, а затем подключите его к компьютеру.

  3. Откройте Windows диспетчер устройств и просмотрите порты, чтобы узнать, к каким портам ПОДКЛЮЧЕН ПОРТ ESP32 DevKit.

    Снимок экрана: Windows диспетчер устройств отображение COM-порта для подключенного устройства.

  4. В CMD ESP-IDF 5.0 выполните следующую команду, заменив< заполнитель порта COM и квадратные скобки правильным COM-портом> из предыдущего шага. Например, замените заполнитель COM3на .

    idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
    
  5. Убедитесь, что выходные данные завершены следующим текстом для успешной вспышки:

    Hash of data verified
    
    Leaving...
    Hard resetting via RTS pin...
    Done
    

Чтобы убедиться, что устройство подключается к Azure IoT Central:

  1. В CMD ESP-IDF 5.0 выполните следующую команду, чтобы запустить средство мониторинга. Как и в предыдущей команде, замените <заполнитель порта> COM и квадратные скобки com-портом, к которому подключено устройство.

    idf.py -B "C:\espbuild" -p <Your-COM-port> monitor
    
  2. Проверьте повторяющиеся блоки выходных данных, аналогичные следующему примеру. В этом выходных данных подтверждается, что устройство подключается к Azure IoT и отправляет данные телеметрии.

    I (50807) AZ IOT: Successfully sent telemetry message
    I (50807) AZ IOT: Attempt to receive publish message from IoT Hub.
    
    I (51057) MQTT: Packet received. ReceivedBytes=2.
    I (51057) MQTT: Ack packet deserialized with result: MQTTSuccess.
    I (51057) MQTT: State record updated. New state=MQTTPublishDone.
    I (51067) AZ IOT: Puback received for packet id: 0x00000008
    I (53067) AZ IOT: Keeping Connection Idle...
    

Просмотр свойств устройства

Вы можете воспользоваться службой Explorer Интернета вещей Azure для просмотра свойств ваших устройств и управления ими. В следующих разделах вы используете возможности самонастраивающийся, которые отображаются в IoT Обозреватель для управления и взаимодействия с DEVKit ESP32. Эти возможности зависят от модели устройства, опубликованной для ESP32 DevKit в общедоступном репозитории моделей. Вы настроили Обозреватель Интернета вещей для поиска в этом репозитории моделей устройств ранее в этом руководстве. Во многих случаях можно выполнить одно и то же действие без использования подключаемого модуля и воспроизведения, выбрав пункты меню Обозреватель Интернета вещей. Однако использование подключаемых модулей и воспроизведения часто обеспечивает расширенный интерфейс. IoT Обозреватель может считывать модель устройства, указанную устройством подключаемого модуля и воспроизведения, и представлять сведения, относящиеся к устройству.

Для получения доступа к компонентам IoT Plug and Play для устройства в IoT Explorer:

  1. На главном экране в IoT Explorer выберите Центры Интернета вещей, после чего выберите Просмотреть устройства в этом концентраторе.

  2. Выберите устройство.

  3. Выберите Компоненты IoT Plug and Play.

  4. Выберите Компонент по умолчанию. IoT Explorer отображает компоненты IoT Plug and Play, реализованные на вашем устройстве.

    Снимок экрана: компонент устройства по умолчанию в Обозреватель Интернета вещей.

  5. На вкладке Интерфейс просмотрите содержимое JSON в модели устройства Описание. JSON содержит сведения о конфигурации для каждого из компонентов IoT Plug and Play в модели устройства.

    Каждая вкладка в IoT Explorer соответствует одному из компонентов IoT Plug and Play в модели устройства.

    Вкладка Тип Полное имя Описание
    Интерфейс Интерфейс Espressif ESP32 Azure IoT Kit Пример модели устройства для ESP32 DevKit
    Свойства (с возможностью записи) Свойство telemetryFrequencySecs Интервал, в который устройство отправляет данные телеметрии
    Команды Команда ToggleLed1 Включение или выключение светодиода
    Команды Команда ToggleLed2 Включение или выключение светодиода
    Команды Команда DisplayText Отображает отправленный текст на экране устройства

Чтобы просмотреть и изменить свойства устройства с помощью Azure IoT Обозреватель:

  1. Выберите вкладку Свойства (с возможностью записи). Он отображает интервал отправки телеметрии.

  2. Измените telemetryFrequencySecs значение на 5, а затем выберите "Обновить требуемое значение". Теперь ваше устройство будет использовать этот интервал для отправки телеметрии.

    Снимок экрана: настройка интервала телеметрии на устройстве в Обозреватель Интернета вещей.

  3. IoT Explorer отвечает уведомлением.

Чтобы использовать Azure CLI для просмотра свойств устройства:

  1. В консоли CLI выполните команду az iot hub device-twin show .

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Проверьте свойства вашего устройства в выводе консоли.

Совет

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

Просмотр телеметрии

С помощью службы Explorer Интернета вещей Azure вы можете просматривать поток телеметрии с вашего устройства в облако. При необходимости можно выполнить ту же задачу с помощью Azure CLI.

Чтобы просмотреть телеметрию в службе Explorer Интернета вещей Azure:

  1. На панели компонентов IoT Plug and Play (компонент по умолчанию) вашего устройства в IoT Explorer выберите вкладку Телеметрия. Убедитесь, что для параметра Использовать встроенный концентратор событий задано значение Да.

  2. Выберите Пуск.

  3. Просматривайте телеметрию, когда устройство отправляет сообщения в облако.

    Снимок экрана: телеметрия устройства в Обозреватель Интернета вещей.

  4. Установите флажок Отобразить смоделированные события, чтобы просматривать события в формате данных, заданном моделью устройства.

    Снимок экрана: смоделированные события телеметрии в Обозреватель Интернета вещей.

  5. Выберите Стоп, чтобы прекратить прием событий.

Чтобы использовать Azure CLI для просмотра телеметрии устройства:

  1. Запустите команду az iot hub monitor-events. Используйте имена, которые вы создали ранее в Интернете вещей Azure для своего устройства и Центра Интернета вещей Azure.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Просмотрите вывод JSON в консоли.

    {
        "event": {
            "origin": "mydevice",
            "module": "",
            "interface": "dtmi:azureiot:devkit:freertos:Esp32AzureIotKit;1",
            "component": "",
            "payload": "{\"temperature\":28.6,\"humidity\":25.1,\"light\":116.66,\"pressure\":-33.69,\"altitude\":8764.9,\"magnetometerX\":1627,\"magnetometerY\":28373,\"magnetometerZ\":4232,\"pitch\":6,\"roll\":0,\"accelerometerX\":-1,\"accelerometerY\":0,\"accelerometerZ\":9}"
        }
    }
    
  3. Выберите CTRL+C, чтобы завершить мониторинг.

Вызов прямого метода на устройстве

Вы также можете использовать службу Explorer Интернета вещей Azure для вызова прямого метода, реализованного на вашем устройстве. У прямых методов есть имя и может быть полезная нагрузка в формате JSON, настраиваемое подключение и время ожидания метода. В этом разделе вы вызываете метод, который включает или выключает светодиод. При необходимости можно выполнить ту же задачу с помощью Azure CLI.

Чтобы вызвать метод в службе Explorer Интернета вещей Azure:

  1. На панели компонентов IoT Plug and Play (компонент по умолчанию) вашего устройства в IoT Explorer выберите вкладку Команды.

  2. Для команды ToggleLed1 выберите команду Send. Светодиодный индикатор на ESP32 DevKit переключается или отключается. Вы также увидите уведомление в Обозреватель Интернета вещей.

    Снимок экрана: вызов метода в Обозреватель Интернета вещей.

  3. Для команды DisplayText введите текст в поле содержимого.

  4. Выберите Отправить команду. Текст отображается на экране ESP32 DevKit.

Чтобы использовать Azure CLI для вызова метода:

  1. Запустите команду az iot hub invoke-device-method и укажите имя метода и полезную нагрузку. Для этого метода значение method-payload параметра означает, что true светодиодный индикатор переключается на противоположность текущему состоянию.

    az iot hub invoke-device-method --device-id mydevice --method-name ToggleLed2 --method-payload true --hub-name {YourIoTHubName}
    

    Консоль CLI отображает состояние вызова вашего метода на устройстве, где 200 указывает на успешное выполнение.

    {
      "payload": {},
      "status": 200
    } 
    
  2. Проверьте свое устройство, чтобы проверить состояние светодиода.

Устранение неполадок и отладка

Если возникают проблемы с созданием кода устройства, установкой образа устройства или подключением, см. раздел Устранение неполадок.

Сведения об отладке приложения см. в статье Отладка с помощью Visual Studio Code.

Очистка ресурсов

Если вам больше не нужны ресурсы Azure, созданные в этом кратком руководстве, вы можете использовать Azure CLI для удаления группы ресурсов и всех ее ресурсов.

Внимание

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы.

Удаление группы ресурсов по имени:

  1. Выполните команду az group delete. При этом будут удалены созданные группа ресурсов, центр Интернета вещей и регистрация устройства.

    az group delete --name MyResourceGroup
    
  2. Выполните команду az group list, чтобы подтвердить удаление группы ресурсов.

    az group list
    

Следующие шаги

В этом руководстве вы создали пользовательский образ, содержащий ПО промежуточного слоя Интернета вещей Azure для FreeRTOS, а затем вы вспыхнули изображение на устройстве ESP32 DevKit. Вы подключили ESP32 DevKit к Центр Интернета вещей Azure и выполнили такие задачи, как просмотр телеметрии и вызов методов на устройстве.

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