Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Module-id's en moduledubbels zijn vergelijkbaar met Azure IoT Hub-apparaat-id's en apparaatdubbels, maar bieden een hogere granulariteit. Hoewel Azure IoT Hub-apparaatidentiteit en apparaatdubbel de back-endtoepassing in staat stellen een apparaat te configureren en inzicht te bieden in de condities van het apparaat, bieden een module-identiteit en module-tweeling deze mogelijkheden voor afzonderlijke onderdelen van een apparaat. Op compatibele apparaten met meerdere onderdelen, zoals besturingssysteemapparaten of firmwareapparaten, staan module-identiteiten en moduledubbels geïsoleerde configuratie en voorwaarden voor elk onderdeel toe.
Notitie
De functies die in dit artikel worden beschreven, zijn alleen beschikbaar in de standaardlaag van de IoT Hub. Zie De juiste IoT Hub-laag en -grootte kiezen voor uw oplossing voor meer informatie over de Basic- en Standard/gratis IoT Hub-lagen.
In dit artikel leert u het volgende:
Maak een module-id in de portal.
Gebruik een .NET-apparaat-SDK om de moduletweeling van uw apparaat bij te werken.
Notitie
Zie Azure IoT SDK's voor meer informatie over de SDK-hulpprogramma's die beschikbaar zijn voor het bouwen van zowel apparaat- als back-end-apps.
Vereisten
Visual Studio.
Een IoT-hub in uw Azure-abonnement. Als u nog geen hub hebt, kunt u de stappen volgen in Een IoT-hub maken.
Een apparaat dat is geregistreerd in uw IoT-hub. Als u geen apparaat in uw IoT-hub hebt, volgt u de stappen in Een apparaat registreren.
Module-authenticatie
U kunt symmetrische sleutels of X.509-certificaten gebruiken om module-identiteiten te verifiëren. Voor X.509-certificaatverificatie moet het certificaat Voorbeeld:
openssl req -new -key d1m1.key.pem -out d1m1.csr -subj "/CN=device01\/module01"
Een module-id in de portal maken
Binnen één apparaat-id kunt u 20 module-entiteiten maken. Voer de volgende stappen uit om een identiteit toe te voegen:
Kies module-id toevoegen op uw bestaande apparaat in Azure Portal om uw eerste module-id te maken.
Voer de naam myFirstModule in. Sla uw module-id op.
Uw nieuwe module-id wordt onder aan het scherm weergegeven. Selecteer deze om details van module-id's weer te geven.
Sla de verbindingsreeks (primaire sleutel) op. U gebruikt deze in de volgende sectie om uw module in te stellen op het apparaat in een console-app.
De module-tweeling bijwerken met de SDK voor .NET-apparaat
We gaan nu communiceren met de cloud vanaf uw gesimuleerde apparaat. Zodra een module-identiteit is aangemaakt, wordt er automatisch een moduletweeling in IoT Hub aangemaakt. In deze sectie maakt u een .NET-consoletoepassing op het gesimuleerde apparaat waarmee de gerapporteerde eigenschappen van de moduledubbel worden bijgewerkt.
Een Visual Studio-project maken
nl-NL: Om een app te maken die de module-tweedeling en gerapporteerde eigenschappen bijwerkt, voert u de volgende stappen uit:
Selecteer in Visual Studio Een nieuw project maken, kies vervolgens Console-app (.NET Framework) en selecteer Volgende.
Voer in Configureer uw nieuwe projectUpdateModuleTwinReportedProperties in als de Projectnaam. Selecteer Volgende om door te gaan.
Behoud het standaard .NET Framework en selecteer Maken.
De nieuwste Azure IoT Hub .NET-apparaat-SDK installeren
De functies voor module-id's en moduledubbels zijn alleen beschikbaar in de SDK's voor vooraf uitgebrachte IoT Hub-apparaten. Voer de volgende stappen uit om deze te installeren:
In Visual Studio, open Tools>NuGet Pakketbeheer>NuGet-pakketten voor oplossing beheren.
Selecteer Bladeren en selecteer voeg prerelease toe. Zoek naar Microsoft.Azure.Devices.Client. Selecteer de nieuwste versie en installeer deze.
U hebt nu toegang tot alle modulefuncties.
UpdateModuleTwinReportedProperties-console-app maken
Belangrijk
Dit artikel bevat stappen voor het verbinden van een apparaat met behulp van een Shared Access Signature, ook wel symmetrische sleutelverificatie genoemd. Deze verificatiemethode is handig voor testen en evalueren, maar het verifiëren van een apparaat met X.509-certificaten is een veiligere benadering. "Zie Beveiligingsbest practices voor IoT-oplossingen > Verbindingsbeveiliging voor meer informatie."
Voer de volgende stappen uit om uw app te maken:
- Voeg aan het begin van het bestand
usingde volgende -instructies toe:
using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices.Shared;
using Newtonsoft.Json;
- Voeg de volgende velden toe aan de klasse Program: Vervang de waarde van de tijdelijke aanduiding door de moduleverbindingsreeks die u eerder hebt opgeslagen.
private const string ModuleConnectionString = "<Your module connection string>";
private static ModuleClient Client = null;
- Voeg de methode OnDesiredPropertyChanged toe aan de klasse Program:
private static async Task OnDesiredPropertyChanged(TwinCollection desiredProperties, object userContext)
{
Console.WriteLine("desired property change:");
Console.WriteLine(JsonConvert.SerializeObject(desiredProperties));
Console.WriteLine("Sending current time as reported property");
TwinCollection reportedProperties = new TwinCollection
{
["DateTimeLastDesiredPropertyChangeReceived"] = DateTime.Now
};
await Client.UpdateReportedPropertiesAsync(reportedProperties).ConfigureAwait(false);
}
- Vervang ten slotte de Main-methode door de volgende code:
static void Main(string[] args)
{
Microsoft.Azure.Devices.Client.TransportType transport = Microsoft.Azure.Devices.Client.TransportType.Amqp;
try
{
Client = ModuleClient.CreateFromConnectionString(ModuleConnectionString, transport);
Client.SetConnectionStatusChangesHandler(ConnectionStatusChangeHandler);
Client.SetDesiredPropertyUpdateCallbackAsync(OnDesiredPropertyChanged, null).Wait();
Console.WriteLine("Retrieving twin");
var twinTask = Client.GetTwinAsync();
twinTask.Wait();
var twin = twinTask.Result;
Console.WriteLine(JsonConvert.SerializeObject(twin));
Console.WriteLine("Sending app start time as reported property");
TwinCollection reportedProperties = new TwinCollection();
reportedProperties["DateTimeLastAppLaunch"] = DateTime.Now;
Client.UpdateReportedPropertiesAsync(reportedProperties);
}
catch (AggregateException ex)
{
Console.WriteLine("Error in sample: {0}", ex);
}
Console.WriteLine("Waiting for Events. Press enter to exit...");
Console.ReadKey();
Client.CloseAsync().Wait();
}
private static void ConnectionStatusChangeHandler(ConnectionStatus status, ConnectionStatusChangeReason reason)
{
Console.WriteLine($"Status {status} changed: {reason}");
}
U kunt deze app bouwen en uitvoeren met F5.
U weet nu hoe u de moduledubbel ophaalt en gerapporteerde eigenschappen bijwerkt met het AMQP-protocol.
Volgende stappen
Als u aan de slag wilt gaan met IoT Hub en andere IoT-scenario's wilt verkennen, leest u deze artikelen: