- Hva er Microsoft Azure IoT Hub?
- Opprette en Azure IoT Hub
- Komponenter som kreves for å bygge vår testkrets for Azure IoT med Raspberry Pi
- Azure IoT med Raspberry Pi - maskinvareskjema
- Programmering av Raspberry Pi for å publisere data på Azure IoT Hub
- Publiser data på Azure IoT Hub - testing
Azure IoT Hub, cloud computing-tjenesten fra Microsoft, lar utviklere koble til, overvåke og administrere milliarder av IoT-enheter på en enkelt plattform. Den brukes allerede i forskjellige IoT-applikasjoner som hjemmeautomatiseringssystemer, sikkerhet, overvåking og overvåkningssystemer. For å demonstrere funksjonene til Azure IoT-hub, skal vi bygge en liten krets med Raspberry Pi, en DHT11 temperatur- og fuktighetssensor, for å behandle sensordataene med den. Til slutt vil vi publisere sensordata til Azure IoT-serveren ved hjelp av MQTT-protokollen. I denne opplæringen vil vi lære å sette opp og konfigurere en Azure-server og sende data ved hjelp av en Raspberry Pi.
Hva er Microsoft Azure IoT Hub?
Azure IoT Hub er en samling av administrerte tjenester som kan koble til, overvåke og kontrollere IoT-enheter. Det inkluderer også sikker kommunikasjon for enheter, med datavisualisering og analyse som hjelper enhetsprodusentene med å bygge, distribuere og administrere IoT-applikasjoner ved hjelp av Azure cloud. Azure IoT Hub's Device-to-Cd telemetry data lar oss få vite om tilstanden til de tilkoblede IoT-enhetene, og Cloud-to-Device-meldingene gjør at vi kan sende kommandoer og varsler til de tilkoblede enhetene. Et eksempel kan være som å bruke et smart hjemmeautomatiseringssystem, vi kan samle forskjellige sensordata og sende dem til Azure IoT Hub for å visualisere, lagre og administrere dem. Vi kan også kontrollere utdataenhetene fra Azure IoT Hub-grensesnittet.
Sentralt knutepunkt for toveiskommunikasjon for IoT-applikasjon og enheter støtter både enhets-sky- og skyenhetskommunikasjon, den støtter også flere meldingsmønstre som en enhet til sky-telemetri, filopplasting fra enheter og forespørselssvarmetoder og til slutt, Vi kan bruke autentiseringsmetoden per enhet som gjør at hver enhet kan koble seg sikkert til IoT Hub. Nå som du har forstått det grunnleggende om Azure IoT Hub, la oss gå videre til å konfigurere systemet.
Opprette en Azure IoT Hub
Vi er klare til å gjøre alle nødvendige oppsett som kreves for å konfigurere Microsoft Azure- tjenester, men før det må du sørge for at du har en Microsoft-konto. Hvis du ikke har det, kan du bare registrere deg. Deretter går du til Azure-portalen ved hjelp av portal.azure.com og logger på.
Når du er logget inn, går du til Azure-hjemmesiden, velger Opprett en ressurs- knapp, og søk deretter etter IoT Hub i Søk på Marketplace- feltet. Velg IoT Hub fra søkeresultatene, og velg deretter Opprett. Bildene nedenfor vil gi deg en bedre ide om prosessen.
Fyll ut nødvendige detaljer for å opprette et IoT Hub.
I Abonnement- delen må du velge abonnementet for å bruke det til huben din. I vårt tilfelle velger vi en prøvekonto, og vi har valgt “ Gratis prøveperiode” .
Deretter velger du ressursgruppen i Ressursgruppeseksjonen . Hvis du ikke har en, må du opprette en ny ved å klikke på Opprett ny og angi navnet på Ressursen.
I regionseksjonen kan du bruke rullegardinmenyen til å velge ønsket region.
I IOT Hub Navn seksjonen, må du e nter et navn på hub. Dette må være unikt. All nødvendig kommunikasjon vil skje med dette navnet.
Under "Størrelse og skala" velger du " Free Tier " og klikker på Neste. Klikk deretter på “Review + Create”. Det tar noen minutter å opprette IoT Hub. Klikk på navnet på IoT Hub du opprettet. Noter vertsnavnet fra vinduet som vist på bildet nedenfor. Klikk deretter på retningslinjene for delt tilgang i Innstillinger. Retningslinjer for delt tilgang er uthevet i bildet nedenfor. Klikk på alternativet iothubowner under Policy. Merk ned Primærnøkkel og Tilkoblingsstreng-primærnøkkel for fremtidige referanser. For å registrere en ny enhet under IoT Hub, klikk nå på IoT-enheter. I Enhetsutforsker-ruten klikker du på Legg til for å legge til en enhet i huben.
Fyll ut følgende informasjon i fanen Nye enheter.
- Enhets-ID: Angi ID for enheten. Enhets-ID-er må være unike.
- Autentiseringstype: Velg en symmetrisk nøkkel.
- Generer nøkler automatisk: Merk av i denne avkrysningsboksen.
- Koble enheten til IoT Hub: Klikk Aktiver.
Når enheten er opprettet, kan du finne den nyopprettede enheten din i Enhetsutforsker-delen. Klikk på navnet på enheten. Det vil vise detaljene på enheten. Noter Primær-nøkkelen og Tilkoblingsstreng-primærnøkkelen til enheten. Dette er viktig ettersom vi trenger det for kommunikasjon.
Nå, når det er gjort, kan vi gå videre til maskinvaresiden av ting.
Komponenter som kreves for å bygge vår testkrets for Azure IoT med Raspberry Pi
Siden maskinvaredelen av denne kretsen er veldig enkel, er komponentkravet også veldig enkelt. En liste over nødvendige komponenter er vist nedenfor.
- Raspberry Pi 3B (Vi kan også bruke andre Pi-modeller)
- Micro SD-kort-16 GB
- DHT11-sensor
- Micro USB 5V, 2.4A strømforsyning
Azure IoT med Raspberry Pi - maskinvareskjema
Det komplette kretsskjemaet for Azure IoT med Raspberry Pi- prosjektet er vist nedenfor, det ble bygget ved hjelp av fritzing. Følg kretsskjemaet og tilkoblingene for å lage kretsen selv.
Ovennevnte krets sender temperatur- og fuktighetsdata til Microsoft IoT Hub. I denne kretsen har vi brukt en DHT11- sensor for å samle inn temperatur- og fuktighetsdata, og vi bruker en Raspberry Pi 3B som en databehandlingsenhet. DHT11-sensoren har tre pinner. VCC- og GND-pinnene brukes til å gi 5V DC-forsyning til sensoren, og datautgangspinnen til DHT11 er koblet til GPIO4 på Raspberry Pi. Hvis du vil lære hvordan du kobler DHT11 temperatur- og fuktighetssensor med Raspberry Pi, kan du sjekke vår forrige artikkel om emnet. Vi har også brukt denne sensoren til å bygge IoT Raspberry Pi Weather Station.
Programmering av Raspberry Pi for å publisere data på Azure IoT Hub
Før vi starter kodingen for dette prosjektet, må vi opprette et Azure cloud shell (CLI) i Azure-portalen. Dette vil være nyttig på mange måter. For det, klikk på Azure cloud shell-knappen i portalen som vist nedenfor. Klikk deretter på alternativet Opprett lagring, merket med rødt.
Når dette er gjort, kan du åpne CLI, og kjør følgende kommandoer for å installere Azure add-on' s som vil bli brukt for å vise sensordata.
az-utvidelse legge til - navn azure-cli-iot-ext
Når det er gjort, må vi installere avhengigheter av Raspberry Pi for å kommunisere med DHT11-sensoren og for å gjøre kommunikasjonsprosessen enkel for Azure IoT-tjenester. For det åpner du en Raspberry Pi Terminal for å installere de avhengige pakkene som brukes i prosjektet.
Først må vi laste ned DHT-biblioteket for Raspberry Pi, og deretter pakke det ut fra rotmappen og kjøre følgende kommando for å installere den.
sudo python setup.py install
Etter vellykket installasjon, kjør følgende kommandoer for å installere alle avhengige pakker på Azure IoT Hub.
sudo pip3 installere azure-iot-enhet sudo pip3 installere azure-iot-hub sudo pip3 installere azure-iothub-service-client sudo pip3 installere azure-iothub-device-client
Når vi har fullført installasjonen av alle forutsetningene, er det på tide å skrive koden i Python. For å gjøre det må du først importere alle bibliotekene:
importere tilfeldig import Adafruit_DHT importtid fra azure.iot.device import IoTHubDeviceClient, Message
I dette prosjektet bruker vi pin 4 i Raspberry Pi til å behandle dataene fra DHT11-dataene, så det må erklæres som vist.
sensor = Adafruit_DHT.DHT11 pin = 4
Deretter definerer vi forbindelsestrengen til koden. Erstatt den med din enhets-primære tilkoblingsstreng som vi lagret tidligere.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Deretter oppretter vi en matrise som skal brukes til å sende dataene til Azure IoT Hub. Det kan gjøres som vist nedenfor.
MSG_SND = '{{"temperatur": {temperatur}, "fuktighet": {fuktighet}}}'
Deretter har vi definert en while-løkke. I mens-løkken behandles både fuktighets- og temperaturdata ved hjelp av funksjonen Adafruit_DHT.read_retry . Videre definerer vi to spesielle variabler og tilordner utdataene til disse variablene.
while True: fuktighet, temperatur = Adafruit_DHT.read_retry (sensor, pin)
Deretter skrives en funksjon for å koble IoT Hub ved hjelp av tilkoblingsparametrene som vi tidligere har definert.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) return client
Til slutt, i neste trinn, sendes både temperatur- og fuktighetsdataene til Azure Hub, ved hjelp av formatet som vist i koden nedenfor. Vi brukte også en prøve og fangst-metode for å identifisere om det er noen feil i koden.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Sender data til IoT Hub, trykk Ctrl-C for å avslutte") mens True: msg_txt_formatted = MSG_SND.format (temperatur = temperatur, fuktighet = fuktighet) melding = Melding (msg_txt_formatted) print ("Sender melding: {}". format (melding)) client.send_message (melding) print ("Melding sendt") time.sleep (3)
Publiser data på Azure IoT Hub - testing
Etter å ha skrevet koden, kompiler den og se etter eventuelle feil. Hvis kodeblokken er kompilert, kjører du koden. I terminalvinduet skal du se meldingen "Melding vellykket sendt". Skjermbildet av vinduet er vist nedenfor:
Nå, for å se dataene i Azure IoT Hub, gå til portalen og klikk på CLI-terminalen og kjør følgende kommandoer for å erstatte legitimasjonen din i den.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Merk:
Erstatt XYZ med Hub-navnet ditt og enhets-ID-en.
Etter å ha kjørt kommandoen ovenfor, bør du få dataene som vist nedenfor på skjermen. Dette er de samme dataene som ble sendt fra Raspberry Pi.
Dette markerer slutten på denne veiledningen, jeg håper du likte artikkelen og lærte noe nytt. Hvis du har spørsmål angående artikkelen, kan du legge dem igjen i kommentarfeltet nedenfor. Eller du kan bruke vårt elektronikkforum for å få raskere og bedre respons.