Подключение Raspberry Pi к Центру Интернета вещей Azure (Node.js)

В этом учебнике описано, как начать работу с устройством Raspberry Pi под управлением Raspberry Pi OS. Также вы узнаете, как можно легко подключать устройства к облаку с помощью Центра Интернета вещей Azure. Примеры для Windows 10 IoT Базовая представлены в Центре разработки для Windows.

Нет начального набора? Используйте онлайн-симулятор Raspberry Pi. Или купите новый комплект здесь.

Что нужно сделать

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

  • Зарегистрируем устройство для Pi в Центре Интернета вещей.

  • Настроим Raspberry Pi.

  • Мы запустим пример приложения на Pi для отправки данных в Центр Интернета вещей.

Что вы узнаете

  • Как создать Центр Интернета вещей Azure и получить строку подключения нового устройства.

  • Как подключать Pi к датчику BME280.

  • Как собирать данные датчика, запустив пример приложения на Pi.

  • Как отправить данные датчика в Центр Интернета вещей.

Что нужно

Что нужно

  • Плата Raspberry Pi 2 или Raspberry Pi 3.

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

  • Монитор, USB-клавиатура и мышь, подключенные к Pi.

  • ПК или компьютер Mac под управлением Windows или Linux.

  • Подключение к Интернету.

  • Карта microSD емкостью 16 ГБ или больше.

  • Адаптер USB-SD или карта microSD для записи образа операционной системы на карту microSD.

  • Источник питания 5 В 2 A с кабелем Micro USB длиной примерно 1,8 метра.

Ниже приведены необязательные компоненты.

  • Датчик температуры, давления и влажности Adafruit BME280 в сборе.

  • Монтажная плата.

  • 6 оптоволоконных кабелей с разъемом на одном конце и гнездом на другом.

  • Светодиодный индикатор 10 мм с рассеянным освещением.

Примечание

Если у вас нет дополнительных элементов, можно использовать имитацию датчиков.

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

В этом разделе описывается создание центра Интернета вещей с помощью портала Azure.

  1. Войдите на портал Azure.

  2. На начальной странице портала Azure нажмите кнопку +Создать ресурс и введите текст Центр Интернета вещей в поле поиска в Marketplace.

  3. В результатах поиска выберите Центр Интернета вещей и щелкните Создать.

  4. Заполните следующие поля на вкладке Основные сведения.

    • Подписка: Выберите нужную подписку для концентратора.

    • Группа ресурсов. Выберите группу ресурсов или создайте новую. Чтобы создать новую, щелкните Создать и введите нужное имя. Чтобы выбрать существующую группу ресурсов, щелкните ее. Дополнительные сведения о группах ресурсов см. в статье об управлении группами ресурсов в Azure Resource Manager.

    • Регион. Выберите регион, в котором будет расположен концентратор. Выберите ближайшее к вам расположение. Некоторые функции, такие как потоки устройств Центра Интернета вещей, доступны только в определенных регионах. Для функций с такими ограничениями необходимо выбрать один из поддерживаемых регионов.

    • Имя Центра Интернета вещей. Введите имя для концентратора. Это имя должно быть глобально уникальным и содержать от 3 до 50 буквенно-цифровых символов. Имя может также содержать знак тире ('-').

    Важно!

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

    Создание центра на портале Azure.

  5. По завершении выберите Next: Networking (Далее: сеть), чтобы продолжить создание центра.

    Выберите конечные точки, с помощью которых устройства смогут подключаться к Центру Интернета вещей. Можете выбрать параметр по умолчанию Общедоступная конечная точка (все сети) либо выбрать Общедоступная конечная точка (выбранные диапазоны IP-адресов) или Частная конечная точка. Для нашего примера примите параметр по умолчанию.

    Выбор конечных точек для подключения.

  6. По завершении выберите Next: Management (Далее: управление), чтобы продолжить создание центра.

    Настройка параметров размера и масштаба для нового центра на портале Azure.

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

    • Ценовая категория и категория масштабирования. Выбранный уровень решения. В зависимости от количества необходимых компонентов и ежедневно отправляемых сообщений с помощью решения, можно выбрать несколько уровней. Для тестирования и оценки можно использовать уровень "Бесплатный". Он позволяет подключить к концентратору 500 устройств и отправлять до 8000 сообщений в день. Для каждой подписки Azure можно создать один центр Интернета вещей на уровне "Бесплатный".

      Если вы используете функцию "Быстрое начало" для потоков устройств Центра Интернета вещей, выберите уровень "Бесплатный".

    • Единицы центра Интернета вещей. Допустимое число сообщений за единицу в сутки зависит от ценовой категории концентратора. Например, если концентратор должен поддерживать 700 000 входящих сообщений, следует выбрать две единицы уровня S1. Дополнительные сведения о других параметрах уровня см. в статье Масштабирование решения для Центра Интернета вещей.

    • Defender для Интернета вещей. Включите это решение, чтобы обеспечить дополнительный уровень защиты от угроз для ваших устройств и устройств Интернета вещей. Этот параметр недоступен для концентраторов на уровне "Бесплатный". Дополнительные сведения см. в документации по Microsoft Defender для Интернета вещей.

    • Дополнительные параметры Settings > С устройства в облако: Это свойство привязывает сообщения, отправляемые с устройства в облако, к числу одновременно работающих модулей чтения этих сообщений. Для большинства концентраторов достаточно четырех разделов.

  7. По завершении выберите Next: Теги, чтобы перейти к следующему экрану.

    Теги — это пары "имя — значение". Один и тот же тег можно присвоить нескольким ресурсам и группам ресурсов для их классификации и объединения счетов. В этом документе не будут добавляться какие-либо теги. Дополнительные сведения см. в статье Использование тегов для организации ресурсов в Azure.

    Назначение тегов для центра с помощью портала Azure.

  8. По завершении выберите Next: Просмотр и создание, чтобы просмотреть выбранные параметры. Отобразится примерно следующий экран только со значениями, которые вы задали при создании центра.

    Просмотр сведений при создании центра.

  9. Щелкните Создать, чтобы начать развертывание центра. Развертывание будет выполняться несколько минут, пока будет создаваться центр. Когда развертывание будет завершено, выберите Перейти к ресурсу, чтобы открыть новый центр.

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

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

  1. В меню навигации Центра Интернета вещей выберите Устройства IoT, а затем щелкните Создать, чтобы добавить устройство в Центр Интернета вещей.

    Создание удостоверения устройства на портале

  2. В разделе Создать устройство укажите имя нового устройства, например myDeviceId, и щелкните Сохранить. После этого для вашего Центра Интернета вещей будет создано удостоверение устройства. Не снимайте флажок Автоматически формировать ключи, чтобы первичный и вторичный ключи создавались автоматически.

    Добавление нового устройства

    Важно!

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

  3. Создав устройство, откройте его из списка области Устройства IoT. Скопируйте основную строку подключения. Эта строка подключения используется кодом устройства для взаимодействия с центром.

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

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

Примечание

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

Настройка Raspberry Pi

Установка Raspberry Pi OS

Подготовьте карту microSD для установки образа Raspberry Pi OS.

  1. Скачайте Raspberry Pi OS с рабочим столом.

    а. Raspberry Pi OS с рабочим столом (в виде ZIP-файла).

    b. Извлеките Raspberry Pi OS с образом рабочего стола в папку на компьютере.

  2. Установите Raspberry Pi OS с Desktop на карту microSD.

    a. Скачайте и установите служебную программу Etcher для записи данных на карты SD.

    b. Запустите Etcher и выберите Raspberry Pi OS с образом рабочего стола, извлеченного на шаге 1.

    c. Выберите устройство для чтения карт microSD. В программе Etcher уже может быть выбрано правильное устройство для чтения.

    d. Щелкните Flash (Переключиться), чтобы установить Raspberry Pi OS с рабочим столом на карту microSD.

    д) По завершении установки удалите карту microSD из компьютера. Удалять карту microSD напрямую безопасно, так как программа Etcher автоматически извлекает или отключает карту microSD после завершения.

    е) Вставьте карту microSD в устройство Pi.

Включение SSH и I2C

  1. Подключите Pi к монитору, клавиатуре и мыши.

  2. Запустите Pi и войдите в Raspberry Pi OS, указав имя пользователя pi и пароль raspberry.

  3. Щелкните значок Raspberry и выберите Preferences (Параметры) > Raspberry Pi Configuration (Конфигурация Raspberry Pi).

    Raspberry Pi OS с меню настроек

  4. На вкладке Interfaces (Интерфейсы) установите для параметров SSH и I2C значение Enable (Включить), а затем нажмите кнопку OK.

    Интерфейс Описание
    SSH Secure Shell (SSH) используется, чтобы выполнить удаленное подключение к Raspberry Pi с помощью удаленной командной строки. Это предпочтительный способ удаленной выдачи команд для Raspberry Pi, описанный в этом документе.
    I2C I2C — это протокол связи, используемый для взаимодействия с оборудованием, например датчиками. Этот интерфейс необходим для взаимодействия с физическими датчиками, описанными в этой статье.

    Если у вас нет физических датчиков и вы хотите использовать смоделированные данные датчиков с устройства Raspberry Pi, вы можете отключить параметр I2C.

    Включение I2C и SSH на Raspberry Pi

Примечание

Сведения о том, как включить SSH и I2C, можно найти в дополнительных справочных документах на raspberrypi.org и Adafruit.com.

Подключение датчика к Pi

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

Подключение Raspberry Pi и датчика

Датчик BME280 может собирать данные о температуре и влажности. Светодиодный индикатор мигает, когда устройство отправляет сообщение в облако.

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

Начало (датчик и светодиодный индикатор) Конец (плата) Цвет кабеля
VDD (вывод 5G) 3.3V PWR (вывод 1) Белый кабель
GND (вывод 7G) GND (вывод 6) Коричневый кабель
SDI (вывод 10G) I2C1 SDA (вывод 3) Красный кабель
SCK (вывод 8G) I2C1 SCL (вывод 5) Оранжевый кабель
LED VDD (вывод 18F) GPIO 24 (вывод 18) Белый кабель
LED GND (вывод 17F) GND (вывод 20) Черный кабель

Щелкните, чтобы просмотреть схему соответствия выводов Raspberry Pi 2 и 3 для справки.

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

Подключенный компьютер Pi и датчик BME280

Подключение устройства Pi к сети

Включите устройство Pi, используя кабель Micro USB и источник питания. Подключите Pi к проводной сети с помощью кабеля Ethernet или выполните инструкции от Raspberry Pi Foundation для подключения устройства Pi к беспроводной сети. После успешного подключения Pi к сети необходимо запомнить IP-адрес устройства Pi.

Подключение к проводной сети

Примечание

Убедитесь, что плата Pi подключена к той же сети, что и компьютер. Например, если компьютер подключен к беспроводной сети, а плата Pi подключена к проводной сети, то IP-адрес может не отобразиться в выходных данных devdisco.

Запуск примера приложения на Pi

Клонирование примера приложения и установка пакетов необходимых компонентов

  1. Используйте один из следующих SSH-клиентов для подключения к Raspberry Pi с главного компьютера:

    Пользователи Windows

    a. Скачайте и установите PuTTY для Windows.

    b. Скопируйте IP-адрес устройства Pi и вставьте его в поле для имени узла (или для IP-адреса), а затем выберите тип подключения SSH.

    PuTTy

    Пользователи MAC и Ubuntu

    Используйте SSH-клиент, встроенный в Ubuntu или macOS. Возможно, для подключения устройства Pi по протоколу SSH потребуется выполнить ssh pi@<ip address of pi>.

    Примечание

    Имя пользователя по умолчанию — pi, а пароль — raspberry.

  2. Установите Node.js и NPM на устройстве Pi.

    Сначала проверьте версии Node.js.

    node -v
    

    Если используется версия ниже 10.x или платформа Node.js не установлена на Pi, установите последнюю версию.

    curl -sSL https://deb.nodesource.com/setup_16.x | sudo -E bash
    sudo apt-get -y install nodejs
    
  3. Клонируйте пример приложения.

    git clone https://github.com/Azure-Samples/azure-iot-samples-node.git
    
  4. Установите все пакеты для примера, в том числе пакет SDK для устройств Azure IoT, библиотеку датчика BME280 и библиотеку Wiring Pi.

    cd azure-iot-samples-node/iot-hub/Tutorials/RaspberryPiApp
    npm install
    

    Примечание

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

Настройка примера приложения

  1. Откройте файл конфигурации, выполнив следующую команду:

    nano config.json
    

    Файл конфигурации

    В этом файле можно настроить два элемента. Первый — interval. Он определяет время (в миллисекундах) между отправкой двух сообщений в облако. Второй — simulatedData. Он представляет логическое значение, определяющее, будут ли использоваться смоделированные данные датчика.

    Если у вас нет датчика, задайте для параметра simulatedData значение true, чтобы пример приложения создал и использовал смоделированные данные датчика.

    Примечание. В этом учебнике для адреса i2c используется значение 0x77 по умолчанию. В зависимости от конкретной конфигурации это может быть 0x76. Если вы получите ошибку i2c, попробуйте указать здесь значение 118 и проверьте работоспособность снова. Чтобы узнать, какой адрес используется конкретным датчиком, выполните команду sudo i2cdetect -y 1 в оболочке на raspberry pi

  2. Сохраните изменения и закройте окно, нажав клавиши CTRL+O > ВВОД > CTRL+X.

Запуск примера приложения

Запустите пример приложения, выполнив следующую команду:

sudo node index.js '<YOUR AZURE IOT HUB DEVICE CONNECTION STRING>'

Примечание

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

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

Выходные данные — данные датчика, отправленные с Raspberry Pi в Центр Интернета вещей

Чтение сообщений, полученных концентратором

Одним из средств для мониторинга сообщений, получаемых центром Интернета вещей от вашего устройства, является расширение Azure IoT Tools для Visual Studio Code. Дополнительные сведения см. в статье Обмен сообщениями между устройством и Центром Интернета вещей с помощью расширения Azure IoT Tools для Visual Studio Code.

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

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

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

  1. В меню слева на портале Azure щелкните Все ресурсы и выберите созданный Центр Интернета вещей.
  2. В верхней части обзорной панели Центра Интернета вещей щелкните Удалить.
  3. Введите имя центра и нажмите кнопку Удалить еще раз, чтобы подтвердить удаление Центра Интернета вещей.

Дальнейшие действия

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

Чтобы продолжить знакомство с Центром Интернета вещей Azure и изучить расширенные сценарии Центра Интернета вещей, см. следующие ресурсы: