- Co je Microsoft Azure IoT Hub?
- Vytvoření Azure IoT Hub
- Komponenty potřebné k sestavení našeho testovacího okruhu pro Azure IoT s Raspberry Pi
- Azure IoT s Raspberry Pi - schéma hardwaru
- Programování Raspberry Pi pro publikování dat v Azure IoT Hub
- Publikování dat v Azure IoT Hub - testování
Azure IoT Hub, služba cloud computingu od společnosti Microsoft, umožňuje vývojářům připojovat se, monitorovat a spravovat miliardy zařízení IoT na jedné platformě. Používá se již v různých aplikacích IoT, jako jsou domácí automatizační systémy, bezpečnostní, sledovací a monitorovací systémy. Abychom předvedli možnosti centra Azure IoT, budeme stavět malý okruh s Raspberry Pi, snímačem teploty a vlhkosti DHT11, abychom s ním mohli zpracovávat data snímače. Nakonec zveřejníme data senzoru na server Azure IoT pomocí protokolu MQTT. V tomto kurzu se naučíme, jak nastavit a nakonfigurovat server Azure a odesílat data pomocí Raspberry Pi.
Co je Microsoft Azure IoT Hub?
Azure IoT Hub je kolekce spravovaných služeb, které umožňují připojení, sledování a ovládání zařízení IoT. Zahrnuje také zabezpečenou komunikaci pro zařízení s vizualizací a analýzou dat, které výrobcům zařízení pomáhají vytvářet, nasazovat a spravovat aplikace IoT pomocí cloudu Azure . Telemetrická data zařízení Azure IoT Hub ze zařízení na Cd nás informují o stavu připojených zařízení IoT a zprávy z cloudu na zařízení nám umožňují odesílat příkazy a oznámení na připojená zařízení. Příkladem může být, že pomocí inteligentního domácího automatizačního systému můžeme shromažďovat různá data ze senzorů a odesílat je do Azure IoT Hub, kde je můžeme vizualizovat, ukládat a spravovat. Můžeme také řídit výstupní zařízení z rozhraní Azure IoT Hub.
Centrální rozbočovač pro obousměrnou komunikaci pro aplikaci IoT a zařízení podporuje komunikaci mezi cloudem i zařízením, podporuje také několik vzorů zpráv, jako je telemetrie zařízení do cloudu, nahrávání souborů ze zařízení a metody požadavku a odpovědi, můžeme použít metodu ověřování na zařízení, která každému zařízení umožňuje bezpečné připojení k IoT Hubu. Nyní, jak jste pochopili základy Azure IoT Hub, pojďme k nastavení systému.
Vytvoření Azure IoT Hub
Jsme připraveni provést všechna potřebná nastavení, která jsou nutná pro nastavení služeb Microsoft Azure, ale předtím se ujistěte, že máte účet Microsoft. Pokud to nemáte, můžete se jednoduše zaregistrovat. Poté přejděte na portál Azure pomocí portálu.azure.com a přihlaste se.
Jakmile jste přihlášeni, přejděte na domovskou stránku Azure, vyberte tlačítko Vytvořit prostředek a poté vyhledejte IoT Hub v poli Hledat na tržišti. Vyberte IoT Hub z výsledků vyhledávání a pak vyberte Vytvořit. Následující obrázky vám poskytnou lepší představu o procesu.
Vyplňte nezbytné podrobnosti a vytvořte IoT Hub.
V části Předplatné musíte vybrat předplatné, abyste jej mohli používat pro svůj hub. V našem případě se rozhodujeme pro zkušební účet a vybrali jsme možnost „ Zkušební verze zdarma“ .
Dále v části Skupina prostředků vyberte skupinu prostředků . Pokud žádný nemáte, musíte vytvořit nový kliknutím na Vytvořit nový a zadat název zdroje.
V regionu oddílu, můžete použít rozbalovací nabídky vyberte požadovaný region.
V IoT Hub název oddílu, je nutné e nter jméno pro hubu. To musí být jedinečné. S tímto jménem proběhne veškerá potřebná komunikace.
Na kartě „Velikost a měřítko“ vyberte možnost „ Volná úroveň “ a klikněte na Další. Poté klikněte na „Zkontrolovat + Vytvořit“. Vytvoření centra IoT bude trvat několik minut. Klikněte na název IoT Hub, který jste vytvořili. Poznamenejte si název hostitele z okna, jak je znázorněno na obrázku níže. Poté klikněte na Zásady sdíleného přístupu v Nastavení. Zásady sdíleného přístupu jsou zvýrazněny na obrázku níže. Klikněte na možnost iothubowner v části Zásady. Poznamenejte si primární klíč a primární klíč připojovacího řetězce pro budoucí odkazy. Chcete-li nyní zaregistrovat nové zařízení v IoT Hubu, klikněte na IoT Devices. V podokně Průzkumník zařízení klikněte na Přidat a přidejte zařízení do centra.
Na kartě Nová zařízení vyplňte následující informace.
- ID zařízení: Zadejte ID zařízení. ID zařízení musí být jedinečná.
- Typ ověřování: Vyberte symetrický klíč.
- Automaticky generovat klíče: Zaškrtněte toto políčko.
- Připojit zařízení k IoT Hub: Klikněte na Povolit.
Po vytvoření zařízení najdete nově vytvořené zařízení v části Průzkumník zařízení. Klikněte na název zařízení. Zobrazí podrobnosti zařízení. Poznamenejte si primární klíč a primární klíč připojovacího řetězce zařízení. To je důležité, protože to potřebujeme pro komunikaci.
Teď, když je to hotové, můžeme přejít k hardwarové stránce věci.
Komponenty potřebné k sestavení našeho testovacího okruhu pro Azure IoT s Raspberry Pi
Jelikož je hardwarová část tohoto obvodu velmi jednoduchá, je velmi jednoduchý i požadavek na komponentu. Seznam požadovaných součástí je uveden níže.
- Raspberry Pi 3B (Můžeme také použít jakékoli jiné modely Pi)
- Karta Micro SD - 16 GB
- Senzor DHT11
- Napájení Micro USB 5 V, 2,4 A.
Azure IoT s Raspberry Pi - schéma hardwaru
Kompletní schéma zapojení pro projekt Azure IoT s Raspberry Pi je uvedeno níže, bylo vytvořeno pomocí fritzing. Postupujte podle schématu zapojení a zapojení, abyste si obvod vytvořili sami.
Výše uvedený obvod odesílá data o teplotě a vlhkosti do Microsoft IoT Hub. V tomto obvodu jsme použili senzor DHT11 ke shromažďování údajů o teplotě a vlhkosti a jako zařízení pro zpracování dat používáme Raspberry Pi 3B. Senzor DHT11 má tři piny. Kolíky VCC a GND slouží k napájení senzoru 5V DC a datový výstupní kolík DHT11 je připojen k GPIO4 Raspberry Pi. Pokud se chcete dozvědět, jak propojit snímač teploty a vlhkosti DHT11 s Raspberry Pi, podívejte se na náš předchozí článek k tomuto tématu. Tento senzor jsme také použili k vytvoření meteorologické stanice IoT Raspberry Pi.
Programování Raspberry Pi pro publikování dat v Azure IoT Hub
Před spuštěním kódování pro tento projekt musíme na Azure Portal vytvořit cloudové prostředí Azure (CLI). To se bude hodit mnoha způsoby. Za tímto účelem klikněte na tlačítko cloudového prostředí Azure na portálu, jak je znázorněno níže. Poté klikněte na možnost vytvořit úložiště označenou červeně.
Poté, co udělal, můžete otevřít CLI a spusťte následující příkazy k instalaci Azure přídatné‘s, které budou použity pro zobrazení data ze senzorů.
az extension add --name azure-cli-iot-ext
Jakmile je hotovo, musíme si na Raspberry Pi nainstalovat závislosti, abychom mohli komunikovat se senzorem DHT11 a usnadnit komunikační proces pro služby Azure IoT. Za tímto účelem otevřete terminál Raspberry Pi a nainstalujte závislé balíčky použité v projektu.
Nejprve si musíme stáhnout knihovnu DHT pro Raspberry Pi, poté ji extrahovat z kořenové složky a nainstalovat následující příkaz.
sudo python setup.py nainstalovat
Po úspěšné instalaci spusťte následující příkazy a nainstalujte všechny závislé balíčky na 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
Jakmile jsme dokončili instalaci všech předpokladů, je čas napsat kód v Pythonu. Nejprve importujte všechny knihovny:
import náhodný import Adafruit_DHT čas importu z azure.iot.device import IoTHubDeviceClient, zpráva
V tomto projektu používáme pin 4 Raspberry Pi ke zpracování dat z dat DHT11, takže je třeba jej deklarovat, jak je znázorněno.
senzor = Adafruit_DHT.DHT11 pin = 4
Dále definujeme připojovací řetězec kódu. Nahraďte jej připojovacím řetězcem primárního zařízení, který jsme uložili dříve.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
Dále vytvoříme pole, které se použije k odeslání dat do Azure IoT Hub. To lze provést, jak je znázorněno níže.
MSG_SND = '{{"teplota": {temperature}, "vlhkost": {vlhkost}}}'
Dále jsme definovali smyčku while, Ve smyčce while se data o vlhkosti a teplotě zpracovávají pomocí funkce Adafruit_DHT.read_retry . Dále definujeme dvě speciální proměnné a těmto proměnným přiřadíme výstupní data.
while True: vlhkost, teplota = Adafruit_DHT.read_retry (senzor, pin)
Dále je napsána funkce pro připojení IoT Hub pomocí parametrů připojení, které jsme dříve definovali.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) návratový klient
Nakonec v dalším kroku se data o teplotě a vlhkosti odešlou do Azure Hub ve formátu, jak je znázorněno v níže uvedeném kódu. Také jsme použili metodu try and catch k identifikaci, zda v kódu došlo k nějaké chybě.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Odesílání dat do IoT Hub, ukončete stisknutím Ctrl-C") zatímco True: msg_txt_formatted = MSG_SND.format (teplota = teplota, vlhkost = vlhkost) message = Zpráva (msg_txt_formatted) print ("Odesílání zprávy: {}". format (zpráva)) client.send_message (zpráva) print ("Zpráva úspěšně odeslána") time.sleep (3)
Publikování dat v Azure IoT Hub - testování
Po úspěšném napsání kódu jej zkompilujte a zkontrolujte případné chyby. Pokud je blok kódu úspěšně zkompilován, spusťte kód. V okně Terminál by se měla zobrazit zpráva „Zpráva byla úspěšně odeslána“. Snímek obrazovky okna je uveden níže:
Chcete-li nyní zobrazit data v Azure IoT Hub, přejděte na portál a klikněte na terminál CLI a spusťte následující příkazy, které v něm nahradí vaše přihlašovací údaje.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Poznámka:
Nahraďte XYZ názvem Hubu a ID zařízení.
Po spuštění výše uvedeného příkazu byste měli získat data, jak je uvedeno níže na obrazovce. Jedná se o stejná data, která byla odeslána z Raspberry Pi.
Tímto tutoriál končí, doufám, že se vám článek líbil a dozvěděli jste se něco nového. Máte-li jakékoli dotazy týkající se článku, můžete je zanechat v sekci komentářů níže. Nebo můžete použít naše fórum o elektronice, abyste získali rychlejší a lepší odpověď.