Oktatóanyag: Linuxon vagy Windowson futó IoT Plug and Play-eszközalkalmazás csatlakoztatása az IoT Hubhoz
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg az Azure IoT Explorer eszközt az általa küldött telemetriai adatok megtekintéséhez. 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.
Fontos
Ez a cikk az eszközök közös hozzáférésű jogosultságkóddal, más néven szimmetrikus kulcshitelesítéssel való csatlakoztatásának lépéseit tartalmazza. Ez a hitelesítési módszer alkalmas tesztelésre és kiértékeléshez, de az eszköz hitelesítése X.509-tanúsítványokkal biztonságosabb módszer. További információkért tekintse meg a kapcsolatbiztonság ajánlott biztonsági eljárásait>.
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 Linux elérésiút-elválasztókra vonatkozó konvencióját követik, ha windowsos környezetben követi őket, mindenképpen felcserélje ezeket az elválasztókat \
.
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 2.8.12-es vagy újabb verziójú-ecmake
, és hogy a GCCverziója 4.4.7-es vagy újabb-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örnyezetben:
- 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
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 a választott könyvtárban. 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
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_simple_thermostat/.
Kattintson a jobb gombbal a pnp_simple_thermostat.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_simple_thermostat\\pnp_pnp_simple_thermostat.c", "projectTarget": "", "name": "pnp_simple_thermostat.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_simple_thermostat.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_simple_thermostat.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 telemetriai adatokat küld a központnak. A minta futásának fenntartása a következő lépések végrehajtása során.
A kód létrehozása a cmake használatával
A cmake parancssori segédprogrammal hozhatja létre a kódot:
Hozzon létre egy cmake alkönyvtárat az 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 és a minták létrehozásához:
cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF .. cmake --build .
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 mintakonfigurációval kapcsolatos további információkért tekintse meg a mintabeolvasást.
A mintaalkalmazás futtatása az SDK-ban, amely egy IoT Plug and Play-eszközt szimulál, telemetriát küld az IoT Hubnak:
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_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe
Tipp.
A windowsos Visual Studio kódvégrehajtásának nyomon követéséhez adjon hozzá egy töréspontot a main
függvényhez a pnp_simple_thermostat.c fájlban.
Az eszköz készen áll a parancsok és a tulajdonságfrissítések fogadására, és telemetriai adatokat küld a központnak. 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 egyszerű IoT Plug and Play termosztát-eszközt implementál. A termosztátmodell nem használ IoT Plug and Play-összetevőket. A termosztát-eszköz DTDL-modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Az eszközkód a standard függvénnyel csatlakozik az IoT Hubhoz:
deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)
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:
static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";
...
IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)
A tulajdonságokat frissítéseket, parancsokat kezelő és telemetriai adatokat küldő kód megegyezik az IoT Plug and Play-konvenciót nem használó eszközök kódjának kódjaival.
A kód a Parson-kódtár használatával elemzi az IoT Hubról küldött hasznos adatok JSON-objektumait:
// JSON parser
#include "parson.h"
Az erőforrások eltávolítása
Ha végzett a rövid útmutatókkal és az oktatóanyagokkal, tekintse meg az erőforrások megtisztítása című témakört.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg az Azure IoT Explorer eszközt az általa küldött telemetriai adatok megtekintéséhez. A mintaalkalmazás C# nyelven van megírva, és a C#-hoz készült Azure IoT 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.
Fontos
Ez a cikk az eszközök közös hozzáférésű jogosultságkóddal, más néven szimmetrikus kulcshitelesítéssel való csatlakoztatásának lépéseit tartalmazza. Ez a hitelesítési módszer alkalmas tesztelésre és kiértékeléshez, de az eszköz hitelesítése X.509-tanúsítványokkal biztonságosabb módszer. További információkért tekintse meg a kapcsolatbiztonság ajánlott biztonsági eljárásait>.
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 Linux elérésiút-elválasztókra vonatkozó konvencióját követik, ha windowsos környezetben követi őket, mindenképpen felcserélje ezeket az elválasztókat \
.
A kód letöltése
Ebben az oktatóanyagban egy fejlesztési környezetet készít, a segítségével klónozhatja és létrehozhatja az Azure IoT SDK for C#-adattárat.
Nyisson meg egy parancssort egy tetszőleges mappában. Futtassa a következő parancsot a Microsoft Azure IoT SDK for C# (.NET) GitHub-adattár ezen a helyen való klónozásához:
git clone https://github.com/Azure/azure-iot-sdk-csharp
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/Thermostat
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 telemetriai adatokat küld a központnak. 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 egyszerű IoT Plug and Play termosztát-eszközt implementál. A minta implementálási modellje nem használ IoT Plug and Play-összetevőket. A termosztátos eszköz Digital Twins definíciós nyelvének (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 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}.");
});
}
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:Thermostat;1";
A tulajdonságokat frissítéseket, parancsokat kezelő és telemetriai adatokat küldő kód megegyezik az IoT Plug and Play-konvenciót nem használó eszközök kódjának kódjaival.
A minta egy JSON-kódtár használatával elemzi az IoT Hubról küldött hasznos adatok JSON-objektumait:
using Newtonsoft.Json;
...
DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);
Az erőforrások eltávolítása
Ha végzett a rövid útmutatókkal és az oktatóanyagokkal, tekintse meg az erőforrások megtisztítása című témakört.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg az Azure IoT Explorer eszközt az általa küldött telemetriai adatok megtekintéséhez. 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.
Fontos
Ez a cikk az eszközök közös hozzáférésű jogosultságkóddal, más néven szimmetrikus kulcshitelesítéssel való csatlakoztatásának lépéseit tartalmazza. Ez a hitelesítési módszer alkalmas tesztelésre és kiértékeléshez, de az eszköz hitelesítése X.509-tanúsítványokkal biztonságosabb módszer. További információkért tekintse meg a kapcsolatbiztonság ajánlott biztonsági eljárásait>.
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 Linux elérésiút-elválasztókra vonatkozó konvencióját követik, ha windowsos környezetben követi őket, mindenképpen felcserélje ezeket az elválasztókat \
.
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
Ebben az oktatóanyagban egy fejlesztési környezetet készít, a segítségével klónozhat és létrehozhatja az Azure IoT Hub Device Java SDK-t.
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 kód létrehozása
Keresse meg a termosztátminta 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/thermostat-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 mintakonfigurációval kapcsolatos további információkért tekintse meg a mintabeolvasást.
A /device/iot-device-samples/pnp-device-sample/thermostat-device-sample mappából futtassa az alkalmazást:
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"
Az eszköz készen áll a parancsok és a tulajdonságfrissítések fogadására, és telemetriai adatokat küld a központnak. 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 egyszerű IoT Plug and Play termosztát-eszközt implementál. A minta implementálási modellje nem használ IoT Plug and Play-összetevőket. A termosztát-eszköz 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";
A tulajdonságokat frissítéseket, parancsokat kezelő és telemetriai adatokat küldő kód megegyezik az IoT Plug and Play-konvenciót nem használó eszközök kódjának kódjaival.
A minta egy JSON-kódtár használatával elemzi az IoT Hubról küldött hasznos adatok JSON-objektumait:
import com.google.gson.Gson;
...
Date since = new Gson().fromJson(jsonRequest, Date.class);
Az erőforrások eltávolítása
Ha végzett a rövid útmutatókkal és az oktatóanyagokkal, tekintse meg az erőforrások megtisztítása című témakört.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg az Azure IoT Explorer eszközt az általa küldött telemetriai adatok megtekintéséhez. A mintaalkalmazás Node.js van megírva, és az Azure IoT-eszköz SDK 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.
Fontos
Ez a cikk az eszközök közös hozzáférésű jogosultságkóddal, más néven szimmetrikus kulcshitelesítéssel való csatlakoztatásának lépéseit tartalmazza. Ez a hitelesítési módszer alkalmas tesztelésre és kiértékeléshez, de az eszköz hitelesítése X.509-tanúsítványokkal biztonságosabb módszer. További információkért tekintse meg a kapcsolatbiztonság ajánlott biztonsági eljárásait>.
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 Linux elérésiút-elválasztókra vonatkozó konvencióját követik, ha windowsos környezetben követi őket, mindenképpen felcserélje ezeket az elválasztókat \
.
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
Ebben az oktatóanyagban egy fejlesztési környezetet készít elő, a Node.js az Azure IoT Hub Device SDK klónozásához és létrehozásához.
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 IoT Hubhoz csatlakozó eszközt szimulál. 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
A mintaeszköz futtatása
Ez a minta egy egyszerű IoT Plug and Play termosztát-eszközt implementál. A minta implementálási modellje nem használ IoT Plug and Play-összetevőket. A termosztát-eszköz DTDL-modellfájlja határozza meg az eszköz által implementált telemetriát, tulajdonságokat és parancsokat.
Nyissa meg a pnp_simple_thermostat.js fájlt. Ebben a fájlban a következő lépéseket láthatja:
- Importálja a szükséges illesztőket.
- Írjon egy tulajdonságfrissítési kezelőt és egy parancskezelőt.
- Kezelje a kívánt tulajdonságjavításokat, és küldjön telemetriát.
- Ha szükséges, az eszközt az Azure Device Provisioning Service (DPS) használatával építheti ki.
A fő függvényben láthatja, hogyan jön össze az egész:
- Hozza létre az eszközt a kapcsolati sztring, vagy hozza létre a DPS használatával.)
- A modelID beállítással adja meg az IoT Plug and Play eszközmodellt.
- Engedélyezze a parancskezelőt.
- Telemetria küldése az eszközről a központba.
- Kérje le az ikereszközöket, és frissítse a jelentett tulajdonságokat.
- Engedélyezze a kívánt tulajdonságfrissítés-kezelőt.
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.
Futtassa a mintaalkalmazást egy IoT Plug and Play-eszköz szimulálásához, amely telemetriát küld az IoT Hubnak. A mintaalkalmazás futtatásához használja a következő parancsot:
node pnp_simple_thermostat.js
Az alábbi 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 végzett a rövid útmutatókkal és az oktatóanyagokkal, tekintse meg az erőforrások megtisztítása című témakört.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy minta IoT Plug and Play-eszközalkalmazást, hogyan csatlakoztathatja azt az IoT Hubhoz, és hogyan tekintheti meg az Azure IoT Explorer eszközt az általa küldött telemetriai adatok megtekintéséhez. A mintaalkalmazás Pythonhoz készült, és az Azure IoT Hub Device SDK for Python 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.
Fontos
Ez a cikk az eszközök közös hozzáférésű jogosultságkóddal, más néven szimmetrikus kulcshitelesítéssel való csatlakoztatásának lépéseit tartalmazza. Ez a hitelesítési módszer alkalmas tesztelésre és kiértékeléshez, de az eszköz hitelesítése X.509-tanúsítványokkal biztonságosabb módszer. További információkért tekintse meg a kapcsolatbiztonság ajánlott biztonsági eljárásait>.
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 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 helyi Python-környezetben telepítse a csomagot az alábbiak szerint:
pip install azure-iot-device
Klónozza a Python SDK IoT-adattárat:
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
A mintaeszköz futtatása
Az azure-iot-sdk-python/samples/pnp mappa tartalmazza az IoT Plug and Play eszköz mintakódját. Ez az oktatóanyag a simple_thermostat.py fájlt használja. Ez a mintakód egy IoT Plug and Play-kompatibilis eszközt implementál, és az Azure IoT Python-eszköz ügyféloldali kódtárát használja.
Nyissa meg a simple_thermostat.py fájlt egy szövegszerkesztőben. Figyelje meg, hogyan:
Egyetlen ikereszköz-modellazonosítót (DTMI) határoz meg, amely egyedileg jelöli a termosztátot. A DTMI-nek ismertnek kell lennie a felhasználó számára, és az eszköz implementálási forgatókönyvétől függően változik. Az aktuális minta esetében a modell egy olyan termosztátot jelöl, amely telemetriával, tulajdonságokkal és parancsokkal rendelkezik a figyelési hőmérséklethez társítva.
A parancskezelő implementációit definiáló függvényekkel rendelkezik. Ezeket a kezelőket úgy kell megírni, hogy az eszköz hogyan reagáljon a parancskérelmekre.
Van egy függvénye, amely parancsválaszt határoz meg. Parancsválaszfüggvényeket hoz létre, amelyek választ küldenek az IoT Hubnak.
Egy beviteli billentyűzetfigyelő függvényt határoz meg, amely lehetővé teszi az alkalmazásból való kilépést.
Fő függvénye van. A fő függvény:
Az eszköz SDK használatával hoz létre egy eszközügyfélt, és csatlakozik az IoT Hubhoz.
Frissíti a tulajdonságokat. A termosztát modell a termosztát két tulajdonságát határozza meg és
maxTempSinceLastReboot
határozza megtargetTemperature
. A tulajdonságok apatch_twin_reported_properties
megadott metódussal frissülnek.device_client
A parancskérések figyelése a execute_command_listener függvénnyel kezdődik. A függvény beállít egy "figyelőt" a szolgáltatásból érkező parancsok figyeléséhez. A figyelő beállításakor meg kell adnia egy ,
user_command_handler
éscreate_user_response_handler
.method_name
- 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.
- A
Elkezdi a telemetriai adatok küldését. A pnp_send_telemetry a pnp_methods.py fájlban van definiálva. A mintakód egy ciklus használatával hívja meg ezt a függvényt nyolc másodpercenként.
Letiltja az összes figyelőt és feladatot, és a Q vagy a q billentyű lenyomásakor létezik a hurok.
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:
python simple_thermostat.py
A következő kimenet jelenik meg, amely 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:
Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message
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 végzett a rövid útmutatókkal és az oktatóanyagokkal, tekintse meg az erőforrások megtisztítása című témakört.
Ha korlátozott eszközökhöz fejleszt, az IoT Plug and Play a következőkkel használható:
Ez a cikk hivatkozásokat és erőforrásokat tartalmaz ezekhez a korlátozott forgatókönyvekhez.
Előfeltételek
A cikkben szereplő minták közül sokhoz egy adott hardvereszközre van szükség, és az előfeltételek az egyes minták esetében eltérőek. Az előfeltételekre, a konfigurációra és a létrehozásra vonatkozó utasításokért kövesse a megfelelő mintára mutató hivatkozást.
A Beágyazott C SDK használata
Az SDK for Embedded C egy egyszerűsített megoldást kínál a korlátozott eszközök Azure IoT-szolgáltatásokhoz való csatlakoztatására, beleértve az IoT Plug and Play-konvenciók használatát is. Az alábbi hivatkozások az MCU-alapú eszközök mintáit, valamint oktatási és hibakeresési célokat szolgálnak.
MCU-alapú eszköz használata
Az SDK for Embedded C, a Device Provisioning Service és az IoT Plug and Play teljes körű oktatóanyagáért tekintse meg a PIC-IoT Wx fejlesztői tábla újrakonfigurálását az Azure-hoz való csatlakozáshoz az IoT Hub Device Provisioning Service-n keresztül.
Bevezető minták
Az SDK for Embedded C-adattár több mintát tartalmaz, amelyek bemutatják az IoT Plug and Play használatát:
Feljegyzés
Ezek a minták oktatási és hibakeresési célokból Windowson és Linuxon futnak. Éles környezetben a minták csak korlátozott eszközökhöz készültek.
Az Eclipse ThreadX használata
Az Eclipse ThreadX egy egyszerűsített réteget tartalmaz, amely natív kapcsolatot biztosít az Azure IoT-felhőszolgáltatásokhoz. Ez a réteg egy egyszerű mechanizmust biztosít a korlátozott eszközök Azure IoT-hez való csatlakoztatásához az Eclipse ThreadX speciális funkcióinak használata közben. További információkért tekintse meg az Eclipse ThreadX áttekintését.
Eszközláncok
Az Eclipse ThreadX-minták különböző IDE- és eszközlánc-kombinációkkal vannak ellátva, például:
- IAR: IAR Embedded Workbench IDE
- GCC/CMake: A nyílt forráskódú CMake buildrendszerre és a GNU Arm Embedded eszközláncra épül.
- MCUExpresso: NXP MCUXpresso IDE
- STM32Cube: STMicroelectronics STM32Cube IDE
- MPLAB: Microchip MPLAB X IDE
Példák
Az alábbi táblázat olyan példákat sorol fel, amelyek bemutatják, hogyan kezdheti el a különböző eszközökön az Eclipse ThreadX és az IoT Plug and Play használatát:
Gyártó | Eszköz | Példák |
---|---|---|
Microchip | ATSAME54-XPRO | GCC/CMake • IAR • MPLAB |
MXCHIP | AZ3166 | GCC/CMake |
NXP | MIMXRT1060-EVK | GCC/CMake • IAR • MCUXpresso |
STMicroelectronics | 32F746GDISCOVERY | IAR • STM32Cube |
STMicroelectronics | B-L475E-IOT01 | GCC/CMake • IAR • STM32Cube |
STMicroelectronics | B-L4S5I-IOT01 | GCC/CMake • IAR • STM32Cube |
Következő lépések
Ebben az oktatóanyagban megtanulta, hogyan csatlakoztathat egy IoT Plug and Play-eszközt egy IoT Hubhoz. Az IoT Plug and Play-eszközökkel interakcióba lépő megoldások készítéséről az alábbiakban olvashat bővebben: