- Wat is Microsoft Azure IoT Hub?
- Een Azure IoT Hub maken
- Componenten die nodig zijn om ons testcircuit voor Azure IoT met Raspberry Pi te bouwen
- Azure IoT met Raspberry Pi - hardwareschema
- Raspberry Pi programmeren om gegevens te publiceren op Azure IoT Hub
- Publiceer gegevens op Azure IoT Hub - testen
Azure IoT Hub, de cloud computing-service van Microsoft, stelt ontwikkelaars in staat om miljarden IoT-apparaten op één platform te verbinden, te bewaken en te beheren. Het wordt al gebruikt in verschillende IoT-toepassingen zoals domoticasystemen, beveiligings-, bewakings- en bewakingssystemen. Om de mogelijkheden van Azure IoT-hub te demonstreren, gaan we een klein circuit bouwen met de Raspberry Pi, een DHT11 temperatuur- en vochtigheidssensor, om de sensordata ermee te verwerken. Ten slotte zullen we sensorgegevens publiceren naar de Azure IoT-server met behulp van het MQTT-protocol. In deze tutorial leren we hoe je een Azure-server instelt en configureert en gegevens verzendt met een Raspberry Pi.
Wat is Microsoft Azure IoT Hub?
Azure IoT Hub is een verzameling beheerde services die IoT-apparaten kunnen verbinden, bewaken en besturen. Het omvat ook veilige communicatie voor apparaten, met datavisualisatie en analyse die de apparaatfabrikanten helpen bij het bouwen, implementeren en beheren van IoT-toepassingen met behulp van Azure Cloud. De Device-to-Cd-telemetriegegevens van Azure IoT Hub informeren ons over de status van de verbonden IoT-apparaten, en de Cloud-to-Device-berichten stellen ons in staat om opdrachten en meldingen naar de verbonden apparaten te sturen. Een voorbeeld hiervan kan zijn dat we met een slim domoticasysteem verschillende sensordata kunnen verzamelen en naar Azure IoT Hub kunnen sturen om ze te visualiseren, op te slaan en te beheren. We kunnen ook de uitvoerapparaten bedienen vanuit de Azure IoT Hub-interface.
Centrale hub voor bidirectionele communicatie voor IoT-toepassingen en apparaten ondersteunt zowel apparaat-cloud- als cloud-apparaatcommunicatie, het ondersteunt ook meerdere berichtpatronen zoals een apparaat-naar-cloudtelemetrie, het uploaden van bestanden vanaf apparaten en verzoek-antwoordmethoden en tot slot, we kunnen de verificatiemethode per apparaat gebruiken waarmee elk apparaat veilig verbinding kan maken met de IoT Hub. Nu u de basisprincipes van Azure IoT Hub heeft begrepen, gaan we verder met het instellen van het systeem.
Een Azure IoT Hub maken
We zijn klaar om alle benodigde instellingen uit te voeren die nodig zijn voor het opzetten van Microsoft Azure- services, maar zorg ervoor dat u een Microsoft-account hebt. Als u die niet heeft, kunt u zich gewoon aanmelden. Ga daarna naar de Azure-portal met portal.azure.com en log in.
Nadat u bent aangemeld, gaat u naar de Azure-startpagina, selecteert u de knop een resource maken en zoekt u naar IoT Hub in het veld Search the Marketplace. Selecteer IoT Hub in de zoekresultaten en selecteer vervolgens maken. De onderstaande afbeeldingen geven u een beter idee van het proces.
Vul de nodige details in om een IoT-hub te maken.
In het gedeelte Abonnement moet u het abonnement selecteren om het voor uw hub te gebruiken. In ons geval kiezen we voor een proefaccount en hebben we gekozen voor " Gratis proef" .
Vervolgens, in de Resource Group Section, selecteer uw resource groep . Als je er geen hebt, moet u een nieuwe door te klikken op het creëren van nieuwe maken en voer de naam van de bron.
In de regio afdeling, kunt u het dropdown menu gebruiken om de gewenste regio te selecteren.
In het Internet of Things Hub Naam afdeling, moet u e nter een naam voor uw hub. Dit moet uniek zijn. Met deze naam vindt alle nodige communicatie plaats.
Selecteer onder het tabblad "Grootte en schaal" " Gratis laag " en klik op Volgende. Klik vervolgens op "Review + Create". Het duurt enkele minuten om de IoT Hub te maken. Klik op de naam van de IoT Hub die u heeft gemaakt. Noteer de hostnaam in het venster, zoals weergegeven in de onderstaande afbeelding. Klik vervolgens op het Gedeelde toegangsbeleid in de Instellingen. Beleid voor gedeelde toegang wordt gemarkeerd in de onderstaande afbeelding. Klik op de optie iothubowner onder Beleid. Noteer de primaire sleutel en de verbindingsreeks-primaire sleutel voor toekomstige verwijzingen. Om nu een nieuw apparaat te registreren onder IoT Hub, klikt u op IoT-apparaten. Klik in het deelvenster Apparaatverkenner op Toevoegen om een apparaat aan de hub toe te voegen.
Vul de volgende informatie in op het tabblad Nieuwe apparaten.
- Apparaat-ID: voer de ID voor het apparaat in. Apparaat-ID's moeten uniek zijn.
- Verificatietype: Selecteer een symmetrische sleutel.
- Auto Generate Keys: Schakel dit selectievakje in.
- Apparaat verbinden met IoT Hub: klik op Inschakelen.
Nadat het apparaat is gemaakt, kunt u uw nieuw gemaakte apparaat vinden in het gedeelte Apparaatverkenner. Klik op de naam van het apparaat. Het toont de details van het apparaat. Noteer de primaire sleutel en de verbindingsreeks-primaire sleutel van het apparaat. Dit is belangrijk omdat we het nodig hebben voor communicatie.
Als dat is gebeurd, kunnen we doorgaan naar de hardware-kant van de dingen.
Componenten die nodig zijn om ons testcircuit voor Azure IoT met Raspberry Pi te bouwen
Omdat het hardwaregedeelte van deze schakeling erg eenvoudig is, is ook de componentvereiste erg eenvoudig. Een lijst met vereiste componenten wordt hieronder weergegeven.
- Raspberry Pi 3B (we kunnen ook andere modellen van Pi gebruiken)
- Micro SD-kaart-16 GB
- DHT11-sensor
- Micro USB 5V, 2.4A voeding
Azure IoT met Raspberry Pi - hardwareschema
Het volledige schakelschema voor het Azure IoT met Raspberry Pi- project wordt hieronder weergegeven, het is gebouwd met behulp van fritzing. Volg het schakelschema en de aansluitingen om de schakeling zelf te maken.
Het bovenstaande circuit verzendt temperatuur- en vochtigheidsgegevens naar Microsoft IoT Hub. In dit circuit hebben we een DHT11- sensor gebruikt om de temperatuur- en vochtigheidsgegevens te verzamelen en we gebruiken een Raspberry Pi 3B als een gegevensverwerkingsapparaat. De DHT11-sensor heeft drie pinnen. De VCC- en GND-pinnen worden gebruikt om 5V DC-voeding naar de sensor te geven en de data-outputpin van DHT11 is verbonden met GPIO4 van Raspberry Pi. Als u wilt leren hoe u de DHT11-temperatuur- en vochtigheidssensor met Raspberry Pi verbindt, kunt u ons vorige artikel over dit onderwerp raadplegen. We hebben deze sensor ook gebruikt om een IoT Raspberry Pi-weerstation te bouwen.
Raspberry Pi programmeren om gegevens te publiceren op Azure IoT Hub
Voordat we met de codering voor dit project beginnen, moeten we een Azure Cloud Shell (CLI) maken in de Azure Portal. Dit komt op veel manieren van pas. Klik daarvoor op de Azure cloud shell-knop in de portal zoals hieronder weergegeven. Klik vervolgens op de optie Opslagruimte maken, rood gemarkeerd.
Als u klaar bent, kunt u de CLI openen en de volgende opdrachten uitvoeren om de Azure-add-on ' s te installeren die worden gebruikt om de sensorgegevens weer te geven.
az extensie add --name azure-cli-iot-ext
Zodra dat is gebeurd, moeten we afhankelijkheden op de Raspberry Pi installeren om te communiceren met de DHT11-sensor en om het communicatieproces voor Azure IoT-services gemakkelijk te maken. Open daarvoor een Raspberry Pi-terminal om de afhankelijke pakketten te installeren die in het project worden gebruikt.
Eerst moeten we de DHT-bibliotheek voor Raspberry Pi downloaden, deze vervolgens uit de hoofdmap halen en de volgende opdracht uitvoeren om deze te installeren.
sudo python setup.py installeren
Na een succesvolle installatie voert u de volgende opdrachten uit om alle afhankelijke pakketten op Azure IoT Hub te installeren.
sudo pip3 installeer azure-iot-device sudo pip3 installeer azure-iot-hub sudo pip3 installeer azure-iothub-service-client sudo pip3 installeer azure-iothub-device-client
Zodra we alle vereisten hebben geïnstalleerd, is het tijd om de code in Python te schrijven. Om dat te doen, importeert u eerst alle bibliotheken:
importeren willekeurige import Adafruit_DHT import tijd van azure.iot.device import IoTHubDeviceClient, Message
In dit project gebruiken we pin 4 van de Raspberry Pi om de gegevens van de DHT11-gegevens te verwerken, dus het moet worden gedeclareerd zoals weergegeven.
sensor = Adafruit_DHT.DHT11 pin = 4
Vervolgens definiëren we de verbindingsreeks van de code. Vervang deze door uw apparaat-primaire verbindingsreeks die we eerder hebben opgeslagen.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Vervolgens maken we een array die wordt gebruikt om de gegevens naar Azure IoT Hub te sturen. Het kan worden gedaan zoals hieronder weergegeven.
MSG_SND = '{{"temperatuur": {temperatuur}, "vochtigheid": {vochtigheid}}}'
Vervolgens hebben we een while-lus gedefinieerd. In de while-lus worden zowel vochtigheids- als temperatuurgegevens verwerkt met behulp van de functie Adafruit_DHT.read_retry . Verder definiëren we twee speciale variabelen en kennen we de uitvoergegevens toe aan die variabelen.
while True: vochtigheid, temperatuur = Adafruit_DHT.read_retry (sensor, pin)
Vervolgens wordt een functie geschreven om de IoT Hub te verbinden met behulp van de verbindingsparameters die we eerder hebben gedefinieerd.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) return client
Ten slotte worden in de volgende stap zowel de temperatuur- als de vochtigheidsgegevens naar Azure Hub verzonden met de indeling zoals weergegeven in de onderstaande code. We hebben ook een try-and-catch-methode gebruikt om te bepalen of er een fout in de code zit.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Verzenden van gegevens naar IoT Hub, druk op Ctrl-C om af te sluiten") terwijl True: msg_txt_formatted = MSG_SND.format (temperatuur = temperatuur, vochtigheid = vochtigheid) bericht = Bericht (msg_txt_formatted) print ("Bericht wordt verzonden: {}". format (bericht)) client.send_message (bericht) print ("Bericht succesvol verzonden") time.sleep (3)
Publiceer gegevens op Azure IoT Hub - testen
Na het succesvol schrijven van de code, compileert u deze en controleert u op eventuele fouten. Als het codeblok met succes is gecompileerd, voert u de code uit. In het Terminal-venster zou u het bericht moeten zien met de tekst "Bericht succesvol verzonden". De screenshot van het venster wordt hieronder getoond:
Om de gegevens in Azure IoT Hub te zien, gaat u naar de portal en klikt u op de CLI-terminal en voert u de volgende opdrachten uit om uw referenties erin te vervangen.
az iot hub monitor-events --hub-naam XYZ --device-id XYZ
Notitie:
Vervang XYZ door uw hubnaam en apparaat-ID.
Nadat u de bovenstaande opdracht hebt uitgevoerd, moet u de gegevens ophalen zoals hieronder op het scherm wordt weergegeven. Dit zijn dezelfde gegevens die zijn verzonden vanaf Raspberry Pi.
Dit markeert het einde van deze tutorial, ik hoop dat je het artikel leuk vond en iets nieuws hebt geleerd. Als u vragen heeft over het artikel, kunt u deze achterlaten in het commentaargedeelte hieronder. Of u kunt ons Elektronicaforum gebruiken om een snellere en betere reactie te krijgen.