- Какво е 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 устройства на една платформа. Той вече се използва в различни IoT приложения като системи за домашна автоматизация, системи за сигурност, наблюдение и наблюдение. За да демонстрираме възможностите на Azure IoT hub, ще изградим малка верига с 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 Hub. Сега, след като разбрахте основите на Azure IoT Hub, нека преминем към настройването на системата.
Създаване на Azure IoT Hub
Готови сме да направим всички необходими настройки, необходими за настройване на услугите на Microsoft Azure, но преди това се уверете, че имате акаунт в Microsoft. Ако нямате това, можете просто да се регистрирате. След това отидете на портала на Azure, като използвате portal.azure.com и влезте.
След като влезете, отидете на началната страница на Azure, изберете бутона Създаване на ресурс и след това потърсете IoT Hub в полето Търсене на пазара. Изберете IoT Hub от резултатите от търсенето и след това изберете Създаване. Изображенията по-долу ще ви дадат по-добра представа за процеса.
Попълнете необходимите подробности, за да създадете IoT Hub.
В раздела Абонамент трябва да изберете абонамента, за да го използвате за вашия център. В нашия случай избираме пробен акаунт и сме избрали „ Безплатен пробен период“ .
След това в секцията Resource Group изберете вашата ресурсна група . Ако нямате такъв, трябва да създадете нов, като щракнете върху Създаване на нов и въведете името на Ресурса.
В района секция, можете да използвате падащото меню, за да изберете предпочитания от вас област.
В ИН Hub Наименование секция, което трябва да е nter име за своя център. Това трябва да е уникално. Всички необходими комуникации ще се случат с това име.
Под раздел „Размер и мащаб“ изберете „ Безплатно ниво “ и кликнете върху Напред. След това кликнете върху „Преглед + Създаване“. Ще отнеме няколко минути, за да създадете IoT Hub. Кликнете върху името на IoT Hub, който сте създали. Запишете името на хоста от прозореца, както е показано на изображението по-долу. След това кликнете върху Правилата за споделен достъп в настройките. Правилата за споделен достъп са подчертани на изображението по-долу. Кликнете върху опцията iothubowner под Политика. Запишете първичния ключ и връзката низ-първичен ключ за бъдещи препратки. Сега, за да регистрирате ново устройство под IoT Hub, кликнете върху IoT Devices. В екрана на Device Explorer щракнете върху Добавяне, за да добавите устройство към концентратора.
Попълнете следната информация в раздела Нови устройства.
- Device ID: Въведете Id за устройството. Идентификаторите на устройства трябва да бъдат уникални.
- Тип удостоверяване: Изберете симетричен ключ.
- Автоматично генериране на ключове: Поставете отметка в това квадратче.
- Свързване на устройство към IoT Hub: Щракнете върху Enable.
След като устройството е създадено, можете да намерите новосъздаденото устройство в раздела Device Explorer. Щракнете върху името на устройството. Той ще покаже подробностите за устройството. Запишете първичния ключ и основния ключ на низа на връзката на устройството. Това е важно, тъй като ни е необходимо за комуникация.
Сега, когато това е направено, можем да преминем към хардуерната страна на нещата.
Компоненти, необходими за изграждането на нашата тестова схема за Azure IoT с Raspberry Pi
Тъй като хардуерната част на тази схема е много проста, изискването за компонент също е много просто. Списък на необходимите компоненти е показан по-долу.
- Raspberry Pi 3B (Можем да използваме и други модели на Pi)
- Micro SD карта-16 GB
- DHT11 сензор
- Micro USB 5V, 2.4A Захранване
Azure IoT с Raspberry Pi - хардуерна схема
Пълната схема на схемата за проекта Azure IoT с проект Raspberry Pi е показана по-долу, Изградена е с помощта на фризиране. Следвайте електрическата схема и връзките, за да направите веригата сами.
Горната схема изпраща данни за температура и влажност до Microsoft IoT Hub. В тази схема използвахме сензор DHT11 за събиране на данни за температурата и влажността и използваме Raspberry Pi 3B като устройство за обработка на данни. DHT11 сензорът има три щифта. VCC и GND щифтовете се използват за подаване на 5V постоянен ток към сензора и изводът за данни на DHT11 е свързан към GPIO4 на Raspberry Pi. Ако искате да научите как да свържете сензора за температура и влажност на DHT11 с Raspberry Pi, можете да проверите предишната ни статия по темата. Също така използвахме този сензор за изграждане на IoT Raspberry Pi Weather Station.
Програмиране на Raspberry Pi за публикуване на данни в Azure IoT Hub
Преди да започнем кодирането за този проект, трябва да създадем облачна обвивка на Azure (CLI) в портала на Azure. Това ще ви бъде полезно в много отношения. За това кликнете върху бутона на черупката на облака Azure в портала, както е показано по-долу. След това кликнете върху опцията за създаване на съхранение, маркирана в червено.
След като сте готови, можете да отворите CLI, и изпълнете следните команди, за да инсталирате Azure добавката " и които ще бъдат използвани, за да се покаже до данните от сензорите.
az разширение добави --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.
Това бележи края на този урок, надявам се статията да ви е харесала и да сте научили нещо ново. Ако имате някакви въпроси относно статията, можете да ги оставите в раздела за коментари по-долу. Или можете да използвате нашия електронен форум, за да получите по-бърз и по-добър отговор.