- Що таке Microsoft Azure IoT Hub?
- Створення Azure IoT Hub
- Компоненти, необхідні для побудови нашої тестової схеми для Azure IoT з Raspberry Pi
- IoT Azure з Raspberry Pi - апаратна схема
- Програмування Raspberry Pi для публікації даних на Azure IoT Hub
- Публікація даних на Azure IoT Hub - тестування
Azure IoT Hub, служба хмарних обчислень від Microsoft, дозволяє розробникам підключати, контролювати та управляти мільярдами пристроїв IoT на одній платформі. Він вже використовується в різних додатках IoT, таких як системи домашньої автоматизації, системи безпеки, спостереження та моніторингу. Щоб продемонструвати можливості концентратора Azure IoT, ми збираємося побудувати невелику схему з Raspberry Pi, датчиком температури та вологості DHT11, щоб обробити з ним дані датчика. Нарешті, ми опублікуємо дані датчиків на сервері Azure IoT, використовуючи протокол MQTT. У цьому підручнику ми дізнаємося, як налаштувати та налаштувати сервер Azure та надіслати дані за допомогою Raspberry Pi.
Що таке Microsoft Azure IoT Hub?
Azure IoT Hub - це колекція керованих служб, які можуть підключати, контролювати та керувати пристроями IoT. Він також включає безпечний зв’язок для пристроїв із візуалізацією даних та аналітикою, які допомагають виробникам пристроїв створювати, розгортати та керувати програмами IoT за допомогою хмари Azure . Дані телеметрії "Пристрій-до-CD" Azure IoT Hub дають нам знати про стан підключених пристроїв IoT, а повідомлення Cloud-to-Device дозволяють нам надсилати команди та сповіщення на підключені пристрої. Прикладом може бути те, що за допомогою інтелектуальної системи автоматизації будинку ми можемо збирати різні дані датчиків і надсилати їх до Azure IoT Hub для візуалізації, зберігання та управління ними. Ми також можемо керувати пристроями виводу за допомогою інтерфейсу Azure IoT Hub.
Центральний хаб для двонаправленого зв'язку для додатків IoT та пристроїв підтримує як хмарне з'єднання пристроїв, так і хмарні пристрої, а також підтримує декілька шаблонів обміну повідомленнями, наприклад, пристрій для хмарної телеметрії, завантаження файлів із пристроїв та методи запиту-відповіді і, нарешті, ми можемо використовувати метод автентифікації для кожного пристрою, який дозволяє кожному пристрою надійно підключатися до концентратора IoT. Тепер, коли ви зрозуміли основи Azure IoT Hub, давайте перейдемо до налаштування системи.
Створення Azure IoT Hub
Ми готові виконати всі необхідні налаштування, необхідні для налаштування служб Microsoft Azure, але перед цим переконайтеся, що у вас є обліковий запис Microsoft. Якщо у вас цього немає, ви можете просто зареєструватися. Після цього перейдіть на портал Azure за допомогою portal.azure.com і увійдіть.
Після входу в систему перейдіть на домашню сторінку Azure, натисніть кнопку Створити ресурс, а потім виконайте пошук IoT Hub у полі Пошук на ринку. Виберіть IoT Hub з результатів пошуку, а потім виберіть Створити. Зображення нижче дадуть вам краще уявлення про процес.
Заповніть необхідні деталі для створення IoT Hub.
У розділі Підписка вам потрібно вибрати підписку, щоб використовувати її для свого центру. У нашому випадку ми обираємо пробний рахунок, і ми вибрали " Безкоштовну пробну версію" .
Далі, у розділі “Група ресурсів” виберіть свою групу ресурсів . Якщо у вас його немає, вам потрібно створити нову, натиснувши на кнопку Створити нову та введіть назву Ресурсу.
В області розділу, ви можете використовувати меню, що випадає для вибору потрібного регіону.
У розділі Ім'я IoT Hub, вам потрібно е NTER ім'я для концентратора. Це має бути унікально. Всі необхідні комунікації відбуватимуться з цією назвою.
На вкладці «Розмір та масштаб» виберіть « Безкоштовний рівень » та натисніть «Далі». Потім натисніть «Огляд + Створити». На створення IoT Hub знадобиться кілька хвилин. Клацніть на назву створеного вами IoT Hub. Запишіть ім’я хосту з вікна, як показано на малюнку нижче. Потім натисніть Спільні правила доступу в Налаштуваннях. Політики спільного доступу виділено на зображенні нижче. Клацніть на опцію iothubowner у розділі Політика. Запишіть Первинний ключ та Рядок підключення-Первинний ключ для майбутніх посилань. Тепер, щоб зареєструвати новий пристрій у IoT Hub, клацніть на IoT Devices. На панелі Провідника пристроїв натисніть Додати, щоб додати пристрій до концентратора.
Заповніть наступну інформацію на вкладці Нові пристрої.
- Ідентифікатор пристрою: введіть ідентифікатор пристрою. Ідентифікатори пристрою повинні бути унікальними.
- Тип автентифікації: Виберіть симетричний ключ.
- Автогенерувати ключі: встановіть цей прапорець.
- Підключіть пристрій до концентратора IoT: натисніть Увімкнути.
Щойно пристрій буде створено, ви зможете знайти новий пристрій у розділі Провідник пристроїв. Клацніть на назву пристрою. Він покаже деталі пристрою. Запишіть Первинний ключ і Рядок підключення-Первинний ключ Пристрою. Це важливо, оскільки це нам потрібно для спілкування.
Тепер, коли це буде зроблено, ми можемо перейти до апаратної сторони справи.
Компоненти, необхідні для побудови нашої тестової схеми для Azure IoT з Raspberry Pi
Оскільки апаратна частина цієї схеми дуже проста, вимога до компонентів теж дуже проста. Список необхідних компонентів наведено нижче.
- Raspberry Pi 3B (Ми також можемо використовувати будь-які інші моделі Pi)
- Картка Micro SD-16 ГБ
- Датчик DHT11
- Micro USB 5V, живлення 2,4A
IoT Azure з Raspberry Pi - апаратна схема
Повна принципова схема для проекту Azure IoT з проектом Raspberry Pi наведена нижче, вона була побудована за допомогою фризування. Дотримуйтесь електричної схеми та з'єднань, щоб зробити схему самостійно.
Вищевказана схема надсилає дані про температуру та вологість у центр IoT Microsoft. У цій схемі ми використовували датчик 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 розширення 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 встановити azure-iot-device sudo pip3 встановити azure-iot-hub sudo pip3 встановити azure-iothub-service-client sudo pip3 встановити azure-iothub-device-client
Після того, як ми завершимо встановлення всіх передумов, настав час написати код на Python. Для цього спочатку імпортуйте всі бібліотеки:
імпорт випадковий імпорт Adafruit_DHT час імпорту з azure.iot.device імпорт IoTHubDeviceClient, повідомлення
У цьому проекті ми використовуємо висновок 4 Raspberry Pi для обробки даних із даних DHT11, тому його потрібно оголосити, як показано.
датчик = Adafruit_DHT.DHT11 контакт = 4
Далі визначаємо рядок підключення коду. Замініть його на рядок основного пристрою, який ми зберегли раніше.
CONNECTION_STRING = "Ім'я хосту = 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, щоб вийти"), а True: msg_txt_formatted = MSG_SND.format (температура = температура, вологість = вологість) повідомлення = Повідомлення (msg_txt_formatted) print ("Відправка повідомлення: {}". format (message)) client.send_message (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.
На цьому підручник закінчується, сподіваюся, вам сподобалась стаття і ви дізналися щось нове. Якщо у вас виникли запитання щодо статті, ви можете залишити їх у розділі коментарів нижче. Або ви можете скористатися нашим форумом з електроніки, щоб отримати швидший та кращий відгук.