- Kaj je središče Microsoft Azure IoT?
- Ustvarjanje Azure IoT Hub
- Komponente, potrebne za izdelavo našega testnega vezja za Azure IoT z Raspberry Pi
- Azure IoT z Raspberry Pi - Shema strojne opreme
- Programiranje Raspberry Pi za objavo podatkov v središču Azure IoT
- Objavite podatke o Azure IoT Hub - preskušanje
Azure IoT Hub, Microsoftova storitev računalništva v oblaku, razvijalcem omogoča, da na eni platformi povežejo, nadzirajo in upravljajo milijarde naprav IoT. Uporablja se že v različnih aplikacijah IoT, kot so sistemi za avtomatizacijo stanovanj, varnostni, nadzorni in nadzorni sistemi. Za predstavitev zmogljivosti vozlišča Azure IoT bomo zgradili majhno vezje z Raspberry Pi, senzorjem temperature in vlažnosti DHT11, da bomo z njim obdelali podatke senzorja. Na koncu bomo podatke o senzorjih objavili na strežniku Azure IoT s protokolom MQTT. V tej vadnici bomo izvedeli, kako nastaviti in konfigurirati strežnik Azure ter pošiljati podatke s pomočjo Raspberry Pi.
Kaj je središče Microsoft Azure IoT?
Azure IoT Hub je zbirka upravljanih storitev, ki lahko povežejo, nadzirajo in nadzirajo naprave IoT. Vključuje tudi varno komunikacijo za naprave z vizualizacijo podatkov in analitiko, ki proizvajalcem naprav pomagajo pri gradnji, uvajanju in upravljanju aplikacij IoT s pomočjo oblaka Azure . Telemetrijski podatki Device-to-Cd Azure IoT Hub nam sporočajo stanje povezanih naprav IoT, sporočila Cloud-to-Device pa nam omogočajo pošiljanje ukazov in obvestil na povezane naprave. Primer je lahko, da lahko z uporabo pametnega sistema za avtomatizacijo doma zberemo različne podatke senzorjev in jih pošljemo v središče Azure IoT, da jih vizualiziramo, shranimo in upravljamo. Izhodne naprave lahko nadzorujemo tudi iz vmesnika Azure IoT Hub.
Centralno vozlišče za dvosmerno komunikacijo za IoT aplikacijo in naprave podpira komunikacijo med oblakom naprav in oblakom, podpira pa tudi vzorce več sporočil, kot so telemetrija v oblaku, nalaganje datotek iz naprav in metode za zahtevo in odgovor, lahko uporabimo način preverjanja pristnosti na posamezno napravo, ki vsaki napravi omogoča varno povezavo s IoT Hub. Zdaj, ko ste razumeli osnove Azure IoT Hub, pojdimo na nastavitev sistema.
Ustvarjanje Azure IoT Hub
Pripravljeni smo narediti vse potrebne nastavitve, potrebne za nastavitev storitev Microsoft Azure, vendar pred tem preverite, ali imate Microsoftov račun. Če tega nimate, se lahko preprosto prijavite. Nato pojdite na portal Azure z uporabo portala.azure.com in se prijavite.
Ko ste prijavljeni, pojdite na domačo stran Azure, izberite gumb Ustvari vir in v polju Iskanje tržnice poiščite IoT Hub . Med rezultati iskanja izberite IoT Hub in nato Ustvari. Spodnje slike vam bodo dale boljšo predstavo o postopku.
Izpolnite potrebne podatke za ustvarjanje IoT središča.
V razdelku Naročnina morate izbrati naročnino, ki jo želite uporabiti za svoje vozlišče. V našem primeru smo se odločili za preizkusni račun in izbrali » Brezplačno preizkusno različico« .
Nato v razdelku Skupina virov izberite svojo skupino virov . Če ga nimate, ga morate ustvariti s klikom na Ustvari novega in vnesti ime vira.
V regiji oddelku, lahko uporabite spustni meni, da izberete želeno območje.
V Hub Ime oddelka interneta stvari, morate e EDINSTITUCIONALNI ime za razdelilniku. To mora biti enkratno. S tem imenom se bodo odvijale vse potrebne komunikacije.
Pod zavihkom »Velikost in lestvica« izberite » Brezplačna stopnja « in kliknite Naprej. Nato kliknite na "Review + Create". Ustvarjanje IoT Hub bo trajalo nekaj minut. Kliknite ime IoT Hub, ki ste ga ustvarili. V okno si zapišite ime gostitelja, kot je prikazano na spodnji sliki. Nato v nastavitvah kliknite Politike skupnega dostopa. Pravilniki o skupnem dostopu so označeni na spodnji sliki. Kliknite možnost iothubowner pod Politika. Za prihodnje reference si zapišite primarni ključ in niz povezave-primarni ključ. Zdaj, če želite registrirati novo napravo pod IoT Hub, kliknite IoT Devices. V podoknu Raziskovalec naprav kliknite Dodaj, da dodate napravo v zvezdišče.
Na zavihku Nove naprave izpolnite naslednje informacije.
- ID naprave: vnesite ID naprave. ID-ji naprav morajo biti enolični.
- Vrsta preverjanja pristnosti: izberite simetrični ključ.
- Samodejno generiraj ključe: potrdite to polje.
- Povežite napravo s IoT Hub: kliknite Omogoči.
Ko je naprava ustvarjena, lahko novo ustvarjeno napravo najdete v razdelku Raziskovalec naprav. Kliknite ime naprave. Prikazali bodo podrobnosti o napravi. Zapišite si primarni ključ in primarni ključ niza Povezava naprave. To je pomembno, saj ga potrebujemo za komunikacijo.
Zdaj, ko je to storjeno, lahko preidemo na strojno stran stvari.
Komponente, potrebne za izdelavo našega testnega vezja za Azure IoT z Raspberry Pi
Ker je strojni del tega vezja zelo preprost, je tudi zahteva po komponentah zelo preprosta. Seznam zahtevanih komponent je prikazan spodaj.
- Raspberry Pi 3B (Lahko uporabimo tudi katere koli druge modele Pi)
- Kartica Micro SD-16 GB
- DHT11 senzor
- Napajanje Micro USB 5V, 2,4A
Azure IoT z Raspberry Pi - Shema strojne opreme
Popoln diagram vezja za projekt Azure IoT s projektom Raspberry Pi je prikazan spodaj, zgrajen je bil s fritzingom. Sledite vezju in povezavam, da vezje naredite sami.
Zgornje vezje pošilja podatke o temperaturi in vlažnosti v središče Microsoft IoT. V tem vezju smo za zbiranje podatkov o temperaturi in vlažnosti uporabili senzor DHT11, za obdelavo podatkov pa uporabljamo Raspberry Pi 3B. Senzor DHT11 ima tri nožice. Zatiči VCC in GND se uporabljajo za napajanje 5V enosmernega toka senzorja, zatič podatkovnega izhoda DHT11 pa je povezan z GPIO4 Raspberry Pi. Če se želite naučiti, kako povezati senzor temperature in vlažnosti DHT11 z Raspberry Pi, si oglejte naš prejšnji članek o tej temi. Ta senzor smo uporabili tudi za izdelavo vremenske postaje IoT Raspberry Pi.
Programiranje Raspberry Pi za objavo podatkov v središču Azure IoT
Pred začetkom kodiranja za ta projekt moramo na portalu Azure ustvariti lupino oblaka Azure (CLI). To vam bo v marsičem prišlo prav. Za to kliknite gumb lupine Azure v oblaku na portalu, kot je prikazano spodaj. Nato kliknite možnost ustvarjanja pomnilnika, označeno z rdečo.
Ko končate, lahko odprete CLI, in zaženite naslednje ukaze za namestitev Azure dodatek ", s katero se bodo uporabili za prikaz podatkov senzorja.
az pripona add --name azure-cli-iot-ext
Ko je to končano, moramo na Raspberry Pi namestiti odvisnosti za komunikacijo s senzorjem DHT11 in za lažji komunikacijski postopek za storitve Azure IoT. Za to odprite Raspberry Pi Terminal, da namestite odvisne pakete, uporabljene v projektu.
Najprej moramo prenesti knjižnico DHT za Raspberry Pi, nato jo izvleči iz korenske mape in zagnati naslednji ukaz, da jo namestimo.
sudo python setup.py namestite
Po uspešni namestitvi zaženite naslednje ukaze, da namestite vse odvisne pakete v središče Azure IoT.
sudo pip3 namestite azure-iot-device sudo pip3 namestite azure-iot-hub sudo pip3 namestite azure-iothub-service-client sudo pip3 namestite azure-iothub-device-client
Ko smo končali z namestitvijo vseh predpogojev, je čas, da kodo napišemo v Python. Če želite to narediti, najprej uvozite vse knjižnice:
uvoz naključni uvoz Adafruit_DHT čas uvoza iz azure.iot.device import IoTHubDeviceClient, Message
V tem projektu za obdelavo podatkov iz podatkov DHT11 uporabljamo pin 4 Raspberry Pi, zato ga je treba prijaviti, kot je prikazano.
senzor = Adafruit_DHT.DHT11 pin = 4
Nato določimo niz povezave kode. Zamenjajte ga z nizom povezave primarne naprave, ki smo ga shranili prej.
CONNECTION_STRING = "Ime gostitelja = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
Nato ustvarimo matriko, ki bo uporabljena za pošiljanje podatkov v središče Azure IoT. To lahko storite, kot je prikazano spodaj.
MSG_SND = '{{"temperatura": {temperatura}, "vlaga": {vlaga}}}'
Nato smo definirali zanko while, v zanki while se s pomočjo funkcije Adafruit_DHT.read_retry obdelajo podatki o vlažnosti in temperaturi. Poleg tega definiramo dve posebni spremenljivki in tem spremenljivkam dodelimo izhodne podatke.
while True: vlaga, temperatura = Adafruit_DHT.read_retry (senzor, zatič)
Nato je napisana funkcija za povezavo IoT Hub z uporabo parametrov povezave, ki smo jih predhodno definirali.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) return client
Nazadnje se v naslednjem koraku podatki o temperaturi in vlažnosti pošljejo Azure Hub v obliki, kot je prikazano v spodnji kodi. Uporabili smo tudi metodo try and catch, da ugotovimo, ali je v kodi napaka.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Pošiljanje podatkov v IoT Hub, pritisnite Ctrl-C za izhod"), medtem ko je True: msg_txt_formatted = MSG_SND.format (temperatura = temperatura, vlaga = vlažnost) sporočilo = Sporočilo (msg_txt_formatted) print ("Pošiljanje sporočila: {}". format (message)) client.send_message (message) print ("Sporočilo uspešno poslano") time.sleep (3)
Objavite podatke o Azure IoT Hub - preskušanje
Po uspešnem pisanju kode jo sestavite in preverite, ali ni napak. Če je blok kode uspešno preveden, zaženite kodo. V oknu terminala bi morali videti sporočilo: "Sporočilo uspešno poslano". Posnetek zaslona okna je prikazan spodaj:
Zdaj, če si želite ogledati podatke v središču Azure IoT, pojdite na portal in kliknite terminal CLI ter v njem zaženite naslednje ukaze, ki nadomeščajo vaše poverilnice.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Opomba:
Zamenjajte XYZ z imenom zvezdišča in ID-jem naprave.
Po zagonu zgornjega ukaza bi morali dobiti podatke, kot je prikazano spodaj na zaslonu. To so isti podatki, ki so bili poslani iz Raspberry Pi.
To je konec te vaje, upam, da vam je bil članek všeč in ste se naučili nekaj novega. Če imate kakršna koli vprašanja v zvezi s člankom, jih lahko pustite v spodnjem oddelku za komentarje. Lahko pa uporabite naš forum za elektroniko, da dobite hitrejši in boljši odziv.