- Что такое Microsoft Azure IoT Hub?
- Создание Azure IoT Hub
- Компоненты, необходимые для создания нашей тестовой схемы для Azure IoT с Raspberry Pi
- Azure IoT с Raspberry Pi - схема оборудования
- Программирование Raspberry Pi для публикации данных в Azure IoT Hub
- Публикация данных в Azure IoT Hub - тестирование
Azure IoT Hub, служба облачных вычислений от Microsoft, позволяет разработчикам подключать, отслеживать и управлять миллиардами устройств IoT на единой платформе. Он уже используется в различных приложениях Интернета вещей, таких как системы домашней автоматизации, системы безопасности, наблюдения и мониторинга. Чтобы продемонстрировать возможности Azure IoT hub, мы собираемся построить небольшую схему с Raspberry Pi, датчиком температуры и влажности DHT11, чтобы обрабатывать с его помощью данные датчика. Наконец, мы опубликуем данные датчиков на сервере Azure IoT с помощью протокола MQTT. В этом руководстве мы узнаем, как установить и настроить сервер Azure и отправлять данные с помощью Raspberry Pi.
Что такое Microsoft Azure IoT Hub?
Центр Интернета вещей Azure - это набор управляемых служб, которые могут подключаться, отслеживать и управлять устройствами Интернета вещей. Он также включает безопасную связь для устройств с визуализацией данных и аналитикой, которая помогает производителям устройств создавать, развертывать и управлять приложениями Интернета вещей с помощью облака Azure . Данные телеметрии Azure IoT Hub с устройства на компакт-диск позволяют нам узнать о состоянии подключенных устройств Интернета вещей, а сообщения от облака к устройству позволяют нам отправлять команды и уведомления на подключенные устройства. Например, с помощью системы автоматизации умного дома мы можем собирать различные данные датчиков и отправлять их в Центр Интернета вещей Azure для их визуализации, хранения и управления. Мы также можем управлять устройствами вывода из интерфейса Azure IoT Hub.
Центральный концентратор для двунаправленной связи для приложений и устройств IoT поддерживает связь как с облаком, так и с облаком, он также поддерживает несколько шаблонов обмена сообщениями, таких как телеметрия с устройства на облако, загрузка файлов с устройств и методы запроса-ответа и, наконец, мы можем использовать метод аутентификации для каждого устройства, который позволяет каждому устройству безопасно подключаться к IoT Hub. Теперь, когда вы разобрались с основами Azure IoT Hub, давайте перейдем к настройке системы.
Создание Azure IoT Hub
Мы готовы выполнить все необходимые настройки, необходимые для настройки служб Microsoft Azure, но перед этим убедитесь, что у вас есть учетная запись Microsoft. Если у вас его нет, вы можете просто зарегистрироваться. После этого перейдите на портал Azure с помощью portal.azure.com и войдите в систему.
После входа в систему перейдите на домашнюю страницу Azure, нажмите кнопку « Создать ресурс», а затем найдите Центр Интернета вещей в поле « Поиск в Marketplace». Выберите Центр Интернета вещей в результатах поиска, а затем выберите Создать. Изображения ниже дадут вам лучшее представление о процессе.
Введите данные, необходимые для создания Центра Интернета вещей.
В разделе «Подписка » нужно выбрать подписку, чтобы использовать ее для своего хаба. В нашем случае мы выбираем пробную учетную запись и выбрали « Бесплатная пробная версия» .
Затем в разделе группы ресурсов выберите свою группу ресурсов . Если у вас его нет, вам необходимо создать новый, нажав на кнопку « Создать новый» и введите имя ресурса.
В области раздела, вы можете использовать выпадающее меню для выбора нужного региона.
В разделе «Имя центра Интернета вещей» необходимо ввести имя для своего концентратора. Он должен быть уникальным. Все необходимые коммуникации будут происходить с этим именем.
На вкладке «Размер и масштаб» выберите « Уровень бесплатного пользования » и нажмите «Далее». Затем нажмите «Обзор + Создать». Создание Центра Интернета вещей займет несколько минут. Щелкните имя созданного вами Центра Интернета вещей. Запишите имя хоста из окна, как показано на изображении ниже. Затем нажмите на Политики общего доступа в Настройках. Политики общего доступа выделены на изображении ниже. Нажмите на опцию iothubowner в разделе «Политика». Запишите первичный ключ и первичный ключ строки подключения для использования в будущем. Теперь, чтобы зарегистрировать новое устройство в Центре Интернета вещей, щелкните « Устройства Интернета вещей». На панели «Обозреватель устройств» нажмите « Добавить», чтобы добавить устройство в концентратор.
Заполните следующую информацию на вкладке «Новые устройства».
- Идентификатор устройства: введите идентификатор устройства. Идентификаторы устройств должны быть уникальными.
- Тип аутентификации: выберите симметричный ключ.
- Автоматическое создание ключей: установите этот флажок.
- Подключите устройство к Центру Интернета вещей: нажмите «Включить».
После создания устройства вы можете найти новое созданное устройство в разделе «Обозреватель устройств». Щелкните по названию устройства. Он покажет детали устройства. Запишите первичный ключ и первичный ключ строки подключения устройства. Это важно, так как нам это нужно для общения.
Теперь, когда это будет сделано, мы можем перейти к аппаратной части вещей.
Компоненты, необходимые для создания нашей тестовой схемы для Azure IoT с Raspberry Pi
Поскольку аппаратная часть этой схемы очень проста, требования к компонентам также очень просты. Список необходимых компонентов приведен ниже.
- Raspberry Pi 3B (мы также можем использовать любые другие модели Pi)
- Карта Micro SD - 16 ГБ
- Датчик DHT11
- Micro USB 5V, 2.4A Блок питания
Azure IoT с Raspberry Pi - схема оборудования
Полная принципиальная схема проекта Azure IoT с Raspberry Pi показана ниже. Он был построен с использованием технологии fritzing. Следуйте принципиальной схеме и соединениям, чтобы сделать схему самостоятельно.
Приведенная выше схема отправляет данные о температуре и влажности в Microsoft IoT Hub. В этой схеме мы использовали датчик DHT11 для сбора данных о температуре и влажности, а в качестве устройства обработки данных мы используем Raspberry Pi 3B. Датчик DHT11 имеет три контакта. Контакты VCC и GND используются для подачи питания 5 В постоянного тока на датчик, а контакт вывода данных DHT11 подключен к GPIO4 Raspberry Pi. Если вы хотите узнать, как подключить датчик температуры и влажности DHT11 к Raspberry Pi, вы можете проверить нашу предыдущую статью по этой теме. Мы также использовали этот датчик для создания метеостанции IoT Raspberry Pi.
Программирование Raspberry Pi для публикации данных в Azure IoT Hub
Прежде чем приступить к написанию кода для этого проекта, нам необходимо создать облачную оболочку Azure (CLI) на портале Azure. Это пригодится во многих отношениях. Для этого нажмите кнопку облачной оболочки Azure на портале, как показано ниже. Затем нажмите на опцию создания хранилища, отмеченную красным.
После этого, вы можете открыть CLI, и выполните следующие команды, чтобы установить Azure надстройку» с, которая будет использоваться для отображения данных датчика.
az extension add --name azure-cli-iot-ext
Как только это будет сделано, нам нужно установить зависимости на Raspberry Pi для связи с датчиком DHT11 и упростить процесс связи для служб Azure IoT. Для этого откройте терминал Raspberry Pi и установите зависимые пакеты, используемые в проекте.
Сначала нам нужно загрузить библиотеку DHT для Raspberry Pi, затем извлечь ее из корневой папки и выполнить следующую команду для ее установки.
sudo python setup.py установить
После успешной установки выполните следующие команды, чтобы установить все зависимые пакеты в Azure IoT Hub.
sudo pip3 install azure-iot-device sudo pip3 install azure-iot-hub sudo pip3 install azure-iothub-service-client sudo pip3 install azure-iothub-device-client
После того, как мы завершили установку всех необходимых компонентов, самое время написать код на Python. Для этого сначала импортируйте все библиотеки:
импорт случайного импорта Adafruit_DHT время импорта из azure.iot.device импорт IoTHubDeviceClient, сообщение
В этом проекте мы используем вывод 4 Raspberry Pi для обработки данных из данных DHT11, поэтому его необходимо объявить, как показано.
sensor = Adafruit_DHT.DHT11 контакт = 4
Затем мы определяем строку подключения кода. Замените его на строку подключения к основному устройству, которую мы сохранили ранее.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
Затем мы создаем массив, который будет использоваться для отправки данных в Azure IoT Hub. Это можно сделать, как показано ниже.
MSG_SND = '{{"температура": {температура}, "влажность": {влажность}}}'
Затем мы определили цикл while. В цикле while данные о влажности и температуре обрабатываются с помощью функции Adafruit_DHT.read_retry . Кроме того, мы определяем две специальные переменные и назначаем этим переменным выходные данные.
while True: влажность, температура = Adafruit_DHT.read_retry (датчик, контакт)
Затем пишется функция для подключения IoT Hub с использованием ранее определенных нами параметров подключения.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) вернуть клиент
Наконец, на следующем шаге данные о температуре и влажности отправляются в Azure Hub в формате, показанном в приведенном ниже коде. Кроме того, мы использовали метод try and catch, чтобы определить, есть ли в коде ошибки.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print («Отправка данных в IoT Hub, нажмите Ctrl-C для выхода») while True: msg_txt_formatted = MSG_SND.format (temperature = температура, влажность = влажность) message = Message (msg_txt_formatted) print ("Отправка сообщения: {}". формат (сообщение)) client.send_message (сообщение) print ("Сообщение успешно отправлено") time.sleep (3)
Публикация данных в Azure IoT Hub - тестирование
После успешного написания кода скомпилируйте его и проверьте наличие ошибок. Если блок кода скомпилирован успешно, запустите код. В окне Терминала вы должны увидеть сообщение «Сообщение успешно отправлено». Скриншот окна показан ниже:
Теперь, чтобы просмотреть данные в Azure IoT Hub, перейдите на портал, щелкните терминал CLI и выполните следующие команды, заменив в нем свои учетные данные.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Заметка:
Замените XYZ своим именем хаба и идентификатором устройства.
После выполнения указанной выше команды вы должны получить данные, как показано ниже на экране. Это те же данные, которые были отправлены с Raspberry Pi.
Это знаменует конец этого урока. Надеюсь, вам понравилась статья и вы узнали что-то новое. Если у вас есть какие-либо вопросы по статье, вы можете оставить их в разделе комментариев ниже. Или вы можете использовать наш форум по электронике, чтобы получить более быстрый и лучший ответ.