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.
V tomto kurzu použijete nástroje portálu Azure IoT Hub a rozhraní příkazového řádku Azure k otestování připojení zařízení. Tento kurz také využívá jednoduchý simulátor zařízení, který spustíte na svém stolním počítači.
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
V tomto kurzu se naučíte:
- Zkontrolujte ověření vašeho zařízení
- Kontrola připojení zařízení ke cloudu
- Kontrola připojení cloudu k zařízení
- Kontrola synchronizace dvojčat zařízení
Požadavky
V tomto kurzu se k vytváření cloudových prostředků používá Azure CLI. Příkazy rozhraní příkazového řádku můžete spustit dvěma způsoby:
Použijte prostředí Bash v Azure Cloud Shellu. Pro více informací si přečtěte Průvodce rychlým startem pro Azure Cloud Shell – Bash.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
- Přihlaste se k Azure CLI pomocí příkazu az login .
- Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
- Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Poznámka:
Tento článek používá nejnovější verzi rozšíření Azure IoT, která se nazývá
azure-iot. Starší verze se nazýváazure-cli-iot-ext. Najednou byste měli mít nainstalovanou jenom jednu verzi. Pomocí příkazuaz extension listmůžete ověřit aktuálně nainstalovaná rozšíření.Slouží
az extension remove --name azure-cli-iot-extk odebrání starší verze rozšíření.Slouží
az extension add --name azure-iotk přidání nové verze rozšíření.Chcete-li zjistit, jaká rozšíření jsou aktuálně nainstalována, použijte
az extension list.Ukázková aplikace, kterou spustíte v tomto kurzu, používá Node.js. Na vývojovém počítači potřebujete Node.js v10.x.x nebo novější.
Node.js pro různé platformy si můžete stáhnout z webu nodejs.org.
Aktuální verzi Node.js na počítači používaném pro vývoj můžete ověřit pomocí následujícího příkazu:
node --version
Naklonujte nebo stáhněte ukázkový projekt Node.js z ukázek Azure IoT pro Node.js.
Ujistěte se, že je ve firewallu otevřený port 8883. Ukázka zařízení v tomto kurzu používá protokol MQTT, který komunikuje přes port 8883. Tento port může být blokovaný v některých podnikových a vzdělávacích síťových prostředích. Další informace a způsoby řešení tohoto problému najdete v tématu Připojení ke službě IoT Hub (MQTT).
Vytvoření centra IoT
V této části použijete Azure CLI k vytvoření centra IoT a skupiny prostředků. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Centrum IoT funguje jako centrální centrum zpráv pro obousměrnou komunikaci mezi vaší aplikací IoT a zařízeními.
Pokud už ve svém předplatném Azure máte centrum IoT, můžete tuto část přeskočit.
K vytvoření centra IoT a skupiny prostředků:
Spusťte aplikaci příkazového řádku (CLI). Pokud chcete spustit příkazy rozhraní příkazového řádku ve zbývající části tohoto článku, zkopírujte syntaxi příkazu, vložte ho do aplikace CLI, upravte hodnoty proměnných a stiskněte
Enter.- Pokud používáte Cloud Shell, vyberte v příkazech rozhraní příkazového řádku tlačítko Vyzkoušet a spusťte Cloud Shell v rozděleném okně prohlížeče. Nebo můžete Cloud Shell otevřít na samostatné kartě prohlížeče.
- Pokud používáte Azure CLI místně, spusťte konzolovou aplikaci CLI a přihlaste se k Azure CLI.
Spusťte az extension add pro instalaci nebo upgrade rozšíření azure-iot na aktuální verzi.
az extension add --upgrade --name azure-iotV aplikaci CLI spusťte příkaz az group create k vytvoření skupiny prostředků. Následující příkaz vytvoří skupinu prostředků s názvem MyResourceGroup na místě eastus.
Poznámka:
Volitelně můžete nastavit jiné umístění. Pokud chcete zobrazit dostupná umístění, spusťte
az account list-locationspříkaz . V tomto rychlém startu se používá eastus , jak je znázorněno v ukázkovém příkazu.az group create --name MyResourceGroup --location eastusSpuštěním příkazu az iot hub create vytvořte IoT Hub. Vytvoření centra IoT může trvat několik minut.
YourIoTHubName. Nahraďte tento zástupný symbol a okolní složené závorky v následujícím příkazu pomocí názvu, který jste zvolili pro centrum IoT. Název centra IoT musí být v Azure globálně jedinečný. Použijte název svého IoT hubu v celé této úvodní příručce, kdykoli uvidíte zástupný symbol.
az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
Kontrola ověření zařízení
Zařízení se musí ověřit ve vašem centru, aby mohlo vyměňovat veškerá data s centrem. Ke správě zařízení a kontrole ověřovacích klíčů, které používají, můžete na portálu využít nástroj Zařízení IoT v části Správa zařízení. V této části kurzu přidáte nové testovací zařízení, načtete jeho klíč a zkontrolujete, jestli se testovací zařízení připojí k centru. Později resetujete ověřovací klíč a budete zkoumat, co se stane, když se zařízení pokusí použít zastaralý klíč.
Registrace zařízení
Zařízení musí být zaregistrované ve vašem centru IoT Hub, aby se mohlo připojit. V této části použijete Azure CLI k vytvoření identity zařízení.
Pokud už máte zařízení zaregistrované ve službě IoT Hub, můžete tuto část přeskočit.
Vytvoření identity zařízení:
V prostředí shellu CLI spusťte příkaz az iot hub device-identity create. Tento příkaz vytvoří identitu zařízení.
YourIoTHubName. Nahraďte tento zástupný symbol a okolní složené závorky v následujícím příkazu pomocí názvu, který jste zvolili pro centrum IoT. Název centra IoT musí být v Azure globálně jedinečný.
myDevice. Tento název můžete použít pro ID zařízení v tomto článku nebo zadat jiný název zařízení.
az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}Spusťte příkaz az iot hub device-identity connection-string show .
az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}Výstup připojovacího řetězce je v následujícím formátu:
HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>Uložte připojovací řetězec do zabezpečeného umístění.
Poznámka:
Nechte aplikaci rozhraní příkazového řádku otevřenou. Použijete ho v dalších krocích.
Simulace testovacího zařízení
Pokud chcete simulovat zařízení odesílající telemetrii do centra IoT, spusťte Node.js aplikaci simulovaného zařízení, kterou jste si stáhli dříve.
V okně terminálu na vývojovém počítači přejděte do kořenové složky ukázkového Node.js projektu, který jste stáhli. Pak přejděte do složky iot-hub\Tutorials\ConnectivityTests .
V okně terminálu pomocí následujících příkazů nainstalujte požadované knihovny a spusťte aplikaci simulovaného zařízení. Použijte připojovací řetězec, který jste si poznamenali při registraci zařízení.
npm install node SimulatedDevice-1.js "{your_device_connection_string}"Po připojení k centru se v okně terminálu zobrazí zpráva o úspěchu:
Teď jste se ze zařízení úspěšně ověřili pomocí klíče zařízení vygenerovaného centrem IoT.
Resetování klíčů
V této části resetujete klíč zařízení a uvidíte chybu, ke které dojde, pokud se simulované zařízení pokusí o připojení.
Pokud chcete resetovat primární klíč zařízení pro vaše zařízení, spusťte příkaz az iot hub device-identity update :
# Generate a new Base64 encoded key using the current date read key < <(date +%s | sha256sum | base64 | head -c 32) # Reset the primary device key for test device az iot hub device-identity update --device-id {your_device_id} --set authentication.symmetricKey.primaryKey=$key --hub-name {your_iot_hub_name}V okně terminálu na počítači pro vývoj znovu spusťte aplikaci simulovaného zařízení:
npm install node SimulatedDevice-1.js "{your_device_connection_string}"Tentokrát se poté, co se aplikace pokusí o připojení, zobrazí chyba ověřování:
Vygenerování tokenu sdíleného přístupového podpisu (SAS)
Pokud zařízení používá některou ze sad SDK pro zařízení centra IoT Hub, vygeneruje kód knihovny SDK token SAS potřebný k ověření u centra. Token SAS se generuje z názvu centra, názvu zařízení a klíče zařízení.
V některých scénářích, například v cloudové bráně protokolu nebo v rámci schématu vlastního ověřování, může být nutné, abyste token SAS vygenerovali sami. Při řešení potíží s kódem generování SAS je užitečné vygenerovat známý token SAS, který se použije během testování.
Poznámka:
Ukázka SimulatedDevice-2.js zahrnuje příklady generování tokenu SAS se sadou SDK i bez ní.
Spuštěním příkazu az iot hub generate-sas-token vygenerujte známý dobrý token SAS pomocí rozhraní příkazového řádku:
az iot hub generate-sas-token --device-id {your_device_id} --hub-name {your_iot_hub_name}Zkopírujte celý text vygenerovaného tokenu SAS. Token SAS vypadá jako v následujícím příkladu:
SharedAccessSignature sr=tutorials-iot-hub.azure-devices.net%2Fdevices%2FmyDevice&sig=xxxxxx&se=111111V okně terminálu na počítači pro vývoj přejděte do kořenové složky ukázkového projektu Node.js, který máte stažený. Pak přejděte do složky iot-hub\Tutorials\ConnectivityTests .
V okně terminálu spusťte následující příkazy pro instalaci požadovaných knihoven a spuštění aplikace simulovaného zařízení:
npm install node SimulatedDevice-2.js "{Your SAS token}"Okno terminálu zobrazí zprávu o úspěšném připojení k centru pomocí tokenu SAS:
Teď jste se ze zařízení úspěšně ověřili pomocí tokenu SAS vygenerovaného příkazem z příkazového řádku. Soubor SimulatedDevice-2.js obsahuje ukázkový kód pro postup, jak vygenerovat token SAS v kódu.
Protokoly
Zařízení může k připojení do centra IoT použít kterýkoli z následujících protokolů:
| Protokol | Odchozí port |
|---|---|
| MQTT | 8883 |
| MQTT přes WebSockets | 443 |
| AMQP | 5671 |
| AMQP přes WebSockets | 443 |
| HTTPS | 443 |
Pokud odchozí port blokuje brána firewall, zařízení se nemůže připojit:
Kontrola připojení zařízení ke cloudu
Jakmile se zařízení připojí, může začít odesílat telemetrii do centra IoT. V této části se dozvíte, jak můžete ověřit, že telemetrie odesílaná ze zařízení dojde do centra.
Odesílání zpráv ze zařízení do cloudu
Vzhledem k tomu, že jsme resetovali řetězec připojení pro vaše zařízení v předchozí části, použijte příkaz az iot hub device-identity connection-string show k načtení aktualizovaného řetězce připojení.
az iot hub device-identity connection-string show --device-id {your_device_id} --output table --hub-name {your_iot_hub_name}Pokud chcete spustit simulované zařízení, které odesílá zprávy, přejděte do složky iot-hub\Tutorials\ConnectivityTests v kódu, který jste stáhli.
V okně terminálu spusťte následující příkazy pro instalaci požadovaných knihoven a spuštění aplikace simulovaného zařízení:
npm install node SimulatedDevice-3.js "{your_device_connection_string}"V okně terminálu se během odesílání telemetrie do centra IoT budou zobrazovat informace:
Sledování příchozích zpráv
Můžete použít metriky na portálu, abyste ověřili, že se zprávy telemetrie dostanou do vašeho centra IoT.
Na portálu Azure vyberte v rozevíracím seznamu Prostředky své centrum IoT.
V navigační nabídce vyberte Metriky v části Monitorování .
Vyberte telemetrické zprávy odeslané jako metriku a nastavte časový rozsah na minulou hodinu. Graf zobrazuje agregovaný počet zpráv odeslaných simulovaným zařízením:
Po spuštění simulovaného zařízení několik minut trvá, než jsou metriky k dispozici.
Kontrola připojení cloudu k zařízení
V této části se vysvětluje, jak provést testovací volání zařízení přímou metodou a zkontrolovat tak jeho připojení ke cloudu. Na vývojovém počítači spustíte simulované zařízení, které bude naslouchat voláním přímých metod z centra.
V okně terminálu následujícím příkazem spusťte aplikaci simulovaného zařízení:
node SimulatedDevice-3.js "{your_device_connection_string}"V samostatném okně použijte příkaz az iot hub invoke-device-method k vyvolání přímé metody na zařízení:
az iot hub invoke-device-method --device-id {your_device_id} --method-name TestMethod --timeout 10 --method-payload '{"key":"value"}' --hub-name {your_iot_hub_name}Jakmile simulované zařízení přijme volání přímou metodou, vytiskne zprávu na konzole:
Když simulované zařízení úspěšně přijme volání přímé metody, odešle potvrzení zpět do centra:
Kontrola synchronizace dvojčat
Zařízení používají digitální dvojčata pro synchronizaci stavu mezi zařízením a centrálním uzlem. V této části se naučíte pomocí rozhraní příkazového řádku odeslat do zařízení požadované vlastnosti a přečíst ohlášené vlastnosti odeslané zařízením.
Simulované zařízení, s kterým v této části pracujete, odesílá ohlášené vlastnosti do centra při každém svém spuštění a při přijetí požadovaných vlastností je vždy vytiskne na konzolu.
V okně terminálu následujícím příkazem spusťte aplikaci simulovaného zařízení:
node SimulatedDevice-3.js "{your_device_connection_string}"V samostatném okně spusťte příkaz az iot hub device-twin show a ověřte, že centrum přijalo ohlášené vlastnosti ze zařízení:
az iot hub device-twin show --device-id {your_device_id} --hub-name {your_iot_hub_name}Ve výstupu z příkazu vidíte v části s ohlášenými vlastnostmi položku devicelaststarted. Tato vlastnost obsahuje datum a čas posledního spuštění simulovaného zařízení.
Pokud chcete ověřit, že centrum může do zařízení odesílat požadované hodnoty vlastností, použijte příkaz az iot hub device-twin update :
az iot hub device-twin update --set properties.desired='{"mydesiredproperty":"propertyvalue"}' --device-id {your_device_id} --hub-name {your_iot_hub_name}Simulované zařízení při přijetí aktualizace požadovaných vlastností z centra vytiskne zprávu:
Vedle průběžného přijímání změn v požadovaných vlastnostech je simulované zařízení také automaticky zkontroluje při svém spuštění.
Vyčistěte zdroje
Pokud IoT hub již nepotřebujete, odstraňte ho spolu se skupinou prostředků v portálu. Uděláte to tak, že vyberete skupinu prostředků, která obsahuje centrum IoT, a vyberete Odstranit.
Další kroky
V tomto kurzu jste se naučili, jak zkontrolovat klíče zařízení, připojení zařízení ke cloudu, připojení cloudu k zařízení a synchronizaci dvojčat zařízení. Další informace o tom, jak sledovat centrum IoT, najdete v článku s postupy monitorování služby IoT Hub.