- Vad är Microsoft Azure IoT Hub?
- Skapa en Azure IoT Hub
- Komponenter som krävs för att bygga vår testkrets för Azure IoT med Raspberry Pi
- Azure IoT med Raspberry Pi - Schematisk hårdvara
- Programmering av Raspberry Pi för att publicera data på Azure IoT Hub
- Publicera data på Azure IoT Hub - Testing
Azure IoT Hub, molntjänsten från Microsoft, gör det möjligt för utvecklare att ansluta, övervaka och hantera miljarder IoT-enheter på en enda plattform. Den används redan i olika IoT-applikationer som hemautomationssystem, säkerhet, övervakning och övervakningssystem. För att visa funktionerna i Azure IoT-hubben kommer vi att bygga en liten krets med Raspberry Pi, en DHT11 temperatur- och luftfuktighetssensor för att bearbeta sensordata med den. Slutligen kommer vi att publicera sensordata till Azure IoT-servern med hjälp av MQTT-protokollet. I den här handledningen lär vi oss hur man konfigurerar och konfigurerar en Azure-server och skickar data med en Raspberry Pi.
Vad är Microsoft Azure IoT Hub?
Azure IoT Hub är en samling hanterade tjänster som kan ansluta, övervaka och styra IoT-enheter. Det inkluderar också säker kommunikation för enheter, med datavisualisering och analys som hjälper enhetstillverkarna att bygga, distribuera och hantera IoT-applikationer med hjälp av Azure cloud. Med Azure IoT Hub's Device-to-Cd-telemeterdata får vi veta om tillståndet för de anslutna IoT-enheterna och Cloud-to-Device-meddelanden gör det möjligt för oss att skicka kommandon och meddelanden till de anslutna enheterna. Ett exempel kan vara som om vi använder ett smart hemautomationssystem kan vi samla in olika sensordata och skicka dem till Azure IoT Hub för att visualisera, lagra och hantera dem. Vi kan också styra utdataenheterna från Azure IoT Hub-gränssnittet.
Centralt nav för dubbelriktad kommunikation för IoT-applikation och enheter stöder både enhetsmoln och moln-enhetskommunikation, det stöder också flera meddelandemönster som en enhet till molntelemetri, filöverföring från enheter och förfrågnings-svarmetoder och slutligen, vi kan använda autentiseringsmetoden per enhet som gör att varje enhet kan ansluta säkert till IoT Hub. Nu, som du har förstått grunderna i Azure IoT Hub, låt oss gå vidare till att konfigurera systemet.
Skapa en Azure IoT Hub
Vi är redo att göra alla nödvändiga inställningar som krävs för att konfigurera Microsoft Azure- tjänster men innan det, se till att du har ett Microsoft-konto. Om du inte har det kan du helt enkelt registrera dig. Gå sedan till Azure-portalen med portal.azure.com och logga in.
När du är inloggad, gå till Azure-hemsidan, välj knappen Skapa en resurs och sök sedan efter IoT Hub i fältet Sök på marknadsplatsen. Välj IoT Hub från sökresultaten och välj sedan Skapa. Bilderna nedan ger dig en bättre uppfattning om processen.
Fyll i nödvändiga uppgifter för att skapa en IoT Hub.
I avsnittet Prenumeration måste du välja prenumerationen för att använda den för ditt nav. I vårt fall väljer vi ett testkonto och vi har valt " Gratis prov" .
Därefter i Resource Group avsnitt välja resursgrupp . Om du inte har en måste du skapa en ny genom att klicka på Skapa ny och ange namnet på resursen.
I Regionavsnittet kan du använda rullgardinsmenyn för att välja din region.
I IoT Hub Namn avsnitt måste du e nter ett namn för din hubb. Detta måste vara unikt. All nödvändig kommunikation kommer att ske med detta namn.
Under fliken "Storlek och skala", välj " Fri nivå " och klicka på Nästa. Klicka sedan på “Review + Create”. Det tar några minuter att skapa IoT Hub. Klicka på namnet på IoT Hub du skapade. Anteckna värdnamnet från fönstret som visas i bilden nedan. Klicka sedan på policyerna för delad åtkomst i inställningarna. Policyer för delad åtkomst markeras i bilden nedan. Klicka på alternativet iothubowner under Policy. Anteckna primärnyckeln och anslutningssträngens primärnyckel för framtida referenser. Klicka nu på IoT-enheter för att registrera en ny enhet under IoT Hub . I fönstret Enhetsutforskare klickar du på Lägg till för att lägga till en enhet i navet.
Fyll i följande information på fliken Nya enheter.
- Enhets-ID: Ange Id för enheten. Enhets-id: n måste vara unika.
- Autentiseringstyp: Välj en symmetrisk nyckel.
- Skapa nycklar automatiskt: Markera den här kryssrutan.
- Anslut enhet till IoT Hub: Klicka på Aktivera.
När enheten har skapats kan du hitta din nyskapade enhet i avsnittet Enhetsutforskare. Klicka på enhetens namn. Det kommer att visa detaljerna på enheten. Anteckna enhetens primära nyckel och anslutningssträngens primära nyckel. Detta är viktigt eftersom vi behöver det för kommunikation.
Nu när det är gjort kan vi gå vidare till hårdvarusidan av saker.
Komponenter som krävs för att bygga vår testkrets för Azure IoT med Raspberry Pi
Eftersom hårdvarudelen av denna krets är väldigt enkel är komponentkravet också mycket enkelt. En lista över nödvändiga komponenter visas nedan.
- Raspberry Pi 3B (Vi kan också använda alla andra modeller av Pi)
- Micro SD-kort-16 GB
- DHT11-sensor
- Micro USB 5V, 2,4A strömförsörjning
Azure IoT med Raspberry Pi - Schematisk hårdvara
Det fullständiga kretsschemat för Azure IoT med Raspberry Pi- projektet visas nedan, det byggdes med hjälp av fritzing. Följ kretsschemat och anslutningarna för att skapa kretsen själv.
Ovanstående krets skickar temperatur- och luftfuktighetsdata till Microsoft IoT Hub. I denna krets har vi använt en DHT11- sensor för att samla in temperatur- och luftfuktighetsdata och vi använder en Raspberry Pi 3B som en databehandlingsenhet. DHT11-sensorn har tre stift. VCC- och GND-stiften används för att ge 5V DC-matning till sensorn och datautgångsstiftet på DHT11 är anslutet till GPIO4 i Raspberry Pi. Om du vill lära dig hur man kopplar ihop DHT11 temperatur- och luftfuktighetssensorn med Raspberry Pi kan du läsa vår tidigare artikel om ämnet. Vi har också använt denna sensor för att bygga IoT Raspberry Pi Weather Station.
Programmering av Raspberry Pi för att publicera data på Azure IoT Hub
Innan vi startar kodningen för detta projekt måste vi skapa ett Azure cloud shell (CLI) i Azure-portalen. Detta kommer att vara till nytta på många sätt. För det, klicka på Azure cloud shell-knappen i portalen som visas nedan. Klicka sedan på alternativet skapa lagring, markerat med rött.
När detta är gjort kan du öppna CLI och kör följande kommandon för att installera Azure add-on' s som kommer att användas för att visa sensordata.
az-tillägg lägg till - namn azure-cli-iot-ext
När det är klart måste vi installera beroenden på Raspberry Pi för att kommunicera med DHT11-sensorn och för att göra kommunikationsprocessen enkel för Azure IoT-tjänster. För att öppna en Raspberry Pi Terminal för att installera de beroende paket som används i projektet.
Först måste vi ladda ner DHT-biblioteket för Raspberry Pi, sedan extrahera det från rotmappen och köra följande kommando för att installera det.
sudo python setup.py installera
Efter lyckad installation kör du följande kommandon för att installera alla beroende paket på Azure IoT Hub.
sudo pip3 installera azure-iot-enhet sudo pip3 installera azure-iot-hub sudo pip3 installera azure-iothub-service-client sudo pip3 installera azure-iothub-device-client
När vi har installerat alla förutsättningar är det dags att skriva koden i Python. För att göra det, först importera alla bibliotek:
importera slumpmässig import Adafruit_DHT import tid från azure.iot.device import IoTHubDeviceClient, Meddelande
I det här projektet använder vi stift 4 i Raspberry Pi för att bearbeta data från DHT11-data, så det måste deklareras som visat.
sensor = Adafruit_DHT.DHT11 stift = 4
Därefter definierar vi kodens anslutningssträng. Byt ut den med din enhets-primära anslutningssträng som vi sparade tidigare.
CONNECTION_STRING = "Värdnamn = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
Därefter skapar vi en matris som kommer att användas för att skicka data till Azure IoT Hub. Det kan göras enligt nedan.
MSG_SND = '{{"temperatur": {temperatur}, "fuktighet": {fuktighet}}}'
Därefter har vi definierat en while-slinga. I while-slingan bearbetas både fukt- och temperaturdata med funktionen Adafruit_DHT.read_retry . Dessutom definierar vi två speciella variabler och tilldelar utdata till dessa variabler.
while True: fuktighet, temperatur = Adafruit_DHT.read_retry (sensor, stift)
Därefter skrivs en funktion för att ansluta IoT Hub med de anslutningsparametrar som vi tidigare har definierat.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) returklient
Slutligen, i nästa steg, skickas både temperatur- och fuktighetsdata till Azure Hub med formatet som visas i koden nedan. Vi använde också en försök och fångstmetod för att identifiera om det finns något fel i koden.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Skickar data till IoT Hub, tryck Ctrl-C för att avsluta") medan True: msg_txt_formatted = MSG_SND.format (temperatur = temperatur, luftfuktighet = fuktighet) meddelande = Meddelande msg_txt_formatted) skriva ut ("Skickar meddelande: {}". format (meddelande)) client.send_message (meddelande) print ("Message sent sent") time.sleep (3)
Publicera data på Azure IoT Hub - Testing
Efter att ha skrivit koden, kompilera den och kontrollera om det finns några fel. Om kodblocket har kompilerats framgångsrikt, kör sedan koden. I terminalfönstret ska meddelandet "Meddelande skickat skickat" visas. Fönstrets skärmdump visas nedan:
För att se data i Azure IoT Hub, gå till portalen och klicka på CLI-terminalen och kör följande kommandon för att ersätta dina referenser i den.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Notera:
Ersätt XYZ med ditt Hub-namn och enhets-id.
Efter att ha kört ovanstående kommando bör du få data som visas nedan på skärmen. Det här är samma data som skickades från Raspberry Pi.
Detta markerar slutet på denna handledning, jag hoppas att du gillade artikeln och lärde dig något nytt. Om du har några frågor angående artikeln kan du lämna dem i kommentarsektionen nedan. Eller så kan du använda vårt elektronikforum för att få ett snabbare och bättre svar.