Подключение устройства Raspberry Pi 3 к решению для удаленного мониторинга и отправка имитированных данных телеметрии с помощью Node.js

В этом руководстве показано, как использовать Raspberry Pi 3 для моделирования данных температуры и влажности для отправки в облако. В этом учебнике используется:

  • Операционная система Raspbian, язык программирования Node.js и пакет SDK Microsoft Azure IoT для Node.js для реализации примера устройства.
  • Предварительно настроенное решение для удаленного мониторинга IoT Suite в качестве облачного сервера.

Общие сведения

В этом руководстве выполняются следующие шаги:

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

Предварительные требования

Для работы с этим руководством требуется активная подписка Azure.

Примечание

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

Необходимое программное обеспечение

На настольном компьютере необходимо установить клиент SSH, чтобы иметь удаленный доступ к командной строке Raspberry Pi.

  • Windows не предоставляет клиент SSH. Мы советуем использовать PuTTY.
  • Большинство дистрибутивов Linux и Mac OS содержат служебную программу командной строки SSH. Дополнительные сведения см. в статье SSH Using Linux or Mac OS (Подключение по протоколу SSH с помощью Linux или Mac OS).

Необходимое оборудование

Настольный компьютер, чтобы иметь удаленный доступ к командной строке Raspberry Pi.

Начальный набор Microsoft IoT для Raspberry Pi 3 или эквивалентные компоненты. В этом руководстве используются следующие компоненты из набора:

  • Raspberry Pi 3;
  • карта MicroSD (с NOOBS);
  • кабель MiniUSB;
  • кабель Ethernet;

Подготовка решения

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

  1. Войдите на сайт azureiotsuite.com с помощью учетных данных Azure и щелкните +, чтобы создать решение.
  2. На плитке Удаленный мониторинг щелкните Выбрать.
  3. Укажите имя для предварительно настроенного решения удаленного мониторинга.
  4. Выберите область и подписку, которые вы хотите использовать для подготовки решения.
  5. Щелкните Создать решение , чтобы начать процесс подготовки. Этот процесс обычно занимает несколько минут.

Дождитесь завершения процесса подготовки.

  1. Щелкните плитку решения с состоянием Подготовка.
  2. Следите за состояниями подготовки по мере развертывания служб Azure в рамках подписки Azure.
  3. Когда подготовка будет завершена, состояние изменится на Готово.
  4. Щелкните плитку, чтобы просмотреть подробные сведения о решении на правой панели.

Примечание

Если при развертывании предварительно настроенного решения возникают проблемы, см. статьи Разрешения на сайте azureiotsuite.com и Часто задаваемые вопросы об IoT Suite. Если проблемы не удается устранить, отправьте запрос в службу поддержки на портале.

Есть ли сведения, которые вы ожидали увидеть и которые не указаны для вашего решения? Сообщите нам о своих предложениях на сайте User Voice.

Предупреждение

Решение для удаленного мониторинга подготавливает набор служб Azure в подписке Azure. Развертывание отражает реальную корпоративную архитектуру. Чтобы избежать ненужных расходов на использование ресурсов Azure, удалите экземпляр предварительно настроенного решения на сайте azureiotsuite.com после завершения работы с ним. Если предварительно настроенное решение понадобится снова, его можно легко восстановить. Дополнительные сведения о сокращении затрат во время выполнения решения для удаленного мониторинга см. в статье Configuring Azure IoT Suite preconfigured solutions for demo purposes (Настройка предварительно настроенных решений Azure IoT Suite для демонстрационных целей).

Просмотр панели мониторинга решения

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

  1. Когда подготовка завершится и на плитке предварительно настроенного решения появится надпись Готово, нажмите кнопку Запустить. Панель мониторинга решения для мониторинга откроется в новой вкладке.

    Запуск предварительно настроенного решения

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

    Панель мониторинга предварительно настроенного решения для удаленного мониторинга

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

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

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

  1. В левом нижнем углу панели мониторинга щелкните Добавить устройство.

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

  2. На панели Пользовательское устройство нажмите кнопку Добавить.

    Добавление пользовательского устройства

  3. Установите переключатель Позвольте мне определить собственный идентификатор устройства. Введите идентификатор устройства, например rasppi, и нажмите кнопку Проверить идентификатор, чтобы убедиться, что такое имя не используется в решении. Затем щелкните Создать, чтобы подготовить устройство.

    Добавление идентификатора устройства

  4. Запишите учетные данные устройства (идентификатор устройства, Центр Интернета вещей имя узла и ключ устройства). Эти значения потребуются клиентскому приложению на устройстве Raspberry Pi при подключении к решению для удаленного мониторинга. Затем нажмите кнопку Done(Готово).

    Просмотр учетных данных устройства

  5. Выберите устройство в списке устройств на панели мониторинга решения. Затем на панели Сведения об устройстве щелкните Включить устройство. Теперь текущее состояние устройства — Работает. Решение для удаленного мониторинга теперь может получать данные телеметрии с устройства и вызывать методы на устройстве.

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

Установка Raspbian

Если вы впервые используете устройство Raspberry Pi, необходимо установить операционную систему Raspbian с помощью NOOBS на карте SD, входящей в состав набора. В руководстве по программному обеспечению Raspberry Pi содержатся сведения об установке операционной системы на устройстве Raspberry Pi. В этом руководстве предполагается, что операционная система Raspbian уже установлена на Raspberry Pi.

Примечание

На картах SD, входящих в начальный набор Microsoft Azure IoT для Raspberry Pi 3, уже установлены NOOBS. Вы можете установить Raspberry Pi из этой карты, а также другую операционную систему Raspbian.

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

  • Подключите Raspberry Pi к источнику питания, входящему в состав набора.
  • Подключите Raspberry Pi к сети с помощью кабеля Ethernet, входящего в состав набора. Кроме того, для Raspberry Pi можно настроить беспроводное подключение.

Установка оборудования для Raspberry Pi завершена.

Вход и доступ к терминалу

Существует два варианта получения доступа к среде терминала на Raspberry Pi.

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

  • Получите доступ к командной строке на устройстве Raspberry Pi с настольного компьютера, используя SSH.

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

По умолчанию в качестве учетных данных для Raspbian используется имя пользователя pi и пароль raspberry. На панели задач в графическом пользовательском интерфейсе можно запустить служебную программу Terminal с помощью значка в виде монитора.

Вход с помощью SSH

Используйте SSH, чтобы получить доступ к Raspberry Pi с помощью командной строки. Сведения о настройке SSH на устройстве Raspberry Pi и о подключении из Windows, Linux и Mac OS см. в руководстве по SSH (SECURE SHELL).

Войдите, используя имя пользователя pi и пароль raspberry.

Совместный доступ к папке на устройстве Raspberry Pi (необязательно)

При необходимости вы можете предоставить общий доступ к папке на устройстве Raspberry Pi для среды рабочего стола. Предоставив общий доступ к папке, вы сможете использовать предпочитаемый классический текстовый редактор (например, Visual Studio Code или Sublime Text), чтобы редактировать файлы на устройстве Raspberry Pi вместо использования nano или vi.

Чтобы предоставить общий доступ к папке в Windows, необходимо настроить сервер Samba на устройстве Raspberry Pi. Вы также можете использовать встроенный сервер SFTP с клиентом SFTP на настольном компьютере.

Скачивание и настройка примера

Теперь можно скачать и настроить клиентское приложение для удаленного мониторинга на устройстве Raspberry Pi.

Установка Node.js

Установите Node.js на устройстве Raspberry Pi, если вы это еще не сделали. Для пакета SDK IoT для Node.js требуется версия Node.js 0.11.5 или более поздняя. Ниже описывается установка Node.js версии 6.10.2 на устройстве Raspberry Pi.

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

    sudo apt-get update
    
  2. Чтобы скачать двоичные файлы Node.js на устройство Raspberry Pi, используйте следующую команду:

    wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
    
  3. Чтобы установить эти двоичные файлы, используйте следующую команду:

    sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
    
  4. Чтобы убедиться в успешной установке Node.js версии 6.10.2, используйте следующую команду:

    node --version
    

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

Клонируйте необходимые репозитории (если вы еще не сделали это), выполнив следующие команды в терминале на устройстве Pi:

cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git

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

Откройте исходный файл примера в редакторе nano, используя следующую команду:

nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js

Найдите следующую строку:

var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';

Замените значения заполнителей сведениями об устройстве и Центре Интернета вещей, созданными и сохраненными в начале этого руководства. Сохраните изменения (клавиши CTRL+O, ВВОД) и закройте редактор (клавиши CTRL+X).

Запуск примера

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

cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator
npm install

Теперь вы можете запустить пример программы на устройстве Raspberry Pi. Введите команду:

sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js

Следующий пример с выходными данными отобразится в командной строке на устройстве Raspberry Pi:

Выходные данные приложения Raspberry Pi

Вы можете в любое время нажать комбинацию клавиш CTRL+C, чтобы выйти из программы.

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

Теперь устройство Raspberry Pi может отправлять данные телеметрии в решение для удаленного мониторинга. Эти данные можно просмотреть на панели мониторинга решения. Вы также можете использовать эту панель, чтобы отправлять сообщения в Raspberry Pi.

  • Перейдите к панели мониторинга решения.
  • Выберите устройство в раскрывающемся списке Устройство для просмотра.
  • Данные телеметрии из Raspberry Pi отобразятся на панели мониторинга.

Отображение данных телеметрии из Raspberry Pi

Выполнение действий на устройстве

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

  • На панели мониторинга решения щелкните Устройства, чтобы перейти на страницу устройств. Выберите Raspberry Pi в списке устройств. Затем выберите Методы:

    Список устройств на панели мониторинга

  • На странице Вызвать метод в раскрывающемся списке Метод выберите LightBlink.

  • Выберите InvokeMethod. Симулятор выводит сообщение на консоли Raspberry Pi. Приложение на устройстве Raspberry Pi отправляет подтверждение обратно на панель мониторинга решения.

    Просмотр журнала методов

  • Вы можете включить и отключить индикатор, используя метод ChangeLightStatus с параметром LightStatusValue со значением 1 (для включения) или 0 (для выключения).

Предупреждение

Если не завершить выполнение решения для удаленного мониторинга в учетной записи Azure, вам будет выставлен счет. Дополнительные сведения о сокращении затрат во время выполнения решения для удаленного мониторинга см. в статье Configuring Azure IoT Suite preconfigured solutions for demo purposes (Настройка предварительно настроенных решений Azure IoT Suite для демонстрационных целей). Прекратив использовать предварительно настроенное решение, удалите его из учетной записи Azure.

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

Дополнительные примеры и документацию по Azure IoT можно найти в Центре разработчиков Azure IoT.