Zelfstudie: Verbinding maken voorbeeld van een IoT Plug en Play-apparaattoepassing die wordt uitgevoerd op Linux of Windows om IoT Hub
In deze quickstart ziet u hoe u een voorbeeld van een IoT Plug and Play-apparaattoepassing maakt, hoe u de toepassing verbindt met uw IoT-hub en hoe u het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing is geschreven in C en is opgenomen in de Azure IoT device SDK voor C. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.
Vereisten
Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.
U kunt deze quickstart uitvoeren in Linux of Windows. De shell-opdrachten in deze quickstart volgen de Linux-conventie voor padscheidingstekens /. Als u de stappen uitvoert in Windows, moet u deze scheidingstekens vervangen door \.
De vereisten verschillen per besturingssysteem:
Linux
In deze quickstart wordt ervan uitgegaan dat u Ubuntu Linux gebruikt. De stappen in deze quickstart zijn getest met Ubuntu 18.04.
Om deze quickstart in Linux te voltooien, installeert u de volgende software in uw lokale Linux-omgeving:
Installeer GCC, Git, cmake en alle vereiste afhankelijkheden met behulp van de opdracht apt-get:
sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev
Controleer of de versie van cmake hoger is dan 2.8.12 en of de versie van GCC hoger dan 4.4.7.
cmake --version
gcc --version
Windows
Om deze quickstart in Windows te voltooien, installeert u de volgende software in uw lokale Windows-omgeving:
- Visual Studio (Community, Professional of Enterprise): zorg ervoor dat u de workload Desktop Development with C++ kiest tijdens het installeren van Visual Studio.
- Git.
- CMake.
De code downloaden
In deze quickstart bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de Azure IoT Hub Device C-SDK.
Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Azure IoT C-SDK’s en -bibliotheken te klonen op deze locatie:
git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init
Deze bewerking kan enkele minuten in beslag nemen.
De code bouwen
U gebruikt de SDK van het apparaat om de opgenomen voorbeeldcode te maken:
Maak een submap cmake in de hoofdmap van de device-SDK en navigeer naar die map:
cd azure-iot-sdk-c mkdir cmake cd cmakeVoer de volgende opdrachten uit om de SDK en voorbeelden te genereren:
cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF .. cmake --build .
Tip
In Windows gebruikt u Visual Studio 2019 om de oplossing te openen die is gegenereerd met de opdracht cmake. Open het projectbestand azure_iot_sdks.sln in de map cmake en stel het project pnp_simple_thermostat in als het opstartproject in de oplossing. U kunt het voorbeeld nu in Visual Studio bouwen en uitvoeren in foutopsporingsmodus.
Het apparaatvoorbeeld uitvoeren
In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:
- IOTHUB_DEVICE_SECURITY_TYPE met de waarde
DPS - IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde
my-pnp-device. - IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
- IOTHUB_DEVICE_DPS_ENDPOINT met de waarde
global.azure-devices-provisioning.net.
Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.
U kunt als volgt de voorbeeldtoepassing in de SDK uitvoeren waarmee een IoT Plug en Play-apparaat wordt gesimuleerd en telemetrie van het apparaat wordt verzonden naar uw IoT-hub:
Navigeer vanuit de map cmake naar de map met het uitvoerbare bestand en voer het uit:
# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe
Tip
Om de code-uitvoering in Visual Studio in Windows bij te houden, voegt u een onderbrekingspunt toe aan de functie main in het bestand pnp_simple_thermostat.c.
Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.
Code valideren met Azure IoT Explorer
Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.
Open Azure IoT Explorer.
Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.
Selecteer op de pagina IoT Plug en Play-instellingen de optie + Toevoegen > Lokale map, en selecteer de lokale map met modellen waarin u uw modelbestanden hebt opgeslagen.
Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.
Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.
In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.
Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.
U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele aanvullende onderdelen. Selecteer een onderdeel om mee te werken.
Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.
Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.
Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.
Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.
Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.
De code bekijken
Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het DTDL-modelbestand voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.
De apparaatcode maakt gebruik van de standaardfunctie om verbinding te maken met uw IoT-hub:
deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)
Het apparaat verzendt de model-id van het DTDL-model dat het in de verbindingsaanvraag implementeert. Een apparaat dat een model-id verzendt, is een IoT Plug and Play-apparaat:
static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";
...
IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)
De code die eigenschappen bijwerkt, opdrachten verwerkt en telemetrie verzendt, is identiek aan de code voor een apparaat die de IoT Plug and Play-conventies niet gebruikt.
De code maakt gebruik van de Parson-bibliotheek om JSON-objecten in de payloads te parseren die worden verzonden vanuit uw IoT-hub:
// JSON parser
#include "parson.h"
Resources opschonen
Zie Resources ops schonen als u klaar bent met de quickstarts en zelfstudies.
In deze quickstart ziet u hoe u een voorbeeld van een IoT Plug and Play-apparaattoepassing maakt, hoe u de toepassing verbindt met uw IoT-hub en hoe u het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven in C# en is inbegrepen in de Azure IoT Samples for C#. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.
Vereisten
Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.
Als u deze quickstart in Windows wilt uitvoeren, moet de volgende software op uw ontwikkelcomputer zijn geïnstalleerd:
De code downloaden
In deze quickstart bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de opslagplaats Azure IoT Samples for C#.
Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Microsoft Azure IoT Samples for C# (.NET) te klonen naar deze locatie:
git clone https://github.com/Azure-Samples/azure-iot-samples-csharp.git
De code bouwen
U kunt het voorbeeld nu in Visual Studio bouwen en uitvoeren in foutopsporingsmodus.
Open het projectbestand azure-iot-samples-csharp\iot-hub\Samples\device\PnpDeviceSamples\Thermostat\Thermostat.csproj in Visual Studio 2019.
Ga in Visual Studio naar Project > Thermostaateigenschappen > Fouten opsporen. Voeg vervolgens de volgende omgevingsvariabelen toe aan het project:
Naam Waarde IOTHUB_DEVICE_SECURITY_TYPE DPS IOTHUB_DEVICE_DPS_ENDPOINT global.azure-devices-provisioning.net IOTHUB_DEVICE_DPS_ID_SCOPE De waarde die u hebt genoteerd toen u Uw omgeving instellen hebt uitgevoerd IOTHUB_DEVICE_DPS_DEVICE_ID my-pnp-device IOTHUB_DEVICE_DPS_DEVICE_KEY De waarde die u hebt genoteerd toen u Uw omgeving instellen hebt uitgevoerd
U kunt het voorbeeld nu in Visual Studio bouwen en uitvoeren in foutopsporingsmodus.
Het apparaatvoorbeeld uitvoeren
Om de code-uitvoering in Visual Studio in Windows bij te houden, voegt u een onderbrekingspunt toe aan de functie main in het bestand program.cs.
Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.
Code valideren met Azure IoT Explorer
Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.
Open Azure IoT Explorer.
Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.
Selecteer op de pagina IoT Plug en Play-instellingen de optie + Toevoegen > Lokale map, en selecteer de lokale map met modellen waarin u uw modelbestanden hebt opgeslagen.
Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.
Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.
In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.
Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.
U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele aanvullende onderdelen. Selecteer een onderdeel om mee te werken.
Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.
Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.
Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.
Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.
Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.
De code bekijken
Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het Digital Twins Definition Language-modelbestand (DTDL) voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.
De apparaatcode maakt verbinding met uw IoT-hub met behulp van de standaardmethode CreateFromConnectionString. Het apparaat verzendt de model-id van het DTDL-model dat het in de verbindingsaanvraag implementeert. Een apparaat dat een model-id verzendt, is een IoT Plug and Play-apparaat:
private static void InitializeDeviceClientAsync()
{
var options = new ClientOptions
{
ModelId = ModelId,
};
s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
{
s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
});
}
De model-id wordt in de code opgeslagen, zoals weergegeven in het volgende fragment:
private const string ModelId = "dtmi:com:example:Thermostat;1";
De code die eigenschappen bijwerkt, opdrachten verwerkt en telemetrie verzendt, is identiek aan de code voor een apparaat die de IoT Plug and Play-conventies niet gebruikt.
Het voorbeeld maakt gebruik van een JSON-bibliotheek om JSON-objecten in de nettoladingen te parseren die worden verzonden vanuit uw IoT-hub:
using Newtonsoft.Json;
...
DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);
Resources opschonen
Zie Resources ops schonen als u klaar bent met de quickstarts en zelfstudies.
In deze quickstart ziet u hoe u een voorbeeld van een IoT Plug and Play-apparaattoepassing maakt, hoe u de toepassing verbindt met uw IoT-hub en hoe u het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven in Java en is inbegrepen in de Azure IoT device-SDK voor Java. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.
Vereisten
Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.
Om deze quickstart in Windows te voltooien, installeert u de volgende software in uw lokale Windows-omgeving:
- Java SE Development Kit 8. In Java-langetermijnondersteuning voor Azure en Azure Stack onder Langetermijnondersteuning selecteert u Java 8.
- Apache Maven 3.
De code downloaden
In deze quickstart bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de Azure IoT Hub Device Java-SDK.
Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Azure IoT Java-SDK’s en -bibliotheken te klonen op deze locatie:
git clone https://github.com/Azure/azure-iot-sdk-java.git
De code bouwen
Ga in Windows naar de hoofdmap van de gekloonde Java-SDK-opslagplaats.
Voer de volgende opdracht uit om de voorbeeldtoepassing te maken:
mvn install -T 2C -DskipTests
Het apparaatvoorbeeld uitvoeren
In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:
- IOTHUB_DEVICE_SECURITY_TYPE met de waarde
DPS - IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde
my-pnp-device. - IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
- IOTHUB_DEVICE_DPS_ENDPOINT met de waarde
global.azure-devices-provisioning.net.
Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.
Ga naar de map \device\iot-device-samples\pnp-device-sample\thermostat-device-sample.
Voer de volgende opdracht uit om de voorbeeldtoepassing uit te voeren:
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"
Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.
Code valideren met Azure IoT Explorer
Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.
Open Azure IoT Explorer.
Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.
Selecteer op de pagina IoT Plug en Play-instellingen de optie + Toevoegen > Lokale map, en selecteer de lokale map met modellen waarin u uw modelbestanden hebt opgeslagen.
Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.
Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.
In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.
Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.
U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele aanvullende onderdelen. Selecteer een onderdeel om mee te werken.
Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.
Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.
Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.
Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.
Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.
De code bekijken
Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het DTDL-modelbestand voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.
De apparaatcode maakt gebruik van de standaard DeviceClient-klasse om verbinding te maken met uw IoT-hub. Het apparaat verzendt de model-id van het DTDL-model dat het in de verbindingsaanvraag implementeert. Een apparaat dat een model-id verzendt, is een IoT Plug and Play-apparaat:
private static void initializeDeviceClient() throws URISyntaxException, IOException {
ClientOptions options = new ClientOptions();
options.setModelId(MODEL_ID);
deviceClient = new DeviceClient(deviceConnectionString, protocol, options);
deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);
if (throwable != null) {
log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
throwable.printStackTrace();
}
}, deviceClient);
deviceClient.open();
}
De model-id wordt in de code opgeslagen, zoals weergegeven in het volgende fragment:
private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";
De code die eigenschappen bijwerkt, opdrachten verwerkt en telemetrie verzendt, is identiek aan de code voor een apparaat die de IoT Plug and Play-conventies niet gebruikt.
Het voorbeeld maakt gebruik van een JSON-bibliotheek om JSON-objecten in de nettoladingen te parseren die worden verzonden vanuit uw IoT-hub:
import com.google.gson.Gson;
...
Date since = new Gson().fromJson(jsonRequest, Date.class);
Resources opschonen
Zie Resources ops schonen als u klaar bent met de quickstarts en zelfstudies.
In deze quickstart ziet u hoe u een voorbeeld van een IoT Plug and Play-apparaattoepassing maakt, hoe u de toepassing verbindt met uw IoT-hub en hoe u het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven in Node.js en is opgenomen in de Azure IoT Device-SDK voor Node.js. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.
Vereisten
Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.
Als u deze quickstart wilt uitvoeren, moet Node.js op uw ontwikkelcomputer zijn geïnstalleerd. U kunt de nieuwste aanbevolen omgeving voor meerdere platforms downloaden van nodejs.org.
Gebruik de volgende opdracht om de huidige versie van Node.js op uw ontwikkelcomputer te controleren:
node --version
De code downloaden
In deze quickstart bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de Azure IoT Hub Device C#-SDK voor Node.js.
Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Microsoft Azure IoT SDK voor Node.js te klonen op deze locatie:
git clone https://github.com/Azure/azure-iot-sdk-node
Vereiste bibliotheken installeren
U gebruikt de SDK van het apparaat om de opgenomen voorbeeldcode te maken. De toepassing die u bouwt, simuleert een apparaat dat is verbonden met een IoT-hub. De toepassing verzendt telemetrie en eigenschappen en ontvangt opdrachten.
Ga in een lokaal terminalvenster naar de map van de gekloonde opslagplaats en navigeer naar de map /azure-iot-sdk-node/device/samples/javascript. Voer vervolgens de volgende opdracht uit om de vereiste bibliotheken te installeren:
npm installConfigureer de omgevingswaarde met de verbindingsreeks voor het apparaat die u eerder hebt genoteerd:
set IOTHUB_DEVICE_CONNECTION_STRING=<YourDeviceConnectionString>
Het voorbeeldapparaat uitvoeren
Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het DTDL-modelbestand voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.
Open het pnp_simple_thermostat.js bestand. In dit bestand ziet u hoe u het volgende kunt doen:
- De vereiste interfaces importeren.
- Een handler voor updates en een handler voor opdrachten schrijven.
- De gewenste patches voor eigenschappen verwerken en telemetrie verzenden.
- Uw apparaat desgewenst inrichten met behulp van Azure Device Provisioning Service (DPS).
In de main-functie kunt u zien hoe alles bij elkaar komt:
- Maak het apparaat met behulp van de tekenreeks voor verbinding of richt het apparaat in met behulp van DPS.
- Gebruik de optie modelID om het IoT Plug en Play-apparaatmodel op te geven.
- Schakel de opdracht-handler in.
- Verzend telemetrie van het apparaat naar uw hub.
- Haal de apparaatdubbel op en werk de gerapporteerde eigenschappen bij.
- Schakel de gewenste handler voor het bijwerken van eigenschappen in.
In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:
- IOTHUB_DEVICE_SECURITY_TYPE met de waarde
DPS - IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde
my-pnp-device. - IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
- IOTHUB_DEVICE_DPS_ENDPOINT met de waarde
global.azure-devices-provisioning.net.
Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.
Voer de voorbeeldtoepassing uit om een IoT Plug en Play-apparaat te simuleren dat telemetrie verzendt naar uw IoT-hub. Gebruik de volgende opdracht om de voorbeeldtoepassing uit te voeren:
node pnp_simple_thermostat.js
U ziet de volgende uitvoer, wat aangeeft dat het apparaat nu telemetriegegevens naar de hub stuurt en nu klaar is om opdrachten en updates van eigenschappen te ontvangen.

Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.
Code valideren met Azure IoT Explorer
Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.
Open Azure IoT Explorer.
Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.
Selecteer op de pagina IoT Plug en Play-instellingen de optie + Toevoegen > Lokale map, en selecteer de lokale map met modellen waarin u uw modelbestanden hebt opgeslagen.
Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.
Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.
In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.
Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.
U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele aanvullende onderdelen. Selecteer een onderdeel om mee te werken.
Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.
Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.
Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.
Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.
Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.
Resources opschonen
Zie Resources ops schonen als u klaar bent met de quickstarts en zelfstudies.
In deze quickstart ziet u hoe u een voorbeeld van een IoT Plug and Play-apparaattoepassing maakt, hoe u de toepassing verbindt met uw IoT-hub en hoe u het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven voor Python en is inbegrepen in de Azure IoT Hub Device SDK for Python. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.
Vereisten
Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.
Als u deze quickstart wilt uitvoeren, moet Python 3.7 op uw ontwikkelcomputer zijn geïnstalleerd. U kunt de nieuwste aanbevolen omgeving voor meerdere platforms downloaden van python.org. U kunt uw Python-versie controleren met de volgende opdracht:
python --version
Installeer het pakket in uw lokale Python-omgeving als volgt:
pip install azure-iot-device
Kloon de IoT-opslagplaats van de Python-SDK en bekijk master:
git clone https://github.com/Azure/azure-iot-sdk-python
Het voorbeeldapparaat uitvoeren
De map azure-iot-sdk-python\azure-iot-device\samples\pnp bevat de voorbeeldcode voor het IoT Plug en Play-apparaat. In deze quickstart wordt het bestand simple_thermostat.py gebruikt. Met deze voorbeeldcode wordt een apparaat geïmplementeerd dat compatibel is met IoT Plug. In de voorbeeldcode wordt gebruikgemaakt van de clientbibliotheek van het Azure IoT Python-apparaat.
Open het bestand simple_thermostat.py in een teksteditor. U ziet het volgende:
Het bestand definieert één dubbele model-id (DTMI) van een apparaat die een unieke aanduiding vormt voor de thermostaat. Er moet een DTMI bekend zijn bij de gebruiker, afhankelijk van het scenario voor de implementatie van het apparaat. In het huidige voorbeeld representeert het model een thermostaat met telemetrie, eigenschappen en opdrachten die zijn gekoppeld aan het bewaken van de temperatuur.
Bevat functies voor het definiëren van implementaties van opdrachthandlers. U schrijft deze handlers om te definiëren hoe het apparaat reageert op opdrachtaanvragen.
Heeft een functie om een opdrachtrespons te definiëren. U kunt een opdrachtrespons maken om een antwoord terug te sturen naar uw IoT-hub.
Hiermee wordt een functie voor het invoeren van toetsenbordaanslagen gedefinieerd, waarmee u de toepassing kunt afsluiten.
Heeft een hoofdfunctie. De hoofdfunctie:
De apparaat-SDK gebruikt om een apparaatclient te maken en verbinding te maken met uw IoT-hub.
Werkt de eigenschappen bij. Het model dat we gebruiken, Thermostaat, definieert
targetTemperatureenmaxTempSinceLastRebootals de twee eigenschappen voor onze Thermostaat en zullen dus worden gebruikt. Eigenschappen worden bijgewerkt met behulp van de methodepatch_twin_reported_propertiesdie wordt gedefinieerd opdevice_client.Begint te luisteren naar opdrachtaanvrage. Hiervoor wordt gebruikgemaakt van de functie execute_command_listener. De functie stelt een listener in om naar opdrachtverzoeken te luisteren die afkomstig zijn van de service. Wanneer u de listener instelt, geeft u een
method_name,user_command_handlerencreate_user_response_handlerop.- De functie
user_command_handlerdefinieert wat het apparaat moet doen wanneer het een opdracht ontvangt. Als uw wekker bijvoorbeeld afgaat, is het effect van deze opdracht dat u wakker wordt. Dit kunt u zien als het effect van de opdracht die wordt aangeroepen. - De functie
create_user_response_handlermaakt een antwoord aan dat naar uw IoT-hub verzonden kan worden wanneer een opdracht met succes wordt uitgevoerd. Als uw wekker bijvoorbeeld afgaat, reageert u door op Snooze te drukken, wat feedback is voor de service. U kunt dit zien als het antwoord dat u de service geeft. U kunt dit antwoord bekijken in de portal.
- De functie
Begint telemetrie te verzenden. De pnp_send_telemetry is gedefinieerd in het bestand pnp_methods.py. De voorbeeldcode gebruikt een lus om deze functie elke acht seconden aan te roepen.
Schakelt alle listeners en taken uit, en sluit de lus af wanneer u op Q of q drukt.
In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:
- IOTHUB_DEVICE_SECURITY_TYPE met de waarde
DPS - IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde
my-pnp-device. - IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
- IOTHUB_DEVICE_DPS_ENDPOINT met de waarde
global.azure-devices-provisioning.net.
Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.
Nu u de code hebt gezien, gebruikt u de volgende opdracht om het voorbeeld uit te voeren:
python simple_thermostat.py
U ziet de volgende uitvoer, wat aangeeft dat het apparaat telemetriegegevens naar de hub stuurt en nu klaar is om opdrachten en updates van eigenschappen te ontvangen:
Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message
Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.
Code valideren met Azure IoT Explorer
Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.
Open Azure IoT Explorer.
Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.
Selecteer op de pagina IoT Plug en Play-instellingen de optie + Toevoegen > Lokale map, en selecteer de lokale map met modellen waarin u uw modelbestanden hebt opgeslagen.
Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.
Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.
In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.
Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.
U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele aanvullende onderdelen. Selecteer een onderdeel om mee te werken.
Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.
Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.
Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.
Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.
Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.
Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.
Resources opschonen
Zie Resources ops schonen als u klaar bent met de quickstarts en zelfstudies.
Als u ontwikkelt voor beperkte apparaten, kunt u IoT-Plug en Play met:
Dit artikel bevat koppelingen en resources voor deze beperkte scenario's.
Vereisten
Voor veel van de onderstaande voorbeelden is een specifiek hardwareapparaat vereist en de vereisten voor elk van de voorbeelden verschillen. Volg de koppeling naar het relevante voorbeeld voor gedetailleerde vereisten, configuratie en build-instructies.
De SDK voor Embedded C gebruiken
De SDK voor Embedded C biedt een lichtgewicht oplossing om beperkte apparaten te verbinden met Azure IoT-services, waaronder het gebruik van de IoT Plug en Play conventies. De volgende koppelingen bevatten voorbeelden voor op MCU gebaseerde apparaten en voor educatieve en debuggingsdoeleinden.
Een apparaat op basis van MCU gebruiken
Zie Repurpose PIC-IoT Wx Development Board to Verbinding maken to Verbinding maken to Azurethrough IoT Hub Device Provisioning Service (Een nieuwe PIC-IoT Wx Development Board gebruiken voor Verbinding maken naar Azure via IoT Hub Device Provisioning Service) voor een volledige end-to-end zelfstudie met behulp van de SDK voor Embedded C, device provisioning service en IoT Plug en Play op een MCU.
Inleidende voorbeelden
De SDK voor ingesloten C-opslagplaats bevat verschillende voorbeelden die laten zien hoe u IoT-Plug en Play:
Notitie
Deze voorbeelden worden uitgevoerd op Windows linux voor educatieve en debuggingsdoeleinden. In een productiescenario zijn de voorbeelden alleen bedoeld voor beperkte apparaten.
Met Azure RTOS
Azure RTOS bevat een lichtgewicht laag die native connectiviteit toevoegt aan Azure IoT-cloudservices. Deze laag biedt een eenvoudig mechanisme om beperkte apparaten te verbinden met Azure IoT terwijl u de geavanceerde functies van Azure RTOS. Zie Wat is rtos Microsoft Azure voor meer informatie.
Hulpprogrammaketens
De Azure RTOS worden geleverd met verschillende soorten combinaties van IDE en hulpprogrammaketens, zoals:
- IAR: Ingesloten Workbench IDE van IAR
- GCC/CMake: Bouw op het opensource CMake-buildsysteem en GNU Arm Embedded-hulpprogrammaketen.
- MCUExpresso: MCUXpresso IDE van NXP
- STM32Cube: STM32Cube IDE van STMicro electronics
- MPLAB: MpLAB X IDE van
Voorbeelden
De volgende tabel bevat voorbeelden die laten zien hoe u op verschillende apparaten aan de slag kunt met Azure RTOS en IoT-Plug en Play:
| Fabrikant | Apparaat | Voorbeelden |
|---|---|---|
| Microchip | ATSAME54-XPRO | GCC/CMake • IAR • MPLAB |
| MXCHIP | AZ3166 | GCC/CMake |
| NXP | MIMXRT1060-EVK | GCC/CMake • IAR • MCUXpresso |
| STMicroelec electronics | 32F746GDISCOVERY | IAR • STM32Cube |
| STMicroelec electronics | B-L475E-IOT01 | GCC/CMake • IAR • STM32Cube |
| STMicroelec electronics | B-L4S5I-IOT01 | GCC/CMake • IAR • STM32Cube |
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u een IoT-Plug en Play verbinden met een IoT-hub. Als u meer wilt weten over het bouwen van een oplossing die samenwerkt met uw IoT Plug en Play-apparaten, leest u: