Учебник. Подключение примера приложения устройства IoT Plug and Play в Linux или Windows к Центру Интернета вещей

В этом руководстве показано, как создать пример приложения для устройств IoT самонастраивающийся, подключить его к центру Интернета вещей и использовать средство обозревателя Интернета вещей Azure для просмотра данных телеметрии. Пример приложения написан на языке C и включен в пакет SDK для устройств Azure IoT для C. Разработчик решения может использовать обозреватель Интернета вещей Azure, чтобы ознакомиться с возможностями устройства IoT Plug and Play, не просматривая код устройства.

Просмотреть код

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

Прежде чем продолжить, убедитесь, что вы настроили среду, в том числе центр Интернета вещей.

Операции, описанные в этом учебнике, можно выполнить в Linux или Windows. Команды оболочки в этом учебнике соответствуют требованиям соглашения Linux для разделителей пути "/". Если вы используете Windows, не забудьте изменить эти разделители на "\".

Необходимые условия зависят от операционной системы:

Linux

В этом учебнике предполагается, что вы используете Ubuntu Linux. Действия, описанные в этом руководстве, были протестированы в Ubuntu 18.04.

Для выполнения инструкций, указанных в этом учебнике, в ОС Linux необходимо установить указанное ниже программное обеспечение в локальной среде.

Установите GCC, Git, cmake и все необходимые зависимости с помощью команды apt-get:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

Убедитесь, что версия cmake выше 2.8.12, а версия GCC выше 4.4.7.

cmake --version
gcc --version

Windows

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

Загрузка кода

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

Откройте командную строку в выбранном каталоге. Выполните следующую команду для клонирования репозитория GitHub пакетов SDK и библиотек Интернета вещей Azure для С в это расположение:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

Выполнение этой операции может занять несколько минут.

Сборка кода

Вы можете создать и запустить код с помощью Visual Studio или cmake в командной строке.

Использование Visual Studio

  1. Откройте корневую папку клонированного репозитория. Через пару секунд поддержка CMake в Visual Studio создаст все, что необходимо для выполнения и отладки проекта.

  2. Когда Visual Studio будет готов, в Обозреватель решений перейдите к примеру iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Щелкните правой кнопкой мыши файл pnp_simple_thermostat.c и выберите команду Добавить конфигурацию отладки. Выберите По умолчанию.

  4. Visual Studio откроет файл launch.vs.json. Измените этот файл, как показано в следующем фрагменте кода, чтобы задать необходимые переменные среды. Во время работы со статьей Настройка среды для кратких руководств и учебников IoT Plug and Play вы записали идентификатор области и первичный ключ регистрации:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. Щелкните правой кнопкой мыши файл pnp_simple_thermostat.c и выберите "Задать в качестве элемента запуска".

  6. Чтобы отслеживать выполнение кода в Visual Studio, добавьте точку main останова в функцию в файле pnp_simple_thermostat.c .

  7. Теперь можно запустить и отладить пример в меню Отладка.

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

Создание кода с помощью cmake

Для создания кода используется служебная программа командной строки cmake:

  1. Создайте подкаталог cmake в корневой папке пакета SDK для устройства и перейдите к этой папке:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Выполните следующие команды, чтобы создать пакет SDK и примеры:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

Запуск примера устройства

Во время работы со статьей Настройка среды для кратких руководств и учебников IoT Plug and Play вы создали пять переменных среды, чтобы настроить пример для подключения к центру Интернета вещей с помощью Подготовки устройств к добавлению в Центр Интернета вещей (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE со значением DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE с областью идентификатора DPS;
  • IOTHUB_DEVICE_DPS_DEVICE_ID со значением my-pnp-device;
  • IOTHUB_DEVICE_DPS_DEVICE_KEY с первичным ключом регистрации;
  • IOTHUB_DEVICE_DPS_ENDPOINT со значением global.azure-devices-provisioning.net.

Дополнительные сведения о примере конфигурации см. в образце файла сведений.

Запустите пример приложения в пакете SDK для имитации устройства IoT Plug and Play, отправляющего данные телеметрии в ваш центр Интернета вещей, выполнив указанные ниже действия.

Из папки cmake перейдите к папке, содержащей исполняемый файл, и запустите его:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

Совет

Для трассировки выполнения кода в Visual Studio в Windows добавьте точку останова в функцию main в файле pnp_simple_thermostat.c.

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

Проверка кода с помощью обозревателя Интернета вещей Azure

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

  1. Откройте обозреватель Azure IoT.

  2. Если вы еще не установили подключение к центру Интернета вещей, на странице Центров Интернета вещей выберите + Add connection (+ Добавить подключение). Введите строку подключения для центра Интернета вещей, созданного ранее, и нажмите кнопку Save (Сохранить).

  3. На странице самонастраивающийся Параметры Интернета вещей выберите +Добавить > локальную папку и выберите папку локальных моделей, в которой сохранены файлы модели.

  4. На странице Центров Интернета вещей щелкните имя центра, с которым вы хотите работать. Откроется список устройств, зарегистрированных в Центре Интернета вещей

  5. Щелкните идентификатор ранее созданного устройства.

  6. В меню слева отображаются различные типы сведений, доступных для устройства.

  7. Выберите IoT Plug and Play components (Компоненты Plug and Play IoT), чтобы просмотреть сведения о модели для устройства.

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

  9. Выберите страницу Telemetry (Телеметрия) и щелкните Start (Запустить), чтобы просмотреть данные телеметрии, которые отправляет устройство для компонента.

  10. Выберите страницу Properties (read-only) (Свойства (только для чтения)), чтобы просмотреть свойства только для чтения, сообщаемые для этого компонента.

  11. Выберите страницу Properties(writable) (Свойства (доступные для записи)), чтобы просмотреть доступные для записи свойства, которые можно обновить для этого компонента.

  12. Выберите свойство по имени, введите новое значение и щелкните Update desired value (Обновить нужное значение).

  13. Чтобы увидеть новое значение, нажмите кнопку Refresh (Обновить).

  14. Выберите страницу команд, чтобы просмотреть все команды для этого компонента.

  15. Выберите команду, которую нужно проверить, и при необходимости задайте параметр. Выберите Send command (Отправить команду), чтобы вызвать команду на устройстве. Ответ устройства на команду можно увидеть в окне командной строки, где выполняется пример кода.

Просмотр кода

В этом примере используется простой терморегулятор IoT Plug and Play. Модель термостата не использует компоненты Интернета вещей самонастраивающийся. Файл модели DTDL для терморегулятора определяет данные телеметрии, свойства и команды, выполняемые устройством.

Код устройства использует стандартную функцию для подключения к центру Интернета вещей:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

Устройство отправляет идентификатор модели DTDL, которую он реализует в запросе на подключение. Устройство, отправляющее идентификатор модели, — это устройство IoT Plug and Play:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

Код, который обновляет свойства, обрабатывает команды и отправляет данные телеметрии, идентичен коду устройства, которое не использует соглашения IoT Plug and Play.

Код использует библиотеку Parson для анализа объектов JSON в полезных данных, отправленных из центра Интернета вещей:

// JSON parser
#include "parson.h"

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

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

В этом руководстве показано, как создать пример приложения для устройств IoT самонастраивающийся, подключить его к центру Интернета вещей и использовать средство обозревателя Интернета вещей Azure для просмотра данных телеметрии. Пример приложения написан на C# и включен в пакет SDK Интернета вещей Azure для C#. Разработчик решения может использовать обозреватель Интернета вещей Azure, чтобы ознакомиться с возможностями устройства IoT Plug and Play, не просматривая код устройства.

Просмотреть код

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

Прежде чем продолжить, убедитесь, что вы настроили среду, в том числе центр Интернета вещей.

Операции, описанные в этом учебнике, можно выполнить в Linux или Windows. Команды оболочки в этом учебнике соответствуют требованиям соглашения Linux для разделителей пути "/". Если вы используете Windows, не забудьте изменить эти разделители на "\".

  • Последний пакет SDK для .NET для вашей платформы.
  • Git.

Загрузка кода

В этом руководстве описана подготовка среды разработки, с помощью которой можно клонировать и создать пакет SDK Для Интернета вещей Azure для репозитория C#.

Откройте командную строку в выбранной папке. Выполните следующую команду, чтобы клонировать репозиторий GitHub microsoft Azure IoT SDK для C# (.NET) в это расположение:

git clone  https://github.com/Azure/azure-iot-sdk-csharp

Сборка кода

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

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Запуск примера устройства

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

dotnet run

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

Проверка кода с помощью обозревателя Интернета вещей Azure

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

  1. Откройте обозреватель Azure IoT.

  2. Если вы еще не установили подключение к центру Интернета вещей, на странице Центров Интернета вещей выберите + Add connection (+ Добавить подключение). Введите строку подключения для центра Интернета вещей, созданного ранее, и нажмите кнопку Save (Сохранить).

  3. На странице самонастраивающийся Параметры Интернета вещей выберите +Добавить > локальную папку и выберите папку локальных моделей, в которой сохранены файлы модели.

  4. На странице Центров Интернета вещей щелкните имя центра, с которым вы хотите работать. Откроется список устройств, зарегистрированных в Центре Интернета вещей

  5. Щелкните идентификатор ранее созданного устройства.

  6. В меню слева отображаются различные типы сведений, доступных для устройства.

  7. Выберите IoT Plug and Play components (Компоненты Plug and Play IoT), чтобы просмотреть сведения о модели для устройства.

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

  9. Выберите страницу Telemetry (Телеметрия) и щелкните Start (Запустить), чтобы просмотреть данные телеметрии, которые отправляет устройство для компонента.

  10. Выберите страницу Properties (read-only) (Свойства (только для чтения)), чтобы просмотреть свойства только для чтения, сообщаемые для этого компонента.

  11. Выберите страницу Properties(writable) (Свойства (доступные для записи)), чтобы просмотреть доступные для записи свойства, которые можно обновить для этого компонента.

  12. Выберите свойство по имени, введите новое значение и щелкните Update desired value (Обновить нужное значение).

  13. Чтобы увидеть новое значение, нажмите кнопку Refresh (Обновить).

  14. Выберите страницу команд, чтобы просмотреть все команды для этого компонента.

  15. Выберите команду, которую нужно проверить, и при необходимости задайте параметр. Выберите Send command (Отправить команду), чтобы вызвать команду на устройстве. Ответ устройства на команду можно увидеть в окне командной строки, где выполняется пример кода.

Просмотр кода

В этом примере используется простой терморегулятор IoT Plug and Play. Модель, которую реализует этот пример, не использует компоненты IoT Plug and Play. Файл модели языка определения Digital Twins (DTDL) для терморегулятора определяет телеметрию, свойства и команды, реализуемые устройством.

Код устройства подключается к центру Интернета вещей с помощью стандартного метода CreateFromConnectionString. Устройство отправляет идентификатор модели DTDL, которую он реализует в запросе на подключение. Устройство, отправляющее идентификатор модели, — это устройство IoT Plug and Play:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

Идентификатор модели хранится в коде, как показано в следующем фрагменте кода:

private const string ModelId = "dtmi:com:example:Thermostat;1";

Код, который обновляет свойства, обрабатывает команды и отправляет данные телеметрии, идентичен коду устройства, которое не использует соглашения IoT Plug and Play.

В примере используется библиотека JSON для анализа объектов JSON в полезных данных, отправленных из центра Интернета вещей:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

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

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

В этом руководстве показано, как создать пример приложения для устройств IoT самонастраивающийся, подключить его к центру Интернета вещей и использовать средство обозревателя Интернета вещей Azure для просмотра данных телеметрии. Пример приложения написан на языке Java и включен в пакет SDK для устройств центра Интернета вещей Azure для Java. Разработчик решения может использовать обозреватель Интернета вещей Azure, чтобы ознакомиться с возможностями устройства IoT Plug and Play, не просматривая код устройства.

Просмотреть код

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

Прежде чем продолжить, убедитесь, что вы настроили среду, в том числе центр Интернета вещей.

Операции, описанные в этом учебнике, можно выполнить в Linux или Windows. Команды оболочки в этом учебнике соответствуют требованиям соглашения Linux для разделителей пути "/". Если вы используете Windows, не забудьте изменить эти разделители на "\".

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

Загрузка кода

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

Откройте командную строку в выбранном каталоге. Выполните следующую команду для клонирования репозитория GitHub пакетов SDK и библиотек Интернета вещей Azure для Java в это расположение:

git clone https://github.com/Azure/azure-iot-sdk-java.git

Сборка кода

Перейдите в корневую папку примера термостата в клонированного репозитория пакета SDK Java и создайте его:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

Запуск примера устройства

Во время работы со статьей Настройка среды для кратких руководств и учебников IoT Plug and Play вы создали пять переменных среды, чтобы настроить пример для подключения к центру Интернета вещей с помощью Подготовки устройств к добавлению в Центр Интернета вещей (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE со значением DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE с областью идентификатора DPS;
  • IOTHUB_DEVICE_DPS_DEVICE_ID со значением my-pnp-device;
  • IOTHUB_DEVICE_DPS_DEVICE_KEY с первичным ключом регистрации;
  • IOTHUB_DEVICE_DPS_ENDPOINT со значением global.azure-devices-provisioning.net.

Дополнительные сведения о примере конфигурации см. в образце файла сведений.

В папке /device/iot-device-samples/pnp-device-sample/thermostat-device-sample запустите приложение:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

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

Проверка кода с помощью обозревателя Интернета вещей Azure

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

  1. Откройте обозреватель Azure IoT.

  2. Если вы еще не установили подключение к центру Интернета вещей, на странице Центров Интернета вещей выберите + Add connection (+ Добавить подключение). Введите строку подключения для центра Интернета вещей, созданного ранее, и нажмите кнопку Save (Сохранить).

  3. На странице самонастраивающийся Параметры Интернета вещей выберите +Добавить > локальную папку и выберите папку локальных моделей, в которой сохранены файлы модели.

  4. На странице Центров Интернета вещей щелкните имя центра, с которым вы хотите работать. Откроется список устройств, зарегистрированных в Центре Интернета вещей

  5. Щелкните идентификатор ранее созданного устройства.

  6. В меню слева отображаются различные типы сведений, доступных для устройства.

  7. Выберите IoT Plug and Play components (Компоненты Plug and Play IoT), чтобы просмотреть сведения о модели для устройства.

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

  9. Выберите страницу Telemetry (Телеметрия) и щелкните Start (Запустить), чтобы просмотреть данные телеметрии, которые отправляет устройство для компонента.

  10. Выберите страницу Properties (read-only) (Свойства (только для чтения)), чтобы просмотреть свойства только для чтения, сообщаемые для этого компонента.

  11. Выберите страницу Properties(writable) (Свойства (доступные для записи)), чтобы просмотреть доступные для записи свойства, которые можно обновить для этого компонента.

  12. Выберите свойство по имени, введите новое значение и щелкните Update desired value (Обновить нужное значение).

  13. Чтобы увидеть новое значение, нажмите кнопку Refresh (Обновить).

  14. Выберите страницу команд, чтобы просмотреть все команды для этого компонента.

  15. Выберите команду, которую нужно проверить, и при необходимости задайте параметр. Выберите Send command (Отправить команду), чтобы вызвать команду на устройстве. Ответ устройства на команду можно увидеть в окне командной строки, где выполняется пример кода.

Просмотр кода

В этом примере используется простой терморегулятор IoT Plug and Play. Модель, которую реализует этот пример, не использует компоненты IoT Plug and Play. Файл модели DTDL для терморегулятора определяет данные телеметрии, свойства и команды, выполняемые устройством.

Код устройства использует стандартный класс DeviceClient для подключения к центру Интернета вещей. Устройство отправляет идентификатор модели DTDL, которую он реализует в запросе на подключение. Устройство, отправляющее идентификатор модели, — это устройство IoT Plug and Play:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

Идентификатор модели хранится в коде, как показано в следующем фрагменте кода:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

Код, который обновляет свойства, обрабатывает команды и отправляет данные телеметрии, идентичен коду устройства, которое не использует соглашения IoT Plug and Play.

В примере используется библиотека JSON для анализа объектов JSON в полезных данных, отправленных из центра Интернета вещей:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

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

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

В этом руководстве показано, как создать пример приложения для устройств IoT самонастраивающийся, подключить его к центру Интернета вещей и использовать средство обозревателя Интернета вещей Azure для просмотра данных телеметрии. Пример приложения написан на языке Node.js и включен в пакет SDK для устройств Azure IoT для Node.js. Разработчик решения может использовать обозреватель Интернета вещей Azure, чтобы ознакомиться с возможностями устройства IoT Plug and Play, не просматривая код устройства.

Просмотреть код

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

Прежде чем продолжить, убедитесь, что вы настроили среду, в том числе центр Интернета вещей.

Операции, описанные в этом учебнике, можно выполнить в Linux или Windows. Команды оболочки в этом учебнике соответствуют требованиям соглашения Linux для разделителей пути "/". Если вы используете Windows, не забудьте изменить эти разделители на "\".

Для выполнения инструкций, приведенных в этом учебнике, на компьютере для разработки необходимо установить платформу Node.js. Вы можете скачать последнюю рекомендуемую версию для нескольких платформ на сайте nodejs.org.

Текущую версию Node.js на компьютере, на котором ведется разработка, можно проверить, используя следующую команду:

node --version

Загрузка кода

С помощью этого учебника вы подготовите среду разработки, которую можно использовать для клонирования и сборки пакета SDK для устройств Центра Интернета вещей Azure для Node.js.

Откройте командную строку в выбранном каталоге. Выполните следующую команду для клонирования репозитория пакетов SDK для Интернета вещей Microsoft Azure для Node.js с GitHub в это расположение:

git clone https://github.com/Azure/azure-iot-sdk-node

Установка обязательных библиотек

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

  1. В окне локального терминала перейдите в папку клонированного репозитория, а затем в папку /azure-iot-sdk-node/device/samples/javascript. Затем выполните следующую команду, чтобы установить обязательные библиотеки:

    npm install
    

Запуск примера устройства

В этом примере используется простой терморегулятор IoT Plug and Play. Модель, которую реализует этот пример, не использует компоненты IoT Plug and Play. Файл модели DTDL для терморегулятора определяет данные телеметрии, свойства и команды, выполняемые устройством.

Откройте файл pnp_simple_thermostat.js. Из этого файла вы узнаете, как выполнять такие действия:

  1. импортирование необходимых интерфейсов;
  2. создание обработчика изменения свойства и команд;
  3. обработка необходимых исправлений свойства и отправка телеметрии;
  4. подготовка устройства с помощью Службы подготовки устройств Azure (DPS).

В основной функции вы можете увидеть, как все это происходит вместе:

  1. Создайте устройство из строки подключения или подготовьте его с помощью DPS.
  2. Используйте параметр modelID, чтобы указать модель устройства IoT Plug and Play.
  3. Включите обработчик команд.
  4. Отправьте телеметрию с устройства в свой концентратор.
  5. Получите двойников устройств и обновите сообщаемые свойства.
  6. Включите нужный обработчик обновления свойства.

Во время работы со статьей Настройка среды для кратких руководств и учебников IoT Plug and Play вы создали пять переменных среды, чтобы настроить пример для подключения к центру Интернета вещей с помощью Подготовки устройств к добавлению в Центр Интернета вещей (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE со значением DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE с областью идентификатора DPS;
  • IOTHUB_DEVICE_DPS_DEVICE_ID со значением my-pnp-device;
  • IOTHUB_DEVICE_DPS_DEVICE_KEY с первичным ключом регистрации;
  • IOTHUB_DEVICE_DPS_ENDPOINT со значением global.azure-devices-provisioning.net.

Дополнительные сведения о примере конфигурации см. в образце файла сведений.

Запустите пример приложения для имитации устройства IoT Plug and Play, отправляющего данные телеметрии в ваш центр Интернета вещей. Чтобы запустить пример приложения, используйте следующую команду:

node pnp_simple_thermostat.js

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

Сообщения о подтверждении устройства

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

Проверка кода с помощью обозревателя Интернета вещей Azure

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

  1. Откройте обозреватель Azure IoT.

  2. Если вы еще не установили подключение к центру Интернета вещей, на странице Центров Интернета вещей выберите + Add connection (+ Добавить подключение). Введите строку подключения для центра Интернета вещей, созданного ранее, и нажмите кнопку Save (Сохранить).

  3. На странице самонастраивающийся Параметры Интернета вещей выберите +Добавить > локальную папку и выберите папку локальных моделей, в которой сохранены файлы модели.

  4. На странице Центров Интернета вещей щелкните имя центра, с которым вы хотите работать. Откроется список устройств, зарегистрированных в Центре Интернета вещей

  5. Щелкните идентификатор ранее созданного устройства.

  6. В меню слева отображаются различные типы сведений, доступных для устройства.

  7. Выберите IoT Plug and Play components (Компоненты Plug and Play IoT), чтобы просмотреть сведения о модели для устройства.

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

  9. Выберите страницу Telemetry (Телеметрия) и щелкните Start (Запустить), чтобы просмотреть данные телеметрии, которые отправляет устройство для компонента.

  10. Выберите страницу Properties (read-only) (Свойства (только для чтения)), чтобы просмотреть свойства только для чтения, сообщаемые для этого компонента.

  11. Выберите страницу Properties(writable) (Свойства (доступные для записи)), чтобы просмотреть доступные для записи свойства, которые можно обновить для этого компонента.

  12. Выберите свойство по имени, введите новое значение и щелкните Update desired value (Обновить нужное значение).

  13. Чтобы увидеть новое значение, нажмите кнопку Refresh (Обновить).

  14. Выберите страницу команд, чтобы просмотреть все команды для этого компонента.

  15. Выберите команду, которую нужно проверить, и при необходимости задайте параметр. Выберите Send command (Отправить команду), чтобы вызвать команду на устройстве. Ответ устройства на команду можно увидеть в окне командной строки, где выполняется пример кода.

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

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

В этом руководстве показано, как создать пример приложения для устройств IoT самонастраивающийся, подключить его к центру Интернета вещей и использовать средство обозревателя Интернета вещей Azure для просмотра данных телеметрии. Пример приложения написан на языке Python и включен в пакет SDK для устройств Центра Интернета вещей Azure для Python. Разработчик решения может использовать обозреватель Интернета вещей Azure, чтобы ознакомиться с возможностями устройства IoT Plug and Play, не просматривая код устройства.

Просмотреть код

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

Прежде чем продолжить, убедитесь, что вы настроили среду, в том числе центр Интернета вещей.

Чтобы завершить работу с этим руководством, необходимо установить Python на компьютере разработки. Проверьте пакет SDK Для Python Для Интернета вещей Azure для текущих требований к версии Python. Проверить версию Python можно с помощью следующей команды:

python --version

Вы можете скачать последнюю рекомендуемую версию для нескольких платформ на сайте python.org.

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

pip install azure-iot-device

Клонируйте репозиторий пакета SDK Интернета вещей для Python:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

Запуск примера устройства

Папка azure-iot-sdk-python/samples/pnp содержит пример кода для устройства Интернета вещей самонастраивающийся. В этом руководстве используется файл simple_thermostat.py . Этот пример кода реализует устройство, совместимое с IoT Plug and Play, и использует клиентскую библиотеку устройства Python для Интернета вещей Azure.

Откройте файл simple_thermostat.py в текстовом редакторе. Обратите внимание на следующее:

  1. Определяет один идентификатор модели двойника устройства (DTMI), который является уникальным идентификатором термостата. DTMI должен быть известным пользователю и изменяться в зависимости от сценария реализации устройства. Для текущего примера модель представляет термостат с данными телеметрии, свойствами и командами, связанными с температурой мониторинга.

  2. Содержит функции для определения реализаций обработчика команд. Эти обработчики создаются, чтобы определить, как устройство отвечает на запросы команд.

  3. Содержит функцию для определения ответа команды. Функции ответа команды создаются для отправки ответа обратно в центр Интернета вещей.

  4. Определяет функцию прослушивателя клавиатуры ввода, которая позволяет выйти из приложения.

  5. Имеет функцию main. Функция main:

    1. Использует пакет SDK для устройств для создания клиента устройства и подключения к центру Интернета вещей.

    2. Обновляет свойства. Модель Термостата targetTemperature определяет и maxTempSinceLastReboot как два свойства термостата. Свойства обновляются с помощью метода patch_twin_reported_properties, определенного в device_client.

    3. Начинает прослушивание запросов команд с помощью функции execute_command_listener. Функция настраивает прослушиватель на ожидание передачи данных от команд службы. При настройке прослушивателя укажите method_nameи user_command_handlercreate_user_response_handler.

      • Функция user_command_handler определяет действия устройства при получении команды.
      • Функция create_user_response_handler создает ответ, который будет отправлен в центр Интернета вещей при успешном выполнении команды. Этот ответ можно просмотреть на портале.
    4. Начинает отправку телеметрии. Метод pnp_send_telemetry определен в файле pnp_methods.py. В примере кода используется цикл, который вызывает эту функцию каждые восемь секунд.

    5. Отключает все прослушиватели и задачи и выходит из цикла при нажатии кнопки Q или q.

Во время работы со статьей Настройка среды для кратких руководств и учебников IoT Plug and Play вы создали пять переменных среды, чтобы настроить пример для подключения к центру Интернета вещей с помощью Подготовки устройств к добавлению в Центр Интернета вещей (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE со значением DPS.
  • IOTHUB_DEVICE_DPS_ID_SCOPE с областью идентификатора DPS;
  • IOTHUB_DEVICE_DPS_DEVICE_ID со значением my-pnp-device;
  • IOTHUB_DEVICE_DPS_DEVICE_KEY с первичным ключом регистрации;
  • IOTHUB_DEVICE_DPS_ENDPOINT со значением global.azure-devices-provisioning.net.

Дополнительные сведения о примере конфигурации см. в образце файла сведений.

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

python simple_thermostat.py

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

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

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

Проверка кода с помощью обозревателя Интернета вещей Azure

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

  1. Откройте обозреватель Azure IoT.

  2. Если вы еще не установили подключение к центру Интернета вещей, на странице Центров Интернета вещей выберите + Add connection (+ Добавить подключение). Введите строку подключения для центра Интернета вещей, созданного ранее, и нажмите кнопку Save (Сохранить).

  3. На странице самонастраивающийся Параметры Интернета вещей выберите +Добавить > локальную папку и выберите папку локальных моделей, в которой сохранены файлы модели.

  4. На странице Центров Интернета вещей щелкните имя центра, с которым вы хотите работать. Откроется список устройств, зарегистрированных в Центре Интернета вещей

  5. Щелкните идентификатор ранее созданного устройства.

  6. В меню слева отображаются различные типы сведений, доступных для устройства.

  7. Выберите IoT Plug and Play components (Компоненты Plug and Play IoT), чтобы просмотреть сведения о модели для устройства.

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

  9. Выберите страницу Telemetry (Телеметрия) и щелкните Start (Запустить), чтобы просмотреть данные телеметрии, которые отправляет устройство для компонента.

  10. Выберите страницу Properties (read-only) (Свойства (только для чтения)), чтобы просмотреть свойства только для чтения, сообщаемые для этого компонента.

  11. Выберите страницу Properties(writable) (Свойства (доступные для записи)), чтобы просмотреть доступные для записи свойства, которые можно обновить для этого компонента.

  12. Выберите свойство по имени, введите новое значение и щелкните Update desired value (Обновить нужное значение).

  13. Чтобы увидеть новое значение, нажмите кнопку Refresh (Обновить).

  14. Выберите страницу команд, чтобы просмотреть все команды для этого компонента.

  15. Выберите команду, которую нужно проверить, и при необходимости задайте параметр. Выберите Send command (Отправить команду), чтобы вызвать команду на устройстве. Ответ устройства на команду можно увидеть в окне командной строки, где выполняется пример кода.

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

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

Если вы выполняете разработку для устройств с ограниченными ресурсами, вы можете использовать IoT Plug and Play с:

Эта статья содержит ссылки и ресурсы для этих сценариев.

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

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

Использование пакета SDK для Embedded C

Пакет SDK для Embedded C предлагает упрощенное решение для подключения устройств с ограниченными ресурсами к службам Интернета вещей Azure с возможностью использования соглашений IoT Plug and Play. Следующие ссылки указывают на примеры для устройств на основе микроконтроллеров, которые также можно использовать для обучения и отладки.

Использование устройства на основе микроконтроллера

Полное комплексное руководство по использованию пакета SDK для Embedded C, Службы подготовки устройств и IoT Plug and Play на основе микроконтроллеров см. в статье о разработке платы PIC-IoT WX для подключения к Azure с помощью Службы подготовки устройств к добавлению в Центр Интернета вещей.

Ознакомительные примеры

Пакет SDK для Embedded C содержит несколько примеров, демонстрирующих использование IoT Plug and Play.

Примечание.

Эти примеры можно выполнять в Windows и Linux для обучения и отладки. В рабочем сценарии примеры применимы только к устройствам с ограниченными ресурсами.

Использование Eclipse ThreadX

Eclipse ThreadX включает упрощенный уровень, который добавляет собственное подключение к облачным службам Интернета вещей Azure. Этот уровень предоставляет простой механизм для подключения ограниченных устройств к Azure IoT при использовании расширенных функций Eclipse ThreadX. Дополнительные сведения см. в обзоре Eclipse ThreadX.

Цепочки инструментов

Примеры Eclipse ThreadX предоставляются с различными типами интегрированной среды разработки и сочетаниями цепочк инструментов, такими как:

Примеры

В следующей таблице перечислены примеры, показывающие, как приступить к работе на разных устройствах с Eclipse ThreadX и IoT самонастраивающийся:

Производитель Устройство Примеры
Микрочип ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

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

Из этого учебника вы узнали, как подключить устройство IoT Plug and Play к Центру Интернета вещей. Дополнительные сведения о создании решения, взаимодействующего с устройствами IoT Plug and Play, см. в следующей статье: