- Čo je Microsoft Azure IoT Hub?
- Vytvorenie Azure IoT Hub
- Komponenty potrebné na zostavenie nášho testovacieho obvodu pre Azure IoT s Raspberry Pi
- Azure IoT s Raspberry Pi - hardvérová schéma
- Programovanie Raspberry Pi na publikovanie údajov v Azure IoT Hub
- Publikovanie údajov v Azure IoT Hub - testovanie
Azure IoT Hub, služba cloud computingu od spoločnosti Microsoft, umožňuje vývojárom pripájať sa, monitorovať a spravovať miliardy zariadení IoT na jednej platforme. Používa sa už v rôznych aplikáciách IoT, ako sú domáce automatizačné systémy, bezpečnostné, dozorné a monitorovacie systémy. Na demonštráciu schopností Azure IoT huba postavíme malý okruh so snímačom Raspberry Pi, snímačom teploty a vlhkosti DHT11, aby sme s ním mohli spracovať údaje snímača. Na záver zverejníme údaje senzora na server Azure IoT pomocou protokolu MQTT. V tomto tutoriáli sa dozvieme, ako nastaviť a nakonfigurovať server Azure a odosielať údaje pomocou Raspberry Pi.
Čo je Microsoft Azure IoT Hub?
Azure IoT Hub je kolekcia spravovaných služieb, ktoré umožňujú pripojenie, monitorovanie a kontrolu zariadení IoT. Zahŕňa tiež bezpečnú komunikáciu pre zariadenia s vizualizáciou údajov a analýzou, ktoré výrobcom zariadení pomáhajú vytvárať, nasadzovať a spravovať aplikácie IoT pomocou cloudu Azure . Telemetrické údaje zariadenia Azure IoT Hub typu Device to Cd nás informujú o stave pripojených zariadení IoT a správy typu cloud-to-device nám umožňujú odosielať príkazy a oznámenia na pripojené zariadenia. Príkladom môže byť napríklad to, že pomocou inteligentného systému automatizácie domácnosti môžeme zhromažďovať rôzne údaje zo senzorov a posielať ich do Azure IoT Hub, aby sme ich vizualizovali, ukladali a spravovali. Výstupné zariadenia môžeme ovládať aj z rozhrania Azure IoT Hub.
Centrálny rozbočovač pre obojsmernú komunikáciu pre aplikáciu IoT a zariadenia podporuje komunikáciu medzi zariadeniami a cloudom aj medzi cloudmi a zariadeniami. Podporuje tiež viac vzorov správ, ako je telemetria typu zariadenie do cloudu, nahrávanie súborov zo zariadení a metódy žiadosti a odpovede a nakoniec môžeme použiť metódu autentifikácie na zariadenie, ktorá umožňuje každému zariadeniu bezpečné pripojenie k IoT Hub. Teraz, keď ste pochopili základy Azure IoT Hub, prejdime k nastaveniu systému.
Vytvorenie Azure IoT Hub
Sme pripravení vykonať všetky potrebné nastavenia, ktoré sú potrebné na nastavenie služieb Microsoft Azure, ale predtým sa uistite, že máte účet Microsoft. Ak také nemáte, môžete sa jednoducho prihlásiť. Potom prejdite na portál Azure Portal pomocou portálu.azure.com a prihláste sa.
Po prihlásení prejdite na domovskú stránku Azure, vyberte tlačidlo Vytvoriť zdroj a potom vyhľadajte IoT Hub v poli Vyhľadať na trhu. Z výsledkov vyhľadávania vyberte IoT Hub a potom vyberte Vytvoriť. Nasledujúce obrázky vám poskytnú lepšiu predstavu o procese.
Vyplňte potrebné podrobnosti a vytvorte centrum IoT.
V sekcii Predplatné musíte zvoliť predplatné, aby ste ho mohli používať vo svojom rozbočovači. V našom prípade sa rozhodneme pre skúšobný účet a vybrali sme „ Skúšobná verzia zdarma“ .
Ďalej v sekcii Skupina zdrojov vyberte svoju skupinu zdrojov . Ak žiadny nemáte, musíte vytvoriť nový kliknutím na Vytvoriť nový a zadajte názov zdroja.
V regióne oddielu, môžete použiť rozbaľovacej ponuky vyberte požadovaný región.
V IoT Hub názov oddielu, je nutné e nter meno pre hubu. Musí to byť jedinečné. S týmto menom sa uskutoční všetka potrebná komunikácia.
Na karte „Veľkosť a mierka“ vyberte možnosť „ Voľná úroveň “ a kliknite na Ďalej. Potom kliknite na „Skontrolovať + Vytvoriť“. Vytvorenie IoT Hub bude trvať niekoľko minút. Kliknite na názov IoT Hub, ktorý ste vytvorili. Poznačte si z okna názov hostiteľa, ako je to znázornené na obrázku nižšie. Potom kliknite na Zásady zdieľaného prístupu v Nastaveniach. Pravidlá zdieľaného prístupu sú zvýraznené na obrázku nižšie. Kliknite na možnosť iothubowner v časti Pravidlá. Poznamenajte si primárny kľúč a primárny kľúč pripojovacieho reťazca pre ďalšie použitie. Teraz, ak chcete zaregistrovať nové zariadenie v IoT Hub, kliknite na IoT Devices. Na table Prieskumník zariadenia kliknite na Pridať a pridajte zariadenie do rozbočovača.
Na karte Nové zariadenia vyplňte nasledujúce informácie.
- ID zariadenia: Zadajte ID zariadenia. ID zariadenia musia byť jedinečné.
- Typ autentifikácie: Vyberte symetrický kľúč.
- Automaticky generovať kľúče: Začiarknite toto políčko.
- Pripojenie zariadenia k IoT Hub: Kliknite na Povoliť.
Po vytvorení zariadenia môžete svoje novo vytvorené zariadenie nájsť v sekcii Prieskumník zariadení. Kliknite na názov zariadenia. Zobrazia sa podrobnosti o zariadení. Poznačte si primárny kľúč a primárny kľúč pripojovacieho reťazca zariadenia. To je dôležité, pretože to potrebujeme na komunikáciu.
Teraz, keď je to hotové, môžeme prejsť na hardvérovú stránku veci.
Komponenty potrebné na zostavenie nášho testovacieho obvodu pre Azure IoT s Raspberry Pi
Pretože hardvérová časť tohto obvodu je veľmi jednoduchá, je veľmi jednoduchá aj požiadavka na komponent. Zoznam požadovaných komponentov je uvedený nižšie.
- Raspberry Pi 3B (Môžeme tiež použiť akékoľvek iné modely Pi)
- Karta Micro SD - 16 GB
- Senzor DHT11
- Micro USB 5V, 2,4A napájací zdroj
Azure IoT s Raspberry Pi - hardvérová schéma
Kompletná schéma zapojenia pre projekt Azure IoT s Raspberry Pi je uvedená nižšie. Bol zostavený pomocou fritovania. Podľa schémy zapojenia a zapojenia si urobte obvod sami.
Vyššie uvedený okruh odosiela údaje o teplote a vlhkosti do Microsoft IoT Hub. V tomto obvode sme použili senzor DHT11 na zber údajov o teplote a vlhkosti a ako zariadenie na spracovanie údajov používame Raspberry Pi 3B. Senzor DHT11 má tri piny. Kolíky VCC a GND sa používajú na napájanie snímača napätím 5 V ss. A kolík dátového výstupu DHT11 je pripojený k GPIO4 Raspberry Pi. Ak sa chcete dozvedieť, ako prepojiť snímač teploty a vlhkosti DHT11 s Raspberry Pi, môžete si pozrieť náš predchádzajúci článok k tejto téme. Tento senzor sme tiež použili na zostavenie meteorologickej stanice IoT Raspberry Pi.
Programovanie Raspberry Pi na publikovanie údajov v Azure IoT Hub
Pred spustením programovania tohto projektu musíme na portáli Azure vytvoriť cloudové prostredie Azure (CLI). To sa bude hodiť z mnohých hľadísk. Kliknite na tlačidlo Azure cloud shell na portáli, ako je to znázornené nižšie. Potom kliknite na možnosť vytvoriť úložisko označenú červenou farbou.
Potom, čo urobil, môžete otvoriť CLI a spustite nasledujúce príkazy na inštaláciu Azure prídavnej ' s, ktoré budú použité pre zobrazenie dáta zo senzorov.
az extension add --name azure-cli-iot-ext
Po dokončení je potrebné nainštalovať závislosti na Raspberry Pi, aby sme mohli komunikovať so senzorom DHT11 a uľahčiť komunikačný proces pre služby Azure IoT. Preto otvorte terminál Raspberry Pi na inštaláciu závislých balíkov použitých v projekte.
Najskôr si musíme stiahnuť knižnicu DHT pre Raspberry Pi, potom ju extrahovať z koreňového priečinka a spustiť nasledujúci príkaz na jej inštaláciu.
sudo python setup.py nainštalovať
Po úspešnej inštalácii spustite nasledujúce príkazy a nainštalujte všetky závislé balíčky v Azure IoT Hub.
sudo pip3 nainštalovať azure-iot-device sudo pip3 nainštalovať azure-iot-hub sudo pip3 nainštalovať azure-iothub-service-client sudo pip3 nainštalovať azure-iothub-device-client
Po dokončení inštalácie všetkých predpokladov je čas napísať kód v Pythone. Ak to chcete urobiť, najskôr importujte všetky knižnice:
import náhodný import Adafruit_DHT čas importu z azure.iot.device import IoTHubDeviceClient, správa
V tomto projekte používame pin 4 Raspberry Pi na spracovanie údajov z údajov DHT11, takže je potrebné ich deklarovať, ako je znázornené.
senzor = Adafruit_DHT.DHT11 pin = 4
Ďalej definujeme reťazec pripojenia kódu. Nahraďte ho primárnym pripojovacím reťazcom zariadenia, ktorý sme si predtým uložili.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Ďalej vytvoríme pole, ktoré sa použije na odoslanie údajov do Azure IoT Hub. Môže sa to urobiť tak, ako je to zobrazené nižšie.
MSG_SND = '{{"teplota": {temperature}, "vlhkost": {vlhkost}}}'
Ďalej sme definovali while slučku. V while while sú údaje o vlhkosti a teplote spracovávané pomocou funkcie Adafruit_DHT.read_retry . Ďalej definujeme dve špeciálne premenné a týmto premenným priradíme výstupné údaje.
while True: vlhkost, teplota = Adafruit_DHT.read_retry (senzor, pin)
Ďalej je napísaná funkcia na pripojenie IoT Hub pomocou parametrov pripojenia, ktoré sme predtým definovali.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) návratový klient
Nakoniec v ďalšom kroku sa údaje o teplote a vlhkosti odošlú do Azure Hub vo formáte uvedenom v kóde nižšie. Použili sme tiež metódu try and catch na zistenie, či sa v kóde vyskytla chyba.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Odosielanie údajov do IoT Hub, stlačením Ctrl-C ukončite") zatiaľ čo True: msg_txt_formatted = MSG_SND.format (teplota = teplota, vlhkosť = vlhkosť) message = Správa (msg_txt_formatted) print ("Odosielanie správy: {}". formát (správa)) client.send_message (správa) print ("Správa bola úspešne odoslaná") time.sleep (3)
Publikovanie údajov v Azure IoT Hub - testovanie
Po úspešnom napísaní kódu ho skompilujte a skontrolujte prípadné chyby. Ak je blok kódu úspešne zostavený, spustite kód. V okne Terminál by sa mala zobraziť správa „Správa bola úspešne odoslaná“. Screenshot obrazovky je uvedený nižšie:
Teraz, ak chcete zobraziť údaje v Azure IoT Hub, prejdite na portál a kliknite na terminál CLI a spustením nasledujúcich príkazov nahraďte svoje poverenia.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Poznámka:
Nahraďte XYZ menom svojho Hubu a ID zariadenia.
Po vykonaní vyššie uvedeného príkazu by ste mali získať údaje tak, ako je to zobrazené na obrazovke nižšie. Jedná sa o rovnaké údaje, aké boli odoslané z Raspberry Pi.
Týmto sa končí tento návod, dúfam, že sa vám článok páčil a dozvedeli ste sa niečo nové. Ak máte akékoľvek otázky týkajúce sa článku, môžete ich zanechať v sekcii komentárov nižšie. Alebo môžete využiť naše Fórum elektroniky na rýchlejšiu a lepšiu odpoveď.