- Kas yra „Microsoft Azure IoT Hub“?
- „Azure IoT Hub“ sukūrimas
- Komponentai, reikalingi norint sukurti „Azure IoT“ bandymo grandinę su „Raspberry Pi“
- „Azure IoT“ su „Raspberry Pi“ - aparatinės įrangos schema
- „Raspberry Pi“ programavimas skelbti duomenis „Azure IoT Hub“
- Skelbti duomenis „Azure IoT Hub“ - testavimas
„Microsoft“ debesų kompiuterijos paslauga „Azure IoT Hub“ leidžia kūrėjams sujungti, stebėti ir valdyti milijardus „IoT“ įrenginių vienoje platformoje. Jis jau naudojamas įvairiose IoT programose, tokiose kaip namų automatikos sistemos, apsaugos, stebėjimo ir stebėjimo sistemos. Norėdami pademonstruoti „ Azure IoT“ šakotuvo galimybes, ketiname sukurti mažą grandinę su „Raspberry Pi“, DHT11 temperatūros ir drėgmės jutikliu, kad galėtume apdoroti jutiklio duomenis. Galiausiai mes paskelbsime jutiklių duomenis į „Azure IoT“ serverį naudodami MQTT protokolą. Šioje pamokoje sužinosime, kaip nustatyti ir konfigūruoti „Azure“ serverį ir siųsti duomenis naudojant „Raspberry Pi“.
Kas yra „Microsoft Azure IoT Hub“?
„Azure IoT Hub“ yra valdomų paslaugų, galinčių prisijungti, stebėti ir valdyti IoT įrenginius, rinkinys. Tai taip pat apima saugų įrenginių ryšį, naudojant duomenų vizualizavimą ir analizę, kurie padeda įrenginių gamintojams kurti, diegti ir valdyti IoT programas naudojant „ Azure“ debesį. „Azure IoT Hub“ telemetriniai „Device-to-Cd“ duomenys leidžia mums sužinoti apie prijungtų „IoT“ įrenginių būseną, o „Cloud-to-Device“ pranešimai leidžia mums siųsti komandas ir pranešimus į prijungtus įrenginius. Pavyzdžiui, naudodamiesi išmaniosios namų automatikos sistema, galime rinkti įvairius jutiklių duomenis ir siųsti juos į „Azure IoT Hub“, kad juos vizualizuotume, saugotume ir tvarkytume. Išvesties įrenginius taip pat galime valdyti iš „Azure IoT Hub“ sąsajos.
„IoT“ programų ir įrenginių dvikryptis ryšių centrinis mazgas palaiko tiek įrenginio, tiek debesies, tiek debesies įrenginio ryšį, taip pat palaiko kelis pranešimų siuntimo modelius, tokius kaip įrenginio debesies telemetrija, failų įkėlimas iš įrenginių ir užklausos-atsakymo metodai, galiausiai, galime naudoti kiekvieno įrenginio autentifikavimo metodą, kuris leidžia kiekvienam įrenginiui saugiai prisijungti prie „IoT Hub“. Dabar, kai supratote „Azure IoT Hub“ pagrindus, pereikime prie sistemos nustatymo.
„Azure IoT Hub“ sukūrimas
Esame pasirengę atlikti visas būtinas sąrankas, reikalingas „ Microsoft Azure“ paslaugoms nustatyti, tačiau prieš tai įsitikinkite, kad turite „Microsoft“ paskyrą. Jei to neturite, galite tiesiog užsiregistruoti. Tada eikite į „Azure“ portalą naudodami portal.azure.com ir prisijunkite.
Kai būsite prisijungę, eikite į pagrindinį „Azure“ puslapį, pasirinkite mygtuką Sukurti šaltinį ir ieškokite „ IoT Hub“ lauke „ Ieškoti prekyvietėje“. Paieškos rezultatuose pasirinkite „ IoT Hub“, tada pasirinkite Kurti. Žemiau pateikiami vaizdai padės geriau suprasti procesą.
Norėdami sukurti IoT centrą, užpildykite būtiną informaciją.
Skyriuje „Prenumerata“ turite pasirinkti prenumeratą, kad galėtumėte naudoti ją savo centrui. Mūsų atveju mes pasirenkame bandomąją sąskaitą ir pasirinkome „ Nemokama bandomoji versija“ .
Tada skyriuje Išteklių grupė pasirinkite savo išteklių grupę . Jei neturite, turite sukurti naują spustelėdami Sukurti naują ir įveskite ištekliaus pavadinimą.
Regione skirsnyje, galite naudoti išskleidžiamajame meniu pasirinkite norimą regioną.
Į DI Hub Vardas skirsnyje, jums reikia e nter į Jūsų mazgo vardą. Tai turi būti unikalu. Šiuo pavadinimu bus atliekami visi reikalingi ryšiai.
Skirtuke „Dydis ir mastelis“ pasirinkite „ Nemokama pakopa “ ir spustelėkite Pirmyn. Tada spustelėkite „Peržiūrėti + Sukurti“. „IoT Hub“ sukūrimas užtruks kelias minutes. Spustelėkite savo sukurto „IoT Hub“ pavadinimą. Iš lango užsirašykite pagrindinio kompiuterio pavadinimą, kaip parodyta paveikslėlyje žemiau. Tada nustatymuose spustelėkite bendrosios prieigos politiką. Bendros prieigos politika paryškinta žemiau esančiame paveikslėlyje. Spustelėkite „ iothubowner“ parinktį dalyje „Policy“. Užsirašykite pirminis raktas ir ryšio string-pirminis raktas būsimoms nuorodomis. Dabar, norėdami užregistruoti naują įrenginį naudodami „IoT Hub“, spustelėkite „ IoT Devices“. „Device Explorer“ srityje spustelėkite Pridėti, kad pridėtumėte įrenginį prie koncentratoriaus.
Skirtuke Nauji įrenginiai užpildykite šią informaciją.
- Įrenginio ID: įveskite įrenginio ID . Įrenginio ID turi būti unikalūs.
- Autentifikavimo tipas: pasirinkite simetrišką raktą.
- Automatiškai generuoti raktus: pažymėkite šį žymės langelį.
- Prijunkite įrenginį prie „IoT Hub“: spustelėkite Įgalinti.
Sukūrę įrenginį, naujai sukurtą įrenginį galite rasti skyriuje „ Įrenginių naršyklė“. Spustelėkite įrenginio pavadinimą. Tai parodys įrenginio informaciją. Užrašykite įrenginio pagrindinį raktą ir pagrindinį jungties eilutės raktą. Tai svarbu, nes mums to reikia bendravimui.
Dabar, kai tai bus padaryta, galime pereiti prie aparatinės įrangos pusės.
Komponentai, reikalingi norint sukurti „Azure IoT“ bandymo grandinę su „Raspberry Pi“
Kadangi šios grandinės techninė dalis yra labai paprasta, komponentų reikalavimas taip pat yra labai paprastas. Reikiamų komponentų sąrašas pateiktas žemiau.
- „Raspberry Pi 3B“ (galime naudoti ir kitus „Pi“ modelius)
- „Micro SD“ kortelė - 16 GB
- DHT11 jutiklis
- Mikro USB 5V, 2.4A maitinimo šaltinis
„Azure IoT“ su „Raspberry Pi“ - aparatinės įrangos schema
Visa „ Azure IoT“ su „Raspberry Pi“ projekto schema parodyta žemiau. Jis buvo sukurtas naudojant fritzing. Vadovaukitės grandinės schema ir jungtimis, kad patys atliktumėte grandinę.
Pirmiau nurodyta grandinė siunčia temperatūros ir drėgmės duomenis į „Microsoft IoT Hub“. Šioje grandinėje temperatūros ir drėgmės duomenims rinkti naudojome DHT11 jutiklį ir kaip duomenų apdorojimo įrenginį naudojame „Raspberry Pi 3B“. DHT11 jutiklis turi tris kaiščius. VCC ir GND kaiščiai naudojami jutikliui tiekti 5 V nuolatinę įtampą, o DHT11 duomenų išvesties kaištis yra prijungtas prie „Raspberry Pi“ GPIO4. Jei norite sužinoti, kaip susieti DHT11 temperatūros ir drėgmės jutiklį su „Raspberry Pi“, galite patikrinti mūsų ankstesnį straipsnį šia tema. Šį jutiklį mes taip pat panaudojome kurti IoT Raspberry Pi meteorologinę stotį.
„Raspberry Pi“ programavimas skelbti duomenis „Azure IoT Hub“
Prieš pradėdami koduoti šį projektą, „ Azure“ portale turime sukurti „ Azure“ debesies apvalkalą (CLI). Tai bus naudinga daugeliu atžvilgių. Norėdami tai padaryti, spustelėkite „Azure“ debesies apvalkalo mygtuką portale, kaip parodyta žemiau. Tada spustelėkite sukurti saugyklą parinktį, pažymėtą raudonai.
Kai baigsite, galite atidaryti CLI, ir paleisti šias komandas įdiegti Azure add-on " s, kurie bus naudojami parodyti jutiklių duomenis.
az pratęsimas pridėti - pavadinimas azure-cli-iot-ext
Tai atlikę turime įdiegti „Raspberry Pi“ priklausomybes, kad galėtume bendrauti su DHT11 jutikliu ir palengvinti „Azure IoT“ paslaugų bendravimo procesą. Tam atidarykite „Raspberry Pi“ terminalą, kad įdiegtumėte projekte naudojamus paketus.
Pirmiausia turime atsisiųsti „Raspberry Pi“ DHT biblioteką, tada ištraukti ją iš šakninio aplanko ir paleisti šią komandą, kad ją įdiegtumėte.
sudo python setup.py įdiegti
Po sėkmingo diegimo vykdykite šias komandas, kad įdiegtumėte visus priklausomus paketus „Azure IoT Hub“.
sudo pip3 įdiekite azure-iot-device sudo pip3 įdiekite azure-iot-hub sudo pip3 įdiekite azure-iothub-service-client sudo pip3 install azure-iothub-device-client
Kai baigsime įdiegti visas būtinas sąlygas, laikas parašyti kodą „Python“. Norėdami tai padaryti, pirmiausia importuokite visas bibliotekas:
importuoti atsitiktinį importavimą „Adafruit_DHT“ importavimo laikas iš azure.iot.device importo „IoTHubDeviceClient“, pranešimas
Šiame projekte mes naudojame „Raspberry Pi“ 4 kaištį, kad apdorotume duomenis iš DHT11 duomenų, todėl juos reikia deklaruoti taip, kaip parodyta.
jutiklis = Adafruit_DHT.DHT11 kaištis = 4
Toliau mes apibrėžiame kodo ryšio eilutę. Pakeiskite ją savo įrenginio pirminio ryšio eilute, kurią išsaugojome anksčiau.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Tada sukursime masyvą, kuris bus naudojamas duomenims siųsti į „Azure IoT Hub“. Tai galima padaryti taip, kaip parodyta žemiau.
MSG_SND = '{{"temperatūra": {temperatūra}, "drėgmė": {drėgmė}}}'
Toliau mes apibrėžėme „while“ ciklą. „ While“ cikle tiek drėgmės, tiek temperatūros duomenys apdorojami naudojant funkciją „ Adafruit_DHT.read_retry“ . Be to, mes apibrėžiame du specialius kintamuosius ir priskiriame išvesties duomenis šiems kintamiesiems.
o tiesa: drėgmė, temperatūra = „Adafruit_DHT.read_retry“ (jutiklis, kaištis)
Tada parašoma funkcija, skirta prijungti „IoT Hub“ naudojant anksčiau nustatytus ryšio parametrus.
def iothub_client_init (): klientas = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) grąžinti klientą
Galiausiai kitame žingsnyje tiek temperatūra, tiek drėgmė siunčiami į „Azure Hub“ naudojant formatą, kaip parodyta žemiau esančiame kode. Be to, mes naudojome bandymo ir gaudymo metodą, kad nustatytume, ar kode nėra klaidų.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Duomenų siuntimas į IoT šakotuvą, paspauskite Ctrl-C, kad išeitumėte"), o True: msg_txt_formatted = MSG_SND.format (temperatūra = temperatūra, drėgmė = drėgmė) pranešimas = pranešimas (msg_txt_formatted) print ("Siunčiamas pranešimas: {}". formatas (žinutė)) client.send_message (žinutė) spausdinti ("Pranešimas sėkmingai išsiųstas") time.sleep (3)
Skelbti duomenis „Azure IoT Hub“ - testavimas
Sėkmingai parašę kodą, sudarykite jį ir patikrinkite, ar nėra klaidų. Jei kodo blokas sėkmingai sukompiliuotas, paleiskite kodą. Terminalo lange turėtumėte pamatyti pranešimą, kuriame sakoma: „Pranešimas sėkmingai išsiųstas“. Lango ekrano kopija rodoma žemiau:
Dabar, norėdami pamatyti duomenis „Azure IoT Hub“, eikite į portalą ir spustelėkite CLI terminalą ir vykdykite šias komandas, pakeisdami jame jūsų kredencialus.
„az iot hub“ monitoriaus įvykiai - „hub-name XYZ“ - „device-id XYZ“
Pastaba:
Pakeiskite XYZ savo stebulės pavadinimu ir įrenginio ID.
Vykdę pirmiau nurodytą komandą, turėtumėte gauti duomenis, kaip parodyta žemiau ekrane. Tai tie patys duomenys, kurie buvo išsiųsti iš „Raspberry Pi“.
Tai žymi šios pamokos pabaigą, tikiuosi, kad jums patiko straipsnis ir sužinojote kažką naujo. Jei turite klausimų dėl straipsnio, galite juos palikti komentarų skiltyje žemiau. Arba galite pasinaudoti mūsų elektronikos forumu, kad gautumėte greitesnį ir geresnį atsakymą.