Oktatóanyag: IoT Plug and Play több összetevős eszközalkalmazás csatlakoztatása Linux vagy Windows rendszeren az IoT Hubhoz
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást összetevőkkel, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg a központnak küldött információkat az Azure IoT Explorer eszközzel. A mintaalkalmazás C nyelven van megírva, és szerepel a C-hez készült Azure IoT-eszköz SDK-ban. A megoldáskészítők az Azure IoT Explorer eszközzel megismerhetik az IoT Plug and Play-eszközök képességeit anélkül, hogy bármilyen eszközkódot meg kellene tekinteniük.
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- Töltse le a mintakódot.
- Hozza létre a mintakódot.
- Futtassa a mintaeszköz-alkalmazást, és ellenőrizze, hogy csatlakozik-e az IoT Hubhoz.
- Tekintse át a forráskódot.
Előfeltételek
A folytatás előtt győződjön meg arról, hogy beállította a környezetét, beleértve az IoT Hubot is.
Ezt az oktatóanyagot Linuxon vagy Windowson is elvégezheti. Az oktatóanyagban szereplő rendszerhéjparancsok a ""/
elérési útelválasztók Linux-konvencióját követik, ha a Windowson végig követi őket, mindenképpen cserélje fel ezeket az elválasztókat a következőre: ""\
.
Az előfeltételek az operációs rendszertől függően eltérnek:
Linux
Ez az oktatóanyag feltételezi, hogy Ubuntu Linuxot használ. Az oktatóanyag lépéseit az Ubuntu 18.04-ben teszteltük.
Az oktatóanyag Linuxon való elvégzéséhez telepítse a következő szoftvert a helyi Linux-környezetbe:
Telepítse a GCC-t, a Gitet, a cmake-t és az összes szükséges függőséget a apt-get
következő paranccsal:
sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev
Ellenőrizze, hogy a verziószáma cmake
meghaladja-e a 2.8.12-es verziót, és hogy a GCC verziója a 4.4.7-esnél magasabb-e.
cmake --version
gcc --version
Windows
Az oktatóanyag Windows rendszeren való elvégzéséhez telepítse a következő szoftvert a helyi Windows-környezetbe:
- Visual Studio (Community, Professional vagy Enterprise) – A Visual Studio telepítésekorgyőződjön meg arról, hogy a C++ számítási feladattal rendelkező asztali fejlesztést is tartalmazza.
- Git.
- CMake.
A kód letöltése
Ha elvégezte az oktatóanyagot: Csatlakoztassa a Linuxon vagy Windowson futó minta IoT Plug and Play eszközalkalmazást az IoT Hubhoz (C), már letöltötte a kódot.
Ebben az oktatóanyagban egy fejlesztési környezetet készít elő, a segítségével klónozhat és létrehozhatja az Azure IoT Hub Device C SDK-t.
Nyisson meg egy parancssort egy tetszőleges mappában. Hajtsa végre a következő parancsot az Azure IoT C SDK-k és -tárak GitHub-adattárának klónozásához erre a helyre:
git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init
A művelet végrehajtása várhatóan több percet vesz igénybe.
A kód létrehozása és futtatása
A kódot a Visual Studióval vagy cmake
a parancssorban hozhatja létre és futtathatja.
A Visual Studio használata
Nyissa meg a klónozott adattár gyökérmappáját. Néhány másodperc elteltével a Visual Studio CMake-támogatása minden szükséges eszközt létrehoz a projekt futtatásához és hibakereséséhez.
Ha a Visual Studio készen áll, a Megoldáskezelő lépjen a minta iothub_client/samples/pnp/pnp_temperature_controller/.
Kattintson a jobb gombbal a pnp_temperature_controller.c fájlra, és válassza a Hibakeresési konfiguráció hozzáadása lehetőséget. Válassza az Alapértelmezett lehetőséget.
A Visual Studio megnyitja a launch.vs.json fájlt. Szerkessze ezt a fájlt az alábbi kódrészletben látható módon a szükséges környezeti változók beállításához. Jegyezte fel a hatókör azonosítóját és a regisztrációs elsődleges kulcsot, amikor befejezte a környezet beállítását az IoT Plug and Play gyorsútmutatóihoz és oktatóanyagaihoz:
{ "version": "0.2.1", "defaults": {}, "configurations": [ { "type": "default", "project": "iothub_client\\samples\\pnp\\pnp_temperature_controller\\pnp_temperature_controller.c", "projectTarget": "", "name": "pnp_temperature_controller.c", "env": { "IOTHUB_DEVICE_SECURITY_TYPE": "DPS", "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>", "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device", "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>" } } ] }
Kattintson a jobb gombbal a pnp_temperature_controller.c fájlra, és válassza a Beállítás indítási elemként lehetőséget.
A Visual Studióban a kódvégrehajtás nyomon követéséhez adjon hozzá egy töréspontot a
main
függvényhez a pnp_temperature_controller.c fájlban.Most már futtathatja és hibakeresésre használhatja a mintát a Hibakeresés menüből.
Az eszköz készen áll a parancsok és a tulajdonságfrissítések fogadására, és megkezdte a telemetriai adatok küldését a központba. A minta futásának fenntartása a következő lépések végrehajtása során.
Használat cmake
a parancssorban
A minta létrehozása:
Hozzon létre egy cmake almappát a klónozott eszköz SDK gyökérmappájában, és keresse meg a mappát:
cd azure-iot-sdk-c mkdir cmake cd cmake
Futtassa az alábbi parancsokat az SDK-hoz és mintákhoz tartozó projektfájlok létrehozásához és létrehozásához:
cmake .. cmake --build .
A környezet beállításakor négy környezeti változót hozott létre, hogy a mintát úgy konfigurálja, hogy a Device Provisioning Service (DPS) használatával csatlakozzon az IoT Hubhoz:
-
IOTHUB_DEVICE_SECURITY_TYPE az értékkel
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE a DPS-azonosító hatókörével.
-
IOTHUB_DEVICE_DPS_DEVICE_ID az értékkel
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY a regisztrációs elsődleges kulccsal.
-
IOTHUB_DEVICE_DPS_ENDPOINT az értékkel
global.azure-devices-provisioning.net
.
A mintakonfigurációval kapcsolatos további információkért tekintse meg a mintabeolvasást.
A minta futtatása:
A cmake mappából keresse meg a végrehajtható fájlt tartalmazó mappát, és futtassa azt:
# Bash cd iothub_client/samples/pnp/pnp_temperature_controller ./pnp_temperature_controller
REM Windows cd iothub_client\samples\pnp\pnp_temperature_controller\Debug pnp_temperature_controller.exe
Az eszköz készen áll a parancsok és a tulajdonságfrissítések fogadására, és megkezdte a telemetriai adatok küldését a központba. A minta futásának fenntartása a következő lépések végrehajtása során.
A kód ellenőrzése az Azure IoT Explorer használatával
Az eszközügyfél-minta elindítása után az Azure IoT Explorer eszközzel ellenőrizze, hogy működik-e.
Nyissa meg az Azure IoT Explorert.
Az IoT Hubs lapon, ha még nem adott hozzá kapcsolatot az IoT Hubhoz, válassza a + Kapcsolat hozzáadása lehetőséget. Adja meg a korábban létrehozott IoT Hub kapcsolati sztring, és válassza a Mentés lehetőséget.
Az IoT Plug and Play Beállítások lapján válassza a + Helyi mappa hozzáadása > lehetőséget, és válassza ki azt a helyi modellmappát, ahová a modellfájlokat mentette.
Az IoT Hubs lapon kattintson a használni kívánt központ nevére. Megjelenik az IoT Hubon regisztrált eszközök listája.
Kattintson a korábban létrehozott eszköz eszközazonosítójára .
A bal oldali menüben az eszközhöz elérhető különböző típusú információk láthatók.
Válassza az IoT Plug and Play-összetevőket az eszköz modelladatainak megtekintéséhez.
Megtekintheti az eszköz különböző összetevőit. Az alapértelmezett összetevő és a továbbiak. Válasszon ki egy összetevőt, amellyel dolgozni szeretne.
Válassza a Telemetriai lapot, majd a Start gombra kattintva megtekintheti az eszköz által az összetevőhöz küldött telemetriai adatokat.
Válassza a Tulajdonságok (írásvédett) lapot az összetevőhöz jelentett írásvédett tulajdonságok megtekintéséhez.
Válassza a Tulajdonságok (írható) lapot az összetevőhöz frissíthető írható tulajdonságok megtekintéséhez.
Válasszon ki egy tulajdonságot a neve alapján, adjon meg egy új értéket, és válassza a Kívánt érték frissítése lehetőséget.
Az új érték megjelenítéséhez válassza a Frissítés gombot.
Válassza a Parancsok lapot az összetevő összes parancsának megtekintéséhez.
Válassza ki azt a parancsot, amelyet tesztelni szeretne, és ha van ilyen, állítsa be a paramétert. Válassza a Küldés parancsot az eszköz parancsának meghívásához. Az eszköz a parancsra válaszolva jelenik meg a parancssori ablakban, ahol a mintakód fut.
A kód áttekintése
Ez a minta egy IoT Plug and Play hőmérsékletvezérlő eszközt implementál. Ez a minta egy több összetevőt tartalmazó modellt implementál. A hőmérsékleti eszköz Digital Twins Definition Language (DTDL) modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Az IoT Plug and Play segédfüggvényei
Ebben a példában a kód néhány segédfüggvényt használ a /common mappából:
pnp_device_client_ll tartalmazza az IoT Plug and Play csatlakoztatási metódusát a model-id
következő paraméterrel: PnP_CreateDeviceClientLLHandle
.
pnp_protocol: az IoT Plug and Play segédfüggvényeket tartalmazza:
PnP_CreateReportedProperty
PnP_CreateReportedPropertyWithStatus
PnP_ParseCommandName
PnP_CreateTelemetryMessageHandle
PnP_ProcessTwinData
PnP_CopyPayloadToString
PnP_CreateDeviceClientLLHandle_ViaDps
Ezek a segédfüggvények elég általánosak ahhoz, hogy a saját projektjében használják őket. Ez a minta a modell minden összetevőjének megfelelő három fájlban használja őket:
- pnp_deviceinfo_component
- pnp_temperature_controller
- pnp_thermostat_component
A pnp_deviceinfo_component fájlban például a SendReportedPropertyForDeviceInformation
függvény két segédfüggvényt használ:
if ((jsonToSend = PnP_CreateReportedProperty(componentName, propertyName, propertyValue)) == NULL)
{
LogError("Unable to build reported property response for propertyName=%s, propertyValue=%s", propertyName, propertyValue);
}
else
{
const char* jsonToSendStr = STRING_c_str(jsonToSend);
size_t jsonToSendStrLen = strlen(jsonToSendStr);
if ((iothubClientResult = IoTHubDeviceClient_LL_SendReportedState(deviceClientLL, (const unsigned char*)jsonToSendStr, jsonToSendStrLen, NULL, NULL)) != IOTHUB_CLIENT_OK)
{
LogError("Unable to send reported state for property=%s, error=%d", propertyName, iothubClientResult);
}
else
{
LogInfo("Sending device information property to IoTHub. propertyName=%s, propertyValue=%s", propertyName, propertyValue);
}
}
A minta minden összetevője ezt a mintát követi.
Kódfolyamat
A main
függvény inicializálja a kapcsolatot, és elküldi a modellazonosítót:
deviceClient = CreateDeviceClientAndAllocateComponents();
A kód az IoT Hubhoz való csatlakozásra, beállításként való beállításramodelId
, valamint az eszköz metódusának és ikereszköz-visszahívás-kezelőinek beállítására szolgál PnP_CreateDeviceClientLLHandle
a közvetlen metódusokhoz és az ikereszköz-frissítésekhez:
g_pnpDeviceConfiguration.deviceMethodCallback = PnP_TempControlComponent_DeviceMethodCallback;
g_pnpDeviceConfiguration.deviceTwinCallback = PnP_TempControlComponent_DeviceTwinCallback;
g_pnpDeviceConfiguration.modelId = g_temperatureControllerModelId;
...
deviceClient = PnP_CreateDeviceClientLLHandle(&g_pnpDeviceConfiguration);
&g_pnpDeviceConfiguration
a kapcsolati adatokat is tartalmazza. A környezeti változó IOTHUB_DEVICE_SECURITY_TYPE határozza meg, hogy a minta egy kapcsolati sztring vagy az eszközkiépítési szolgáltatás használatával csatlakozik-e az IoT Hubhoz.
Amikor az eszköz modellazonosítót küld, IoT Plug and Play-eszköz lesz.
A visszahíváskezelők használata esetén az eszköz reagál az ikerfrissítésekre és a közvetlen metódushívásokra:
Az ikereszköz visszahívása esetén a függvény meghívja
PnP_TempControlComponent_DeviceTwinCallback
aPnP_ProcessTwinData
függvényt az adatok feldolgozására.PnP_ProcessTwinData
A látogatói minta használatával elemzi a JSON-t, majd meglátogatja az egyes tulajdonságokat, és meghívjaPnP_TempControlComponent_ApplicationPropertyCallback
az egyes elemeket.A parancsok visszahívásához a függvény a
PnP_TempControlComponent_DeviceMethodCallback
segédfüggvény használatával elemzi a parancsokat és az összetevők nevét:PnP_ParseCommandName(methodName, &componentName, &componentNameSize, &pnpCommandName);
A
PnP_TempControlComponent_DeviceMethodCallback
függvény ezután meghívja az összetevő parancsát:LogInfo("Received PnP command for component=%.*s, command=%s", (int)componentNameSize, componentName, pnpCommandName); if (strncmp((const char*)componentName, g_thermostatComponent1Name, g_thermostatComponent1Size) == 0) { result = PnP_ThermostatComponent_ProcessCommand(g_thermostatHandle1, pnpCommandName, rootValue, response, responseSize); } else if (strncmp((const char*)componentName, g_thermostatComponent2Name, g_thermostatComponent2Size) == 0) { result = PnP_ThermostatComponent_ProcessCommand(g_thermostatHandle2, pnpCommandName, rootValue, response, responseSize); } else { LogError("PnP component=%.*s is not supported by TemperatureController", (int)componentNameSize, componentName); result = PNP_STATUS_NOT_FOUND; }
A main
függvény inicializálja az IoT Hubnak küldött írásvédett tulajdonságokat:
PnP_TempControlComponent_ReportSerialNumber_Property(deviceClient);
PnP_DeviceInfoComponent_Report_All_Properties(g_deviceInfoComponentName, deviceClient);
PnP_TempControlComponent_Report_MaxTempSinceLastReboot_Property(g_thermostatHandle1, deviceClient);
PnP_TempControlComponent_Report_MaxTempSinceLastReboot_Property(g_thermostatHandle2, deviceClient);
A main
függvény egy ciklust ad meg az egyes összetevők esemény- és telemetriai adatainak frissítéséhez:
while (true)
{
PnP_TempControlComponent_SendWorkingSet(deviceClient);
PnP_ThermostatComponent_SendTelemetry(g_thermostatHandle1, deviceClient);
PnP_ThermostatComponent_SendTelemetry(g_thermostatHandle2, deviceClient);
}
A PnP_ThermostatComponent_SendTelemetry
függvény bemutatja, hogyan használhatja a PNP_THERMOSTAT_COMPONENT
szerkezetet. A minta ezt a szerkezetet használja a két termosztát információinak tárolására a hőmérséklet-vezérlőben. A kód a függvény használatával PnP_CreateTelemetryMessageHandle
készíti elő és küldi el az üzenetet:
messageHandle = PnP_CreateTelemetryMessageHandle(pnpThermostatComponent->componentName, temperatureStringBuffer);
...
iothubResult = IoTHubDeviceClient_LL_SendEventAsync(deviceClientLL, messageHandle, NULL, NULL);
A main
függvény végül megsemmisíti a különböző összetevőket, és bezárja a kapcsolatot a központtal.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást összetevőkkel, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg a központnak küldött információkat az Azure IoT Explorer eszközzel. A mintaalkalmazás C# nyelven van megírva, és a C#-hoz készült Azure IoT-eszköz SDK része. A megoldáskészítők az Azure IoT Explorer eszközzel megismerhetik az IoT Plug and Play-eszközök képességeit anélkül, hogy bármilyen eszközkódot meg kellene tekinteniük.
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- Töltse le a mintakódot.
- Hozza létre a mintakódot.
- Futtassa a mintaeszköz-alkalmazást, és ellenőrizze, hogy csatlakozik-e az IoT Hubhoz.
- Tekintse át a forráskódot.
Előfeltételek
A folytatás előtt győződjön meg arról, hogy beállította a környezetét, beleértve az IoT Hubot is.
Ezt az oktatóanyagot Linuxon vagy Windowson is futtathatja. Az oktatóanyagban szereplő rendszerhéjparancsok a ""/
elérési útelválasztók Linux-konvencióját követik, ha a Windowson végig követi őket, mindenképpen cserélje fel ezeket az elválasztókat a következőre: ""\
.
Az SDK-adattár klónozása a mintakóddal
Ha elvégezte az oktatóanyagot: Csatlakoztassa a Windowson futó minta IoT Plug and Play eszközalkalmazást az IoT Hubhoz (C#), már klónozta az adattárat.
Klónozza a C# GitHub-adattárhoz készült Azure IoT-minták mintáit. Nyisson meg egy parancssort egy tetszőleges mappában. Futtassa a következő parancsot a Microsoft Azure IoT SDK for .NET GitHub-adattár klónozásához:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
A kód létrehozása
Most már létrehozhatja és futtathatja a mintát. A minta létrehozásához futtassa a következő parancsokat:
cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/TemperatureController
dotnet build
Az eszközminta futtatása
A minta futtatásához futtassa a következő parancsot:
dotnet run
Az eszköz készen áll a parancsok és a tulajdonságfrissítések fogadására, és megkezdte a telemetriai adatok küldését a központba. A minta futásának fenntartása a következő lépések végrehajtása során.
Az Azure IoT Explorer használata a kód ellenőrzéséhez
Az eszközügyfél-minta elindítása után az Azure IoT Explorer eszközzel ellenőrizze, hogy működik-e.
Nyissa meg az Azure IoT Explorert.
Az IoT Hubs lapon, ha még nem adott hozzá kapcsolatot az IoT Hubhoz, válassza a + Kapcsolat hozzáadása lehetőséget. Adja meg a korábban létrehozott IoT Hub kapcsolati sztring, és válassza a Mentés lehetőséget.
Az IoT Plug and Play Beállítások lapján válassza a + Helyi mappa hozzáadása > lehetőséget, és válassza ki azt a helyi modellmappát, ahová a modellfájlokat mentette.
Az IoT Hubs lapon kattintson a használni kívánt központ nevére. Megjelenik az IoT Hubon regisztrált eszközök listája.
Kattintson a korábban létrehozott eszköz eszközazonosítójára .
A bal oldali menüben az eszközhöz elérhető különböző típusú információk láthatók.
Válassza az IoT Plug and Play-összetevőket az eszköz modelladatainak megtekintéséhez.
Megtekintheti az eszköz különböző összetevőit. Az alapértelmezett összetevő és a továbbiak. Válasszon ki egy összetevőt, amellyel dolgozni szeretne.
Válassza a Telemetriai lapot, majd a Start gombra kattintva megtekintheti az eszköz által az összetevőhöz küldött telemetriai adatokat.
Válassza a Tulajdonságok (írásvédett) lapot az összetevőhöz jelentett írásvédett tulajdonságok megtekintéséhez.
Válassza a Tulajdonságok (írható) lapot az összetevőhöz frissíthető írható tulajdonságok megtekintéséhez.
Válasszon ki egy tulajdonságot a neve alapján, adjon meg egy új értéket, és válassza a Kívánt érték frissítése lehetőséget.
Az új érték megjelenítéséhez válassza a Frissítés gombot.
Válassza a Parancsok lapot az összetevő összes parancsának megtekintéséhez.
Válassza ki azt a parancsot, amelyet tesztelni szeretne, és ha van ilyen, állítsa be a paramétert. Válassza a Küldés parancsot az eszköz parancsának meghívásához. Az eszköz a parancsra válaszolva jelenik meg a parancssori ablakban, ahol a mintakód fut.
A kód áttekintése
Ez a minta egy IoT Plug and Play hőmérsékletvezérlő eszközt implementál. Az a modell, amelyet ez a minta implementál, több összetevőt használ. A hőmérsékleti eszköz Digital Twins Definition Language (DTDL) modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Az eszközkód a standard CreateFromConnectionString
módszerrel csatlakozik az IoT Hubhoz. Az eszköz elküldi a kapcsolatkérésben implementált DTDL-modell modellazonosítóját. A modellazonosítót küldő eszköz egy IoT Plug and Play-eszköz:
private static DeviceClient InitializeDeviceClient(string hostname, IAuthenticationMethod authenticationMethod)
{
var options = new ClientOptions
{
ModelId = ModelId,
};
var deviceClient = DeviceClient.Create(hostname, authenticationMethod, TransportType.Mqtt, options);
deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
{
s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
});
return deviceClient;
}
A modellazonosítót a kód tárolja az alábbi kódrészletben látható módon:
private const string ModelId = "dtmi:com:example:TemperatureController;1";
Miután az eszköz csatlakozott az IoT Hubhoz, a kód regisztrálja a parancskezelőket. A reboot
parancs az alapértelmezett összetevőben van definiálva. A getMaxMinReport
parancs a két termosztát-összetevő mindegyikében definiálva van:
await _deviceClient.SetMethodHandlerAsync("reboot", HandleRebootCommandAsync, _deviceClient, cancellationToken);
await _deviceClient.SetMethodHandlerAsync("thermostat1*getMaxMinReport", HandleMaxMinReportCommandAsync, Thermostat1, cancellationToken);
await _deviceClient.SetMethodHandlerAsync("thermostat2*getMaxMinReport", HandleMaxMinReportCommandAsync, Thermostat2, cancellationToken);
A két termosztát-összetevőhöz külön kezelők tartoznak a kívánt tulajdonságfrissítésekhez:
_desiredPropertyUpdateCallbacks.Add(Thermostat1, TargetTemperatureUpdateCallbackAsync);
_desiredPropertyUpdateCallbacks.Add(Thermostat2, TargetTemperatureUpdateCallbackAsync);
A mintakód telemetriát küld az egyes termosztát-összetevőkről:
await SendTemperatureAsync(Thermostat1, cancellationToken);
await SendTemperatureAsync(Thermostat2, cancellationToken);
A SendTemperatureTelemetryAsync
metódus az PnpHelper
osztály használatával hoz létre üzeneteket az egyes összetevőkhöz:
using Message msg = PnpHelper.CreateIothubMessageUtf8(telemetryName, JsonConvert.SerializeObject(currentTemperature), componentName);
Az PnpHelper
osztály más, több összetevős modellel használható mintamódszereket is tartalmaz.
Az Azure IoT Explorer eszközzel megtekintheti a két termosztát-összetevő telemetriáját és tulajdonságait:
Az Azure IoT Explorer eszközzel parancsokat is meghívhat a két termosztát-összetevőben vagy az alapértelmezett összetevőben.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást összetevőkkel, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg a központnak küldött információkat az Azure IoT Explorer eszközzel. A mintaalkalmazás Java nyelven van megírva, és a Java-hoz készült Azure IoT-eszköz SDK része. A megoldáskészítők az Azure IoT Explorer eszközzel megismerhetik az IoT Plug and Play-eszközök képességeit anélkül, hogy bármilyen eszközkódot meg kellene tekinteniük.
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- Töltse le a mintakódot.
- Hozza létre a mintakódot.
- Futtassa a mintaeszköz-alkalmazást, és ellenőrizze, hogy csatlakozik-e az IoT Hubhoz.
- Tekintse át a forráskódot.
Előfeltételek
A folytatás előtt győződjön meg arról, hogy beállította a környezetét, beleértve az IoT Hubot is.
Ezt az oktatóanyagot Linuxon vagy Windowson is futtathatja. Az oktatóanyagban szereplő rendszerhéjparancsok a ""/
elérési útelválasztók Linux-konvencióját követik, ha a Windowson végig követi őket, mindenképpen cserélje fel ezeket az elválasztókat a következőre: ""\
.
Az oktatóanyag elvégzéséhez telepítse a következő szoftvert a helyi fejlesztési környezetben:
A kód letöltése
Ha elvégezte az oktatóanyagot: Csatlakoztassa a minta IoT Plug and Play eszközalkalmazást az IoT Hubhoz (Java), már klónozta az adattárat.
Nyisson meg egy parancssort a választott könyvtárban. Hajtsa végre a következő parancsot az Azure IoT Java SDK-k és -tárak GitHub-adattárának klónozásához erre a helyre:
git clone https://github.com/Azure/azure-iot-sdk-java.git
A művelet végrehajtása várhatóan több percet vesz igénybe.
A kód létrehozása
Keresse meg a hőmérséklet-vezérlő minta gyökérmappáját a klónozott Java SDK-adattárban, és hozza létre:
cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/temperature-controller-device-sample
mvn clean package
Az eszközminta futtatása
A környezet beállításakor négy környezeti változót hozott létre, hogy a mintát úgy konfigurálja, hogy a Device Provisioning Service (DPS) használatával csatlakozzon az IoT Hubhoz:
-
IOTHUB_DEVICE_SECURITY_TYPE az értékkel
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE a DPS-azonosító hatókörével.
-
IOTHUB_DEVICE_DPS_DEVICE_ID az értékkel
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY a regisztrációs elsődleges kulccsal.
-
IOTHUB_DEVICE_DPS_ENDPOINT az értékkel
global.azure-devices-provisioning.net
.
A mintaalkalmazás futtatásához keresse meg a /device/iot-device-samples/pnp-device-sample/temperature-controller-device-sample mappát, és futtassa a következő parancsot:
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.TemperatureController"
Az eszköz készen áll a parancsok és a tulajdonságfrissítések fogadására, és megkezdte a telemetriai adatok küldését a központba. A minta futásának fenntartása a következő lépések végrehajtása során.
Az Azure IoT Explorer használata a kód ellenőrzéséhez
Az eszközügyfél-minta elindítása után az Azure IoT Explorer eszközzel ellenőrizze, hogy működik-e.
Nyissa meg az Azure IoT Explorert.
Az IoT Hubs lapon, ha még nem adott hozzá kapcsolatot az IoT Hubhoz, válassza a + Kapcsolat hozzáadása lehetőséget. Adja meg a korábban létrehozott IoT Hub kapcsolati sztring, és válassza a Mentés lehetőséget.
Az IoT Plug and Play Beállítások lapján válassza a + Helyi mappa hozzáadása > lehetőséget, és válassza ki azt a helyi modellmappát, ahová a modellfájlokat mentette.
Az IoT Hubs lapon kattintson a használni kívánt központ nevére. Megjelenik az IoT Hubon regisztrált eszközök listája.
Kattintson a korábban létrehozott eszköz eszközazonosítójára .
A bal oldali menüben az eszközhöz elérhető különböző típusú információk láthatók.
Válassza az IoT Plug and Play-összetevőket az eszköz modelladatainak megtekintéséhez.
Megtekintheti az eszköz különböző összetevőit. Az alapértelmezett összetevő és a továbbiak. Válasszon ki egy összetevőt, amellyel dolgozni szeretne.
Válassza a Telemetriai lapot, majd a Start gombra kattintva megtekintheti az eszköz által az összetevőhöz küldött telemetriai adatokat.
Válassza a Tulajdonságok (írásvédett) lapot az összetevőhöz jelentett írásvédett tulajdonságok megtekintéséhez.
Válassza a Tulajdonságok (írható) lapot az összetevőhöz frissíthető írható tulajdonságok megtekintéséhez.
Válasszon ki egy tulajdonságot a neve alapján, adjon meg egy új értéket, és válassza a Kívánt érték frissítése lehetőséget.
Az új érték megjelenítéséhez válassza a Frissítés gombot.
Válassza a Parancsok lapot az összetevő összes parancsának megtekintéséhez.
Válassza ki azt a parancsot, amelyet tesztelni szeretne, és ha van ilyen, állítsa be a paramétert. Válassza a Küldés parancsot az eszköz parancsának meghívásához. Az eszköz a parancsra válaszolva jelenik meg a parancssori ablakban, ahol a mintakód fut.
A kód áttekintése
Ez a minta egy IoT Plug and Play hőmérsékletvezérlő eszközt implementál. Az a modell, amelyet ez a minta implementál, több összetevőt használ. A hőmérsékleti eszköz Digital Twins Definition Language (DTDL) modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Az eszközkód a standard DeviceClient
osztály használatával csatlakozik az IoT Hubhoz. Az eszköz elküldi a kapcsolatkérésben implementált DTDL-modell modellazonosítóját. A modellazonosítót küldő eszköz egy IoT Plug and Play-eszköz:
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();
}
A modellazonosítót a kód tárolja az alábbi kódrészletben látható módon:
private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";
Miután az eszköz csatlakozott az IoT Hubhoz, a kód regisztrálja a parancskezelőket.
deviceClient.subscribeToDeviceMethod(new MethodCallback(), null, new MethodIotHubEventCallback(), null);
A két termosztát-összetevőhöz külön kezelők tartoznak a kívánt tulajdonságfrissítésekhez:
deviceClient.startDeviceTwin(new TwinIotHubEventCallback(), null, new GenericPropertyUpdateCallback(), null);
Map<Property, Pair<TwinPropertyCallBack, Object>> desiredPropertyUpdateCallback = Stream.of(
new AbstractMap.SimpleEntry<Property, Pair<TwinPropertyCallBack, Object>>(
new Property(THERMOSTAT_1, null),
new Pair<>(new TargetTemperatureUpdateCallback(), THERMOSTAT_1)),
new AbstractMap.SimpleEntry<Property, Pair<TwinPropertyCallBack, Object>>(
new Property(THERMOSTAT_2, null),
new Pair<>(new TargetTemperatureUpdateCallback(), THERMOSTAT_2))
).collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
deviceClient.subscribeToTwinDesiredProperties(desiredPropertyUpdateCallback);
A mintakód telemetriát küld az egyes termosztát-összetevőkről:
sendTemperatureReading(THERMOSTAT_1);
sendTemperatureReading(THERMOSTAT_2);
A sendTemperatureReading
metódus az PnpHelper
osztály használatával hoz létre üzeneteket az egyes összetevőkhöz:
Message message = PnpHelper.createIotHubMessageUtf8(telemetryName, currentTemperature, componentName);
Az PnpHelper
osztály más, több összetevős modellel használható mintamódszereket is tartalmaz.
Az Azure IoT Explorer eszközzel megtekintheti a két termosztát-összetevő telemetriáját és tulajdonságait:
Az Azure IoT Explorer eszközzel parancsokat is meghívhat a két termosztát-összetevőben vagy az alapértelmezett összetevőben.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást összetevőkkel, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg a központnak küldött információkat az Azure IoT Explorer eszközzel. A mintaalkalmazás Node.js íródott, és az Azure IoT Hub Device SDK for Node.js része. A megoldáskészítők az Azure IoT Explorer eszközzel megismerhetik az IoT Plug and Play-eszközök képességeit anélkül, hogy bármilyen eszközkódot meg kellene tekinteniük.
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- Töltse le a mintakódot.
- Futtassa a mintaeszköz-alkalmazást, és ellenőrizze, hogy csatlakozik-e az IoT Hubhoz.
- Tekintse át a forráskódot.
Előfeltételek
A folytatás előtt győződjön meg arról, hogy beállította a környezetét, beleértve az IoT Hubot is.
Az oktatóanyag elvégzéséhez Node.js kell a fejlesztői gépen. A legújabb ajánlott verziót több platformra is letöltheti a nodejs.org.
A Node.js aktuális verzióját a következő paranccsal ellenőrizheti a fejlesztői gépen:
node --version
A kód letöltése
Ha elvégezte az oktatóanyagot: Csatlakoztassa a Windowson futó minta IoT Plug and Play eszközalkalmazást az IoT Hubhoz (Node), már klónozta az adattárat.
Nyisson meg egy parancssort a választott könyvtárban. Hajtsa végre a következő parancsot a Microsoft Azure IoT SDK klónozásához Node.js GitHub-adattárhoz erre a helyre:
git clone https://github.com/Azure/azure-iot-sdk-node
A szükséges kódtárak telepítése
Az eszköz SDK-jával hozza létre a mellékelt mintakódot. A buildelt alkalmazás egy Plug and Play-eszközt szimulál több összetevővel, amelyek egy IoT Hubhoz csatlakoznak. Az alkalmazás telemetriát és tulajdonságokat küld, és parancsokat fogad.
- Egy helyi terminálablakban lépjen a klónozott adattár mappájába, és keresse meg az /azure-iot-sdk-node/device/samples/javascript mappát. Ezután futtassa a következő parancsot a szükséges kódtárak telepítéséhez:
npm install
Ez a parancs telepíti a minták mappában való futtatásához szükséges megfelelő npm-fájlokat.
A kód áttekintése
Nyissa meg az azure-iot-sdk-node/device/samples/javascript mappát.
Az azure-iot-sdk-node/device/samples/javascript mappa tartalmazza az IoT Plug and Play hőmérsékletvezérlő eszköz mintakódját.
A pnp_temperature_controller.js fájlban lévő kód egy IoT Plug and Play hőmérsékletvezérlő eszközt implementál. Az a modell, amelyet ez a minta implementál, több összetevőt használ. A hőmérsékleti eszköz Digital Twins Definition Language (DTDL) modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Nyissa meg a pnp_temperature_controller.js fájlt egy tetszőleges kódszerkesztőben. A mintakód a következő lépéseket mutatja be:
Adja meg a
modelId
implementálható eszköz DTMI-jét. Ez a DTMI felhasználó által definiált, és meg kell egyeznie a hőmérséklet-vezérlő DTDL-modelljének DTMI-ével.Implementálja a hőmérséklet-vezérlő DTDL-modelljében definiált összetevőket. A valós hőmérséklet-vezérlő összetevőinek ezt a két interfészt kell implementálniuk. Ez a két felület már közzé van téve egy központi adattárban. Ebben a mintában a két interfész a következő:
- Termosztát
- Az Azure által kifejlesztett eszközinformációk
Adja meg az összetevők nevét. Ez a minta két termosztáttal és egy eszközinformációs összetevővel rendelkezik.
Adja meg azoknak a parancsoknak a parancsneveit, amelyekre az eszköz válaszol.
Határozza meg az állandót
serialNumber
. AzserialNumber
adott eszköz javítva van.Adja meg a parancskezelőket.
Adja meg a parancsválaszok küldéséhez szükséges függvényeket.
Segédfüggvények definiálása parancskérések naplózásához.
Adjon meg egy segédfüggvényt a tulajdonságok létrehozásához.
Adjon meg egy figyelőt a tulajdonságfrissítésekhez.
Adjon meg egy függvényt, amely telemetriát küld erről az eszközről. Mind a termosztátok, mind az alapértelmezett összetevő telemetriát küld. Ez a függvény paraméterként kapja meg az összetevő nevét.
Definiáljon egy függvényt
main
, amely:Az eszköz SDK használatával hoz létre egy eszközügyfélt, és csatlakozik az IoT Hubhoz. Az eszköz biztosítja azt, hogy az
modelId
IoT Hub IoT Plug and Play-eszközként azonosíthassa az eszközt.A függvény használatával megkezdi a parancskérések figyelését
onDeviceMethod
. A függvény beállít egy figyelőt a szolgáltatás parancskéréseihez:- Az eszköz DTDL-je határozza meg a parancsokat és
getMaxMinReport
areboot
parancsokat. - A
commandHandler
függvény meghatározza, hogy az eszköz hogyan reagál egy parancsra.
- Az eszköz DTDL-je határozza meg a parancsokat és
Elkezdi a telemetriai adatok küldését az és
sendTelemetry
a használatávalsetInterval
.A függvény használatával
helperCreateReportedPropertiesPatch
hozza létre a tulajdonságokat, ésupdateComponentReportedProperties
frissíti a tulajdonságokat.A tulajdonságfrissítések figyelésére használható
desiredPropertyPatchListener
.Letiltja az összes figyelőt és feladatot, és kilép a ciklusból a Q vagy a q billentyű lenyomásakor.
A környezet beállításakor négy környezeti változót hozott létre, hogy a mintát úgy konfigurálja, hogy a Device Provisioning Service (DPS) használatával csatlakozzon az IoT Hubhoz:
-
IOTHUB_DEVICE_SECURITY_TYPE az értékkel
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE a DPS-azonosító hatókörével.
-
IOTHUB_DEVICE_DPS_DEVICE_ID az értékkel
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY a regisztrációs elsődleges kulccsal.
-
IOTHUB_DEVICE_DPS_ENDPOINT az értékkel
global.azure-devices-provisioning.net
.
A mintakonfigurációval kapcsolatos további információkért tekintse meg a mintabeolvasást.
Most, hogy megismerte a kódot, futtassa a mintát a következő paranccsal:
node pnp_temperature_controller.js
Az alábbi kimenet azt jelzi, hogy az eszköz megkezdte a telemetriai adatok küldését a központba, és készen áll a parancsok és a tulajdonságfrissítések fogadására.
A minta futásának fenntartása a következő lépések végrehajtása során.
Az Azure IoT Explorer használata a kód ellenőrzéséhez
Az eszközügyfél-minta elindítása után az Azure IoT Explorer eszközzel ellenőrizze, hogy működik-e.
Nyissa meg az Azure IoT Explorert.
Az IoT Hubs lapon, ha még nem adott hozzá kapcsolatot az IoT Hubhoz, válassza a + Kapcsolat hozzáadása lehetőséget. Adja meg a korábban létrehozott IoT Hub kapcsolati sztring, és válassza a Mentés lehetőséget.
Az IoT Plug and Play Beállítások lapján válassza a + Helyi mappa hozzáadása > lehetőséget, és válassza ki azt a helyi modellmappát, ahová a modellfájlokat mentette.
Az IoT Hubs lapon kattintson a használni kívánt központ nevére. Megjelenik az IoT Hubon regisztrált eszközök listája.
Kattintson a korábban létrehozott eszköz eszközazonosítójára .
A bal oldali menüben az eszközhöz elérhető különböző típusú információk láthatók.
Válassza az IoT Plug and Play-összetevőket az eszköz modelladatainak megtekintéséhez.
Megtekintheti az eszköz különböző összetevőit. Az alapértelmezett összetevő és a továbbiak. Válasszon ki egy összetevőt, amellyel dolgozni szeretne.
Válassza a Telemetriai lapot, majd a Start gombra kattintva megtekintheti az eszköz által az összetevőhöz küldött telemetriai adatokat.
Válassza a Tulajdonságok (írásvédett) lapot az összetevőhöz jelentett írásvédett tulajdonságok megtekintéséhez.
Válassza a Tulajdonságok (írható) lapot az összetevőhöz frissíthető írható tulajdonságok megtekintéséhez.
Válasszon ki egy tulajdonságot a neve alapján, adjon meg egy új értéket, és válassza a Kívánt érték frissítése lehetőséget.
Az új érték megjelenítéséhez válassza a Frissítés gombot.
Válassza a Parancsok lapot az összetevő összes parancsának megtekintéséhez.
Válassza ki azt a parancsot, amelyet tesztelni szeretne, és ha van ilyen, állítsa be a paramétert. Válassza a Küldés parancsot az eszköz parancsának meghívásához. Az eszköz a parancsra válaszolva jelenik meg a parancssori ablakban, ahol a mintakód fut.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást összetevőkkel, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg a központnak küldött információkat az Azure IoT Explorer eszközzel. A mintaalkalmazás Pythonban van megírva, és szerepel a Pythonhoz készült Azure IoT-eszköz SDK-ban. A megoldáskészítők az Azure IoT Explorer eszközzel megismerhetik az IoT Plug and Play-eszközök képességeit anélkül, hogy bármilyen eszközkódot meg kellene tekinteniük.
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- Töltse le a mintakódot.
- Futtassa a mintaeszköz-alkalmazást, és ellenőrizze, hogy csatlakozik-e az IoT Hubhoz.
- Tekintse át a forráskódot.
Előfeltételek
A folytatás előtt győződjön meg arról, hogy beállította a környezetét, beleértve az IoT Hubot is.
Ezt az oktatóanyagot Linuxon vagy Windowson is futtathatja. Az oktatóanyagban szereplő rendszerhéjparancsok a ""/
elérési útelválasztók Linux-konvencióját követik, ha a Windowson végig követi őket, mindenképpen cserélje fel ezeket az elválasztókat a következőre: ""\
.
Az oktatóanyag elvégzéséhez telepítenie kell a Pythont a fejlesztői gépen. Tekintse meg az Azure IoT Python SDK aktuális Python-verziókövetelményeit. A Python-verziót a következő paranccsal ellenőrizheti:
python --version
A legújabb ajánlott verziót több platformra is letöltheti a python.org.
A kód letöltése
Az azure-iot-device csomag PIP-ként van közzétéve.
A helyi Python-környezetben telepítse a csomagot az alábbiak szerint:
pip install azure-iot-device
Ha elvégezte az oktatóanyagot: Csatlakoztassa a Windowson futó minta IoT Plug and Play eszközalkalmazást az IoT Hubhoz (Python), már klónozta az adattárat.
Klónozza a Python SDK IoT-adattárat:
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
A kód áttekintése
Ez a minta egy IoT Plug and Play hőmérsékletvezérlő eszközt implementál. Az a modell, amelyet ez a minta implementál, több összetevőt használ. A hőmérsékleti eszköz Digital Twins Definition Language (DTDL) modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Az azure-iot-sdk-python/samples/pnp mappa tartalmazza az IoT Plug and Play eszköz mintakódját. A hőmérséklet-vezérlő mintájának fájljai a következők:
- temp_controller_with_thermostats.py
- pnp_helper.py
A hőmérséklet-vezérlő több összetevővel és egy alapértelmezett összetevővel rendelkezik a hőmérséklet-vezérlő DTDL-modellje alapján.
Nyissa meg a temp_controller_with_thermostats.py fájlt egy tetszőleges szerkesztőben. A fájlban található kód:
Importálás
pnp_helper.py
a segítő módszerekhez való hozzáféréshez.Két digitális ikermodell-azonosítót (DTMI-t) határoz meg, amelyek egyedileg jelölik a DTDL-modellben definiált két különböző interfészt. A valós hőmérséklet-vezérlő összetevőinek ezt a két interfészt kell implementálniuk. Ez a két felület már közzé van téve egy központi adattárban. Ezeknek a DTM-eknek ismertnek kell lenniük a felhasználó számára, és az eszköz implementálási forgatókönyvétől függően változhatnak. Az aktuális minta esetében ez a két interfész a következő:
- Termosztát
- Az Azure által kifejlesztett eszközinformációk.
Meghatározza a megvalósítandó eszköz DTMI-jét
model_id
. A DTMI felhasználó által definiált, és meg kell egyeznie a DTDL-modellfájl DTMI-ével.Meghatározza a DTDL-fájl összetevőinek megadott neveket. A DTDL-ben két termosztát és egy eszközinformációs összetevő található. Az alapértelmezett összetevőben egy konstans
serial_number
is meg van határozva. Azserial_number
eszköz nem módosítható.A parancskezelő implementációit határozza meg. Ezek a kezelők határozzák meg, hogy mit tesz az eszköz, amikor parancskéréseket fogad.
Függvények definiálása parancsválasz létrehozásához. Ezek a függvények határozzák meg, hogyan válaszol az eszköz a parancskérelmekre. Parancsválaszfüggvényeket akkor hoz létre, ha egy parancsnak vissza kell küldenie egy egyéni választ az IoT Hubnak. Ha nincs megadva egy parancs válaszfüggvénye, a rendszer általános választ küld. Ebben a mintában csak a getMaxMinReport parancs rendelkezik egyéni válaszsal.
Definiál egy függvényt, amely telemetriát küld erről az eszközről. Mind a termosztátok, mind az alapértelmezett összetevő telemetriát küld. Ez a függvény egy választható összetevőnév-paramétert tartalmaz, amely lehetővé teszi annak azonosítását, hogy melyik összetevő küldte a telemetriát.
A parancskérelmek figyelőjének definiálása.
Figyelőt határoz meg a kívánt tulajdonságfrissítésekhez.
Olyan függvénye
main
van, amely:Az eszköz SDK használatával hoz létre egy eszközügyfélt, és csatlakozik az IoT Hubhoz. Az eszköz elküldi az
model_id
eszközt, hogy az IoT Hub IoT Plug and Play-eszközként azonosíthassa az eszközt.A tulajdonságok a
create_reported_properties
segédfájlban lévő függvény használatával hozhatók létre. Adja át az összetevő nevét és a tulajdonságokat kulcsértékpárként ehhez a függvényhez.Az összetevők olvasható tulajdonságainak frissítése hívással
patch_twin_reported_properties
.A függvény használatával megkezdi a parancskérések figyelését
execute_command_listener
. A függvény beállít egy figyelőt a szolgáltatás parancskéréseihez. A figyelő beállításakor meg kell adnia egymethod_name
,user_command_handler
és egy nem kötelezőcreate_user_response_handler
paramétert.- Ez
method_name
határozza meg a parancskérelmet. Ebben a példában a modell határozza meg a parancsok újraindítását és a GetMaxMinReportot. - A
user_command_handler
függvény határozza meg, hogy mit kell tennie az eszköznek, amikor parancsot kap. - A
create_user_response_handler
függvény létrehoz egy választ, amelyet elküld az IoT Hubnak egy parancs sikeres végrehajtásakor. Ezt a választ a portálon tekintheti meg. Ha ez a függvény nincs megadva, a rendszer általános választ küld a szolgáltatásnak.
- Ez
A tulajdonságfrissítések figyelésére használható
execute_property_listener
.Elkezdi a telemetriai adatok küldését a következő használatával
send_telemetry
: . A mintakód egy hurkot használ három telemetriai küldő függvény meghívásához. Mindegyik nyolc másodpercenként van meghívvaLetiltja az összes figyelőt és feladatot, és kilép a ciklusból a Q vagy a q billentyű lenyomásakor.
A környezet beállításakor négy környezeti változót hozott létre, hogy a mintát úgy konfigurálja, hogy a Device Provisioning Service (DPS) használatával csatlakozzon az IoT Hubhoz:
-
IOTHUB_DEVICE_SECURITY_TYPE az értékkel
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE a DPS-azonosító hatókörével.
-
IOTHUB_DEVICE_DPS_DEVICE_ID az értékkel
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY a regisztrációs elsődleges kulccsal.
-
IOTHUB_DEVICE_DPS_ENDPOINT az értékkel
global.azure-devices-provisioning.net
.
A mintakonfigurációval kapcsolatos további információkért tekintse meg a mintabeolvasást.
A minta futtatásához használja a következő parancsot:
python temp_controller_with_thermostats.py
A mintaeszköz néhány másodpercenként telemetriai üzeneteket küld az IoT Hubnak.
A következő kimenet azt jelzi, hogy az eszköz telemetriai adatokat küld a központnak, és készen áll a parancsok és a tulajdonságfrissítések fogadására.
A minta futásának fenntartása a következő lépések végrehajtása során.
Az Azure IoT Explorer használata a kód ellenőrzéséhez
Az eszközügyfél-minta elindítása után az Azure IoT Explorer eszközzel ellenőrizze, hogy működik-e.
Nyissa meg az Azure IoT Explorert.
Az IoT Hubs lapon, ha még nem adott hozzá kapcsolatot az IoT Hubhoz, válassza a + Kapcsolat hozzáadása lehetőséget. Adja meg a korábban létrehozott IoT Hub kapcsolati sztring, és válassza a Mentés lehetőséget.
Az IoT Plug and Play Beállítások lapján válassza a + Helyi mappa hozzáadása > lehetőséget, és válassza ki azt a helyi modellmappát, ahová a modellfájlokat mentette.
Az IoT Hubs lapon kattintson a használni kívánt központ nevére. Megjelenik az IoT Hubon regisztrált eszközök listája.
Kattintson a korábban létrehozott eszköz eszközazonosítójára .
A bal oldali menüben az eszközhöz elérhető különböző típusú információk láthatók.
Válassza az IoT Plug and Play-összetevőket az eszköz modelladatainak megtekintéséhez.
Megtekintheti az eszköz különböző összetevőit. Az alapértelmezett összetevő és a továbbiak. Válasszon ki egy összetevőt, amellyel dolgozni szeretne.
Válassza a Telemetriai lapot, majd a Start gombra kattintva megtekintheti az eszköz által az összetevőhöz küldött telemetriai adatokat.
Válassza a Tulajdonságok (írásvédett) lapot az összetevőhöz jelentett írásvédett tulajdonságok megtekintéséhez.
Válassza a Tulajdonságok (írható) lapot az összetevőhöz frissíthető írható tulajdonságok megtekintéséhez.
Válasszon ki egy tulajdonságot a neve alapján, adjon meg egy új értéket, és válassza a Kívánt érték frissítése lehetőséget.
Az új érték megjelenítéséhez válassza a Frissítés gombot.
Válassza a Parancsok lapot az összetevő összes parancsának megtekintéséhez.
Válassza ki azt a parancsot, amelyet tesztelni szeretne, és ha van ilyen, állítsa be a paramétert. Válassza a Küldés parancsot az eszköz parancsának meghívásához. Az eszköz a parancsra válaszolva jelenik meg a parancssori ablakban, ahol a mintakód fut.
Az erőforrások eltávolítása
Ha további eszközfejlesztői cikkeket tervez folytatni, megtarthatja és újra felhasználhatja a cikkben használt erőforrásokat. Ellenkező esetben törölheti a cikkben létrehozott erőforrásokat, hogy elkerülje a további díjakat.
Egyszerre törölheti a központot és a regisztrált eszközt is a teljes erőforráscsoport törlésével az alábbi Azure CLI-paranccsal. Ne használja ezt a parancsot, ha ezek az erőforrások megosztanak egy erőforráscsoportot más megtartani kívánt erőforrásokkal.
az group delete --name <YourResourceGroupName>
Ha csak az IoT Hubot szeretné törölni, futtassa a következő parancsot az Azure CLI használatával:
az iot hub delete --name <YourIoTHubName>
Ha csak az IoT Hubon regisztrált eszközidentitást szeretné törölni, futtassa a következő parancsot az Azure CLI használatával:
az iot hub device-identity delete --hub-name <YourIoTHubName> --device-id <YourDeviceID>
Előfordulhat, hogy a klónozott mintafájlokat is el szeretné távolítani a fejlesztőgépről.
Következő lépések
Ebben az oktatóanyagban megtanulta, hogyan csatlakoztathat egy IoT Plug and Play-eszközt összetevőkkel egy IoT Hubhoz. Az IoT Plug and Play eszközmodellekkel kapcsolatos további információkért lásd: