Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Module identities and module twins are similar to Azure IoT Hub device identity and device twin, but provide finer granularity. Zatímco identita zařízení a dvojče zařízení Azure IoT Hub umožňují back-endové aplikaci konfigurovat zařízení a poskytovat přehled o podmínkách zařízení, identita modulu a dvojče modulu poskytují tyto funkce pro jednotlivé komponenty zařízení. Na zařízeních s více komponentami, jako jsou zařízení s operačním systémem nebo zařízení firmwaru, umožňují identity modulů a dvojčata modulů izolované konfigurace a podmínky pro každou komponentu.
Poznámka:
Funkce popsané v tomto článku jsou k dispozici pouze na úrovni Standard služby IoT Hub. Další informace o úrovních Basic a Standard/Free IoT Hub najdete v tématu Volba správné úrovně a velikosti služby IoT Hub pro vaše řešení.
V tomto článku se dozvíte, jak:
Vytvoření identity modulu na portálu
Use a .NET device SDK to update the module twin from your device.
Poznámka:
Další informace o nástrojích Azure IoT SDKs, které jsou k dispozici pro sestavení jak zařízení, tak back-endových aplikací, najdete zde.
Požadavky
Visual Studio.
Centrum IoT ve vašem předplatném Azure Pokud centrum ještě nemáte, můžete postupovat podle kroků v tématu Vytvoření centra IoT.
Zařízení zaregistrované ve službě IoT Hub. Pokud ve službě IoT Hub nemáte zařízení, postupujte podle pokynů v části Registrace zařízení.
Ověřování modulů
K ověřování identit modulů můžete použít symetrické klíče nebo certifikáty X.509. For X.509 certificate authentication, the module's certificate must have its common name (CN) formatted like CN=<deviceid>/<moduleid>. Příklad:
openssl req -new -key d1m1.key.pem -out d1m1.csr -subj "/CN=device01\/module01"
Vytvoření identity modulu na portálu
V rámci jedné identity zařízení můžete vytvořit až 20 identit modulů. Pokud chcete přidat identitu, postupujte takto:
Ze stávajícího zařízení na webu Azure Portal zvolte Přidat identitu modulu a vytvořte první identitu modulu.
Zadejte název myFirstModule. Uložte identitu modulu.
Vaše nová identita modulu se zobrazí v dolní části obrazovky. Výběrem této možnosti zobrazíte podrobnosti o identitě modulu.
Uložte připojovací řetězec (primární klíč). Použijete ho v další části k nastavení modulu na zařízení v aplikaci konzoly.
Update the module twin using .NET device SDK
Teď z simulovaného zařízení komunikujeme s cloudem. Po vytvoření identity modulu se ve službě IoT Hub implicitně vytvoří dvojče modulu. V této části vytvoříte na simulovaném zařízení konzolovou aplikaci .NET, která aktualizuje hlášené vlastnosti dvojčete modulu.
Vytvoření projektu ve Visual Studiu
To create an app that updates the module twin, reported properties, follow these steps:
V sadě Visual Studio vyberte Vytvořit nový projekt, pak zvolte Konzolová aplikace (.NET Framework) a pak vyberte Další.
V části Konfigurace nového projektu zadejte jako název projektu updateModuleTwinReportedProperties. Pokračujte výběrem tlačítka Další.
Ponechte výchozí rozhraní .NET Framework a pak vyberte Vytvořit.
Instalace nejnovější sady .NET SDK pro zařízení služby Azure IoT Hub
The module identity and module twin features are only available in the IoT Hub pre-release device SDKs. Pokud ho chcete nainstalovat, postupujte takto:
V sadě Visual Studio otevřete Nástroje>Správce balíčků NuGet>Spravovat balíčky NuGet pro řešení.
Vyberte Procházet a pak vyberte Zahrnout předběžné verze. Vyhledejte Microsoft.Azure.Devices.Client. Vyberte nejnovější verzi a nainstalujte ji.
Teď máte přístup ke všem funkcím modulu.
Vytvoření konzolové aplikace UpdateModuleTwinReportedProperties
Důležité
Tento článek obsahuje postup připojení zařízení pomocí sdíleného přístupového podpisu, označovaného také jako ověřování symetrického klíče. Tato metoda ověřování je vhodná pro testování a vyhodnocení, ale ověřování zařízení pomocí certifikátů X.509 je bezpečnější přístup. Další informace najdete v tématu Osvědčené postupy zabezpečení pro zabezpečení připojení řešení > IoT.
Pokud chcete vytvořit aplikaci, postupujte takto:
- Do horní části souboru
usingpřidejte následující příkazy :
using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices.Shared;
using Newtonsoft.Json;
- Do třídy Program přidejte následující pole. Nahraďte zástupnou hodnotu řetězcem pro připojení modulu, který jste předtím uložili.
private const string ModuleConnectionString = "<Your module connection string>";
private static ModuleClient Client = null;
- Do třídy Program přidejte následující metodu OnDesiredPropertyChanged:
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);
}
- Nakonec nahraďte metodu Main následujícím kódem:
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}");
}
Tuto aplikaci můžete sestavit a spustit pomocí klávesy F5.
Now you know how to retrieve the module twin and update reported properties with AMQP protocol.
Další kroky
Chcete-li pokračovat v seznamování se službou IoT Hub a prozkoumat další scénáře IoT, podívejte se na tato témata: