- Mikä on Microsoft Azure IoT Hub?
- Azure IoT -keskuksen luominen
- Komponentit, joita tarvitaan Azure IoT -testipiirimme rakentamiseen Raspberry Pi: llä
- Azure IoT ja Raspberry Pi - laitteistokaavio
- Raspberry Pi -ohjelmointi ohjelmoidaan julkaisemaan tietoja Azure IoT Hubissa
- Julkaise tietoja Azure IoT Hubissa - testaus
Azure IoT Hub, Microsoftin pilvipalvelupalvelu, antaa kehittäjille mahdollisuuden yhdistää, valvoa ja hallita miljardeja IoT-laitteita yhdellä alustalla. Sitä käytetään jo useissa IoT-sovelluksissa, kuten koti-automaatio-, turvallisuus-, valvonta- ja valvontajärjestelmissä. Azure IoT -keskittimen ominaisuuksien osoittamiseksi aiomme rakentaa pienen piirin Raspberry Pi: n, DHT11-lämpötila- ja kosteusanturin kanssa, jotta sensoritiedot voidaan käsitellä sen kanssa. Lopuksi julkaisemme anturitiedot Azure IoT -palvelimelle MQTT-protokollaa käyttäen. Tässä opetusohjelmassa opitaan, miten Azure-palvelin asetetaan ja määritetään ja miten tietoja lähetetään Raspberry Pi: n avulla.
Mikä on Microsoft Azure IoT Hub?
Azure IoT Hub on kokoelma hallittuja palveluita, jotka voivat yhdistää, valvoa ja hallita IoT-laitteita. Se sisältää myös laitteiden turvallisen viestinnän, tietojen visualisoinnin ja analyysin avulla, jotka auttavat laitevalmistajia rakentamaan, asentamaan ja hallitsemaan IoT-sovelluksia Azure- pilven avulla. Azure IoT Hubin Laite-to-Cd-telemetriadata antaa meille tiedon yhdistettyjen IoT-laitteiden tilasta, ja Pilvestä laitteeseen -viestien avulla voimme lähettää komentoja ja ilmoituksia liitetyille laitteille. Esimerkki voisi olla, kuten älykkään kodin automaatiojärjestelmän avulla, voimme kerätä erilaisia anturitietoja ja lähettää ne Azure IoT Hubiin visualisoida, tallentaa ja hallita niitä. Voimme myös ohjata lähtölaitteita Azure IoT Hub -rajapinnasta.
IoT-sovellusten ja laitteiden kaksisuuntaisen viestinnän keskuslaite tukee sekä laite-pilvi- että pilvi-laite -viestintää, se tukee myös useita viestintämalleja, kuten laite pilvitelemetriaan, tiedostojen lataaminen laitteilta ja pyyntö-vastaus -menetelmät ja lopuksi voimme käyttää laitekohtaista todennustapaa, jonka avulla jokainen laite voi muodostaa yhteyden turvallisesti IoT-keskittimeen. Nyt, kun olet ymmärtänyt Azure IoT Hubin perusteet, siirrymme järjestelmän määrittämiseen.
Azure IoT -keskuksen luominen
Olemme valmiita tekemään kaikki tarvittavat asetukset, joita tarvitaan Microsoft Azure -palvelujen määrittämiseen, mutta ennen sitä varmista, että sinulla on Microsoft-tili. Jos sinulla ei ole sitä, voit yksinkertaisesti rekisteröityä. Siirry sen jälkeen Azure-portaaliin portal.azure.com-palvelun avulla ja kirjaudu sisään.
Kun olet kirjautunut sisään, siirry Azure-etusivulle, valitse Luo resurssi -painike ja etsi sitten IoT- keskusta Search Marketplace -kentästä. Valitse IoT Hub hakutuloksista ja valitse sitten Luo. Alla olevat kuvat antavat paremman käsityksen prosessista.
Täytä tarvittavat tiedot IoT-keskuksen luomiseksi.
Tilaus- osassa sinun on valittava tilaus, jotta sitä voidaan käyttää keskuksessa. Meidän tapauksessamme valitsemme kokeilutilin ja olemme valinneet " Free Trial" .
Seuraavaksi Resource Group §, valitse resurssi ryhmä . Jos sinulla ei ole sellaista, sinun on luotava uusi napsauttamalla Luo uusi ja kirjoittamalla resurssin nimi.
Alue- osiossa voit käyttää haluamaasi aluetta avattavasta valikosta.
Vuonna Esineiden internet Hub nimi KOHTA, sinun täytyy e nter nimi keskittimessä. Tämän on oltava ainutlaatuinen. Kaikki tarvittavat viestinnät tapahtuvat tällä nimellä.
Valitse välilehden Koko ja mittakaava -kohdassa Free Tier ja napsauta Seuraava. Napsauta sitten "Review + Create". IoT-keskuksen luominen kestää muutaman minuutin. Napsauta luomasi IoT-keskuksen nimeä. Kirjoita muistiin isäntänimi ikkunasta, kuten alla olevassa kuvassa näkyy. Napsauta sitten jaettujen käyttöoikeuksien käytäntöjä asetuksissa. Jaetun käyttöoikeuden käytännöt on korostettu alla olevassa kuvassa. Napsauta iothubowner- vaihtoehtoa kohdassa Policy. Merkitse muistiin ensisijainen avain ja yhteysmerkkijono-avain tulevia viitteitä varten. Rekisteröi nyt uusi laite IoT Hubiin napsauttamalla IoT Devices. Lisää laite keskittimeen napsauttamalla Laitehallinta-ruudussa Lisää .
Täytä seuraavat tiedot Uudet laitteet -välilehdessä.
- Laitetunnus: Anna laitteen tunnus . Laitetunnusten on oltava yksilöllisiä.
- Todennustyyppi: Valitse symmetrinen avain.
- Luo avaimet automaattisesti: Valitse tämä valintaruutu.
- Yhdistä laite IoT Hubiin: Napsauta Ota käyttöön.
Kun laite on luotu, löydät uuden luomasi laitteen Laitehallinnasta. Napsauta laitteen nimeä. Se näyttää laitteen tiedot. Kirjoita muistiin laitteen ensisijainen avain ja yhteysmerkkijono-avain. Tämä on tärkeää, koska tarvitsemme sitä viestintään.
Nyt kun se on tehty, voimme siirtyä asioiden laitteistopuolelle.
Komponentit, joita tarvitaan Azure IoT -testipiirimme rakentamiseen Raspberry Pi: llä
Koska tämän piirin laitteisto-osa on hyvin yksinkertainen, myös komponenttivaatimus on hyvin yksinkertainen. Luettelo tarvittavista komponenteista on esitetty alla.
- Raspberry Pi 3B (Voimme käyttää myös muita Pi-malleja)
- Micro SD -kortti - 16 Gt
- DHT11-anturi
- Micro USB 5V, 2.4A virtalähde
Azure IoT ja Raspberry Pi - laitteistokaavio
Azure IoT with Raspberry Pi -projektin täydellinen piirikaavio on esitetty alla. Se on rakennettu fritzingillä. Seuraa piirikaaviota ja liitäntöjä muodostaaksesi piiri itse.
Yllä oleva piiri lähettää lämpötila- ja kosteustiedot Microsoft IoT Hubille. Tässä piirissä olemme käyttäneet DHT11- anturia keräämään lämpötila- ja kosteustiedot ja käytämme Raspberry Pi 3B: tä tietojenkäsittelylaitteena. DHT11-anturissa on kolme nastaa. VCC- ja GND-nastoja käytetään antamaan 5 V DC-syöttö anturille ja DHT11: n datan ulostulotappi on kytketty Raspberry Pi: n GPIO4: ään. Jos haluat oppia DHT11-lämpötila- ja kosteusanturin liittämisestä Vadelma Pi: hen, voit tarkistaa edellisen artikkelimme aiheesta. Olemme käyttäneet tätä anturia myös IoT Raspberry Pi -sääaseman rakentamiseen.
Raspberry Pi -ohjelmointi ohjelmoidaan julkaisemaan tietoja Azure IoT Hubissa
Ennen tämän projektin koodauksen aloittamista meidän on luotava Azure-pilvikuori (CLI) Azure-portaaliin. Tämä on hyödyllistä monin tavoin. Napsauta sitä varten portaalin Azure-pilvikuoren painiketta alla olevan kuvan mukaisesti. Napsauta sitten Luo tallennusvaihtoehto, merkitty punaisella.
Kun valmis, voit avata CLI ja suorita seuraavat komennot asentaa Azure lisäosa' s jota käytetään osoittamaan anturitietoa.
az-laajennus add --name azure-cli-iot-ext
Kun se on tehty, meidän on asennettava riippuvuudet Raspberry Pi -laitteeseen kommunikoimaan DHT11-anturin kanssa ja helpottamaan viestintäprosessia Azure IoT -palveluille. Sitä varten avaa Raspberry Pi -terminaali asentamaan projektissa käytetyt riippuvat paketit.
Ensin meidän on ladattava DHT-kirjasto Raspberry Pi: lle, purettava se sitten juurikansiosta ja suoritettava seuraava komento sen asentamiseksi.
sudo python setup.py asennus
Kun asennus on onnistunut, suorita seuraavat komennot asentaaksesi kaikki riippuvat paketit Azure IoT Hubiin.
sudo pip3 asenna azure-iot-laite sudo pip3 asenna azure-iot-napa sudo pip3 asenna azure-iothub-service-asiakas sudo pip3 asenna azure-iothub-laite-asiakas
Kun kaikki edellytykset on asennettu, on aika kirjoittaa koodi Pythoniin. Tuo se ensin tuomalla kaikki kirjastot:
tuonti satunnainen tuonti Adafruit_DHT tuonnin aika azure.iot.device-tuonnista IoTHubDeviceClient, viesti
Tässä projektissa käytämme Vadelma Pi: n nastaa 4 DHT11-tietojen käsittelyyn, joten se on ilmoitettava kuvan mukaisesti.
anturi = Adafruit_DHT.DHT11- tappi = 4
Seuraavaksi määritellään koodin yhteysmerkkijono. Korvaa se laitteellesi ensisijaisella yhteysmerkkijonolla, jonka tallensimme aiemmin.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Seuraavaksi luomme taulukon, jota käytetään tietojen lähettämiseen Azure IoT Hubiin. Se voidaan tehdä alla esitetyllä tavalla.
MSG_SND = '{{"lämpötila": {lämpötila}, "kosteus": {kosteus}}}'
Seuraavaksi olemme määrittäneet while-silmukan, while-silmukassa sekä kosteus- että lämpötilatiedot käsitellään Adafruit_DHT.read_retry- funktiolla. Lisäksi määritellään kaksi erikoismuuttujaa ja osoitetaan lähtötiedot näille muuttujille.
vaikka Tosi: kosteus, lämpötila = Adafruit_DHT.read_retry (anturi, tappi)
Seuraavaksi kirjoitetaan toiminto, jolla IoT-keskus kytketään aiemmin määritettyjen yhteysparametrien avulla.
def iothub_client_init (): asiakas = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) palautusasiakas
Lopuksi seuraavassa vaiheessa sekä lämpötila- että kosteustiedot lähetetään Azure Hubiin käyttäen alla olevan koodin mukaista muotoa. Lisäksi käytimme try and catch -menetelmää tunnistamaan, onko koodissa virheitä.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Tietojen lähettäminen IoT-keskukseen, poistu painamalla Ctrl-C"), kun taas True: msg_txt_formatted = MSG_SND.format (lämpötila = lämpötila, kosteus = kosteus) viesti = viesti (msg_txt_formatted) print ("Lähetetään viestiä: {}". format (message)) client.send_message (viesti) print ("Viesti lähetetty onnistuneesti") time.sleep (3)
Julkaise tietoja Azure IoT Hubissa - testaus
Kun koodi on kirjoitettu onnistuneesti, käännä se ja tarkista mahdolliset virheet. Jos koodilohko on käännetty onnistuneesti, suorita koodi. Terminaali-ikkunassa sinun pitäisi nähdä viesti "Viestin lähetys onnistui". Ikkunan kuvakaappaus näkyy alla:
Näet nyt tiedot Azure IoT Hubissa siirtymällä portaaliin ja napsauttamalla CLI-päätelaitetta ja suorittamalla seuraavat komennot korvaamalla tunnistetiedot siinä.
az iot-keskuksen monitoritapahtumat - hub-name XYZ --device-id XYZ
merkintä:
Korvaa XYZ keskittimen nimellä ja laitetunnuksella.
Kun olet suorittanut yllä olevan komennon, sinun pitäisi saada tiedot näytöllä alla esitetyllä tavalla. Nämä ovat samat tiedot, jotka lähetettiin Vadelma Pi: ltä.
Tämä merkitsee tämän opetusohjelman loppua, toivottavasti pidit artikkelista ja opit jotain uutta. Jos sinulla on kysyttävää artikkelista, voit jättää ne alla olevaan kommenttiosioon. Tai voit käyttää Elektroniikkafoorumiamme saadaksesi nopeamman ja paremman vastauksen.