Tutorial: Interaja com um dispositivo IoT Plug and Play conectado à sua solução
O IoT Plug and Play simplifica a IoT permitindo que você interaja com os recursos de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar o C# para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.
Pré-requisitos
Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.
Você pode executar este tutorial no Linux ou Windows. Os comandos shell neste tutorial seguem a convenção do Linux para separadores de caminho '/
', se você estiver acompanhando no Windows, certifique-se de trocar esses separadores por '\
'.
- O SDK .NET mais recente para sua plataforma.
- Git.
Clone o repositório do SDK com o código de exemplo
Se você concluiu o Tutorial: Conectar um aplicativo de dispositivo IoT Plug and Play de exemplo em execução no Windows ao Hub IoT (C#), já clonou o repositório.
Clone os exemplos do repositório GitHub do SDK do Azure IoT para C#. Abra um prompt de comando em uma pasta de sua escolha. Execute o seguinte comando para clonar o Microsoft Azure IoT SDK para repositório .NET GitHub:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Crie o código do dispositivo
Agora você pode criar o exemplo de dispositivo e executá-lo. Execute os seguintes comandos para criar o exemplo:
cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build
Executar o exemplo de dispositivo
Para executar o exemplo, execute o seguinte comando:
dotnet run
O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.
Executar a solução de exemplo
Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:
- IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Neste tutorial, você usa uma solução de IoT de exemplo escrita em C# para interagir com o dispositivo de exemplo que acabou de configurar e executar.
Em outra janela do terminal, navegue até a pasta azure-iot-sdk-csharp/iothub/service/samples/solutions/PnpServiceSamples/Thermostat .
Execute o seguinte comando para criar o exemplo de serviço:
dotnet build
Execute o seguinte comando para executar o exemplo de serviço:
dotnet run
Obter dispositivo twin
O trecho de código a seguir mostra como o aplicativo de serviço recupera o gêmeo do dispositivo:
// Get a Twin and retrieves model Id set by Device client
Twin twin = await s_registryManager.GetTwinAsync(s_deviceId);
s_logger.LogDebug($"Model Id of this Twin is: {twin.ModelId}");
Nota
Este exemplo usa o namespace Microsoft.Azure.Devices.Client do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.
Este código gera a seguinte saída:
[09/21/2020 11:26:04]dbug: Thermostat.Program[0]
Model Id of this Twin is: dtmi:com:example:Thermostat;1
O trecho de código a seguir mostra como usar um patch para atualizar propriedades por meio do gêmeo de dispositivo:
// Update the twin
var twinPatch = new Twin();
twinPatch.Properties.Desired[PropertyName] = PropertyValue;
await s_registryManager.UpdateTwinAsync(s_deviceId, twinPatch, twin.ETag);
Esse código gera a seguinte saída do dispositivo quando o serviço atualiza a targetTemperature
propriedade:
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Property: Received - { "targetTemperature": 60°C }.
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Property: Update - {"targetTemperature": 60°C } is InProgress.
...
[09/21/2020 11:26:17]dbug: Thermostat.ThermostatSample[0]
Property: Update - {"targetTemperature": 60°C } is Completed.
Invocar um comando
O trecho de código a seguir mostra como chamar um comando:
private static async Task InvokeCommandAsync()
{
var commandInvocation = new CloudToDeviceMethod(CommandName) { ResponseTimeout = TimeSpan.FromSeconds(30) };
// Set command payload
string componentCommandPayload = JsonConvert.SerializeObject(s_dateTime);
commandInvocation.SetPayloadJson(componentCommandPayload);
CloudToDeviceMethodResult result = await s_serviceClient.InvokeDeviceMethodAsync(s_deviceId, commandInvocation);
if (result == null)
{
throw new Exception($"Command {CommandName} invocation returned null");
}
s_logger.LogDebug($"Command {CommandName} invocation result status is: {result.Status}");
}
Esse código gera a seguinte saída do dispositivo quando o serviço chama o getMaxMinReport
comando:
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Command: Received - Generating max, min and avg temperature report since 21/09/2020 11:25:58.
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Command: MaxMinReport since 21/09/2020 11:25:58: maxTemp=32, minTemp=32, avgTemp=32, startTime=21/09/2020 11:25:59, endTime=21/09/2020 11:26:04
O IoT Plug and Play simplifica a IoT permitindo que você interaja com os recursos de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar o Java para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.
Pré-requisitos
Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.
Você pode executar este tutorial no Linux ou Windows. Os comandos shell neste tutorial seguem a convenção do Linux para separadores de caminho '/
', se você estiver acompanhando no Windows, certifique-se de trocar esses separadores por '\
'.
Para concluir este tutorial, instale o seguinte software em seu ambiente de desenvolvimento local:
Clone o repositório do SDK com o código de exemplo
Se você concluiu o Tutorial: Conectar um aplicativo de dispositivo IoT Plug and Play de exemplo em execução no Windows ao Hub IoT (Java), já clonou o repositório.
Abra um prompt de comando no diretório de sua escolha. Execute o seguinte comando para clonar os SDKs IoT do Microsoft Azure para o repositório Java GitHub neste local:
git clone https://github.com/Azure/azure-iot-sdk-java.git
Criar e executar o dispositivo de exemplo
Navegue até a pasta raiz do exemplo de termostato no repositório clonado do Java SDK e construa-o:
cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package
Em Configurar seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:
- IOTHUB_DEVICE_SECURITY_TYPE com o valor
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE com o escopo DPS ID.
- IOTHUB_DEVICE_DPS_DEVICE_ID com o valor
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de inscrição.
- IOTHUB_DEVICE_DPS_ENDPOINT com o valor
global.azure-devices-provisioning.net
.
Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.
Na pasta /device/iot-device-samples/pnp-device-sample/thermostat-device-sample , execute o aplicativo:
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"
O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.
Executar a solução de exemplo
Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:
- IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Neste tutorial, você usa uma solução de IoT de exemplo escrita em Java para interagir com o dispositivo de exemplo que acabou de configurar.
Nota
Este exemplo usa o namespace com.microsoft.azure.sdk.iot.service do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.
Abra outra janela do terminal para usar como seu terminal de serviço .
No repositório clonado do Java SDK, navegue até a pasta service/iot-service-samples/pnp-service-sample/thermostat-service-sample .
Para criar e executar o aplicativo de serviço de exemplo, execute os seguintes comandos:
mvn clean package mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.service.Thermostat"
Obter dispositivo twin
O trecho de código a seguir mostra como recuperar o gêmeo de dispositivo no serviço:
// Get the twin and retrieve model Id set by Device client.
DeviceTwinDevice twin = new DeviceTwinDevice(deviceId);
twinClient.getTwin(twin);
System.out.println("Model Id of this Twin is: " + twin.getModelId());
Atualizar um dispositivo twin
O trecho de código a seguir mostra como usar um patch para atualizar propriedades por meio do gêmeo de dispositivo:
String propertyName = "targetTemperature";
double propertyValue = 60.2;
twin.setDesiredProperties(Collections.singleton(new Pair(propertyName, propertyValue)));
twinClient.updateTwin(twin);
A saída do dispositivo mostra como o dispositivo responde a essa atualização de propriedade.
Invocar um comando
O trecho de código a seguir mostra que você chama um comando no dispositivo:
// The method to invoke for a device without components should be "methodName" as defined in the DTDL.
String methodToInvoke = "getMaxMinReport";
System.out.println("Invoking method: " + methodToInvoke);
Long responseTimeout = TimeUnit.SECONDS.toSeconds(200);
Long connectTimeout = TimeUnit.SECONDS.toSeconds(5);
// Invoke the command.
String commandInput = ZonedDateTime.now(ZoneOffset.UTC).minusMinutes(5).format(DateTimeFormatter.ISO_DATE_TIME);
MethodResult result = methodClient.invoke(deviceId, methodToInvoke, responseTimeout, connectTimeout, commandInput);
if(result == null)
{
throw new IOException("Method result is null");
}
System.out.println("Method result status is: " + result.getStatus());
A saída do dispositivo mostra como o dispositivo responde a esse comando.
O IoT Plug and Play simplifica a IoT permitindo que você interaja com os recursos de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar Node.js para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.
Pré-requisitos
Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.
Para concluir este tutorial, você precisa Node.js em sua máquina de desenvolvimento. Você pode baixar a versão recomendada mais recente para várias plataformas do nodejs.org.
Pode verificar qual a versão atual do Node.js no seu computador de desenvolvimento através do seguinte comando:
node --version
Clone o repositório do SDK com o código de exemplo
Clone os exemplos de um repositório do SDK do Nó. Abra uma janela do terminal em uma pasta de sua escolha. Execute o seguinte comando para clonar o SDK do Microsoft Azure IoT para Node.js repositório GitHub:
git clone https://github.com/Azure/azure-iot-sdk-node
Execute o dispositivo de exemplo
Em Configurar seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:
- IOTHUB_DEVICE_SECURITY_TYPE com o valor
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE com o escopo DPS ID.
- IOTHUB_DEVICE_DPS_DEVICE_ID com o valor
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de inscrição.
- IOTHUB_DEVICE_DPS_ENDPOINT com o valor
global.azure-devices-provisioning.net
.
Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.
Neste tutorial, você usa um dispositivo de termostato de exemplo escrito em Node.js como o dispositivo IoT Plug and Play. Para executar o dispositivo de exemplo:
Abra uma janela do terminal e navegue até a pasta local que contém o SDK do Microsoft Azure IoT para Node.js repositório clonado do GitHub.
Esta janela do terminal é usada como o terminal do seu dispositivo . Vá para a pasta do repositório clonado e navegue até a pasta /azure-iot-sdk-node/device/samples/javascript . Instale todas as dependências executando o seguinte comando:
npm install
Execute o dispositivo de termostato de amostra com o seguinte comando:
node pnp_simple_thermostat.js
Você vê mensagens dizendo que o dispositivo enviou algumas informações e se denunciou online. Essas mensagens indicam que o dispositivo começou a enviar dados de telemetria para o hub e agora está pronto para receber comandos e atualizações de propriedade. Não feche este terminal, você precisa dele para confirmar que a amostra de serviço está funcionando.
Executar a solução de exemplo
Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:
- IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Neste tutorial, você usa um exemplo Node.js solução IoT para interagir com o dispositivo de exemplo que acabou de configurar e executar.
Abra outra janela do terminal para usar como seu terminal de serviço .
No repositório clonado do SDK do Nó, navegue até a pasta azure-iot-sdk-node/service/samples/javascript . Instale todas as dependências executando o seguinte comando:
npm install
Ler um imóvel
Quando você executou o dispositivo de termostato de amostra no terminal do dispositivo , você viu as seguintes mensagens indicando seu status on-line:
properties have been reported for component sending telemetry message 0...
Vá para o terminal de serviço e use o seguinte comando para executar o exemplo para ler informações do dispositivo:
node twin.js
Na saída do terminal de serviço , observe a resposta do gêmeo do dispositivo. Você vê o ID do modelo do dispositivo e as propriedades associadas relatadas:
Model Id: dtmi:com:example:Thermostat;1 { "deviceId": "my-pnp-device", "etag": "AAAAAAAAAAE=", "deviceEtag": "Njc3MDMxNDcy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Connected", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authenticationType": "sas", "x509Thumbprint": { "primaryThumbprint": null, "secondaryThumbprint": null }, "modelId": "dtmi:com:example:Thermostat;1", "version": 4, "properties": { "desired": { "$metadata": { "$lastUpdated": "2020-10-05T11:35:19.4574755Z" }, "$version": 1 }, "reported": { "maxTempSinceLastReboot": 31.343640523762232, "serialNumber": "123abc", "$metadata": { "$lastUpdated": "2020-10-05T11:35:23.7339042Z", "maxTempSinceLastReboot": { "$lastUpdated": "2020-10-05T11:35:23.7339042Z" }, "serialNumber": { "$lastUpdated": "2020-10-05T11:35:23.7339042Z" } }, "$version": 3 } }, "capabilities": { "iotEdge": false }, "tags": {} }
O trecho a seguir mostra o código no twin.js que recupera o ID do modelo do gêmeo do dispositivo:
var registry = Registry.fromConnectionString(connectionString); registry.getTwin(deviceId, function(err, twin) { if (err) { console.error(err.message); } else { console.log('Model Id: ' + twin.modelId); //... } //... }
Nesse cenário, ele produz Model Id: dtmi:com:example:Thermostat;1
.
Nota
Esses exemplos de serviço usam a classe Registry do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.
Atualizar uma propriedade gravável
Abra o arquivo twin.js em um editor de código.
Revise o código de exemplo, ele mostra duas maneiras de atualizar o dispositivo gêmeo. Para usar a primeira maneira, modifique a
twinPatch
variável da seguinte maneira:var twinPatch = { tags: { city: "Redmond" }, properties: { desired: { targetTemperature: 42 } } };
A
targetTemperature
propriedade é definida como uma propriedade gravável no modelo de dispositivo de termostato.No terminal de serviço , use o seguinte comando para executar o exemplo de atualização da propriedade:
node twin.js
No terminal do dispositivo, você vê que o dispositivo recebeu a atualização:
The following properties will be updated for the default component: { targetTemperature: { value: 42, ac: 200, ad: 'Successfully executed patch for targetTemperature', av: 2 } } updated the property
No terminal de serviço , execute o seguinte comando para confirmar que a propriedade foi atualizada:
node twin.js
Na saída do terminal de serviço , na
reported
seção de propriedades, você vê a temperatura de destino atualizada relatada. Pode demorar um pouco para o dispositivo concluir a atualização. Repita esta etapa até que o dispositivo tenha processado a atualização de propriedade:"reported": { //... "targetTemperature": { "value": 42, "ac": 200, "ad": "Successfully executed patch for targetTemperature", "av": 4 }, //... }
Invocar um comando
Abra o arquivo device_method.js e revise o código.
Dirija-se ao terminal de serviço . Use o seguinte comando para executar o exemplo para invocar o comando:
set IOTHUB_METHOD_NAME=getMaxMinReport set IOTHUB_METHOD_PAYLOAD=commandpayload node device_method.js
A saída no terminal de serviço mostra a seguinte confirmação:
getMaxMinReport on my-pnp-device: { "status": 200, "payload": { "maxTemp": 23.460596940801928, "minTemp": 23.460596940801928, "avgTemp": 23.460596940801928, "endTime": "2020-10-05T12:48:08.562Z", "startTime": "2020-10-05T12:47:54.450Z" } }
No terminal do dispositivo , você vê que o comando é reconhecido:
MaxMinReport commandpayload Response to method 'getMaxMinReport' sent successfully.
O IoT Plug and Play simplifica a IoT, permitindo que você interaja com o modelo de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar Python para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.
Pré-requisitos
Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.
Para concluir este tutorial, você precisa do Python instalado em sua máquina de desenvolvimento. Verifique o SDK do Python do Azure IoT para obter os requisitos de versão atuais do Python. Você pode verificar sua versão do Python com o seguinte comando:
python --version
Você pode baixar a versão recomendada mais recente para várias plataformas do python.org.
Em seu ambiente Python local, instale o pacote azure-iot-device da seguinte maneira:
pip install azure-iot-device
Instale o pacote azure-iot-hub executando o seguinte comando:
pip install azure-iot-hub
Execute o dispositivo de exemplo
Em Configurar seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:
- IOTHUB_DEVICE_SECURITY_TYPE com o valor
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE com o escopo DPS ID.
- IOTHUB_DEVICE_DPS_DEVICE_ID com o valor
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de inscrição.
- IOTHUB_DEVICE_DPS_ENDPOINT com o valor
global.azure-devices-provisioning.net
.
Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.
Neste tutorial, você usa um dispositivo termostato de exemplo, escrito em Python, como o dispositivo IoT Plug and Play. Para executar o dispositivo de exemplo:
Abra uma janela do terminal em uma pasta de sua escolha. Execute o seguinte comando para clonar o repositório GitHub do SDK Python do Dispositivo IoT do Azure neste local:
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
Esta janela do terminal é usada como o terminal do seu dispositivo . Vá para a pasta do repositório clonado e navegue até a pasta azure-iot-sdk-python/samples/pnp .
Execute o dispositivo de termostato de amostra com o seguinte comando:
python simple_thermostat.py
Você vê mensagens dizendo que o dispositivo enviou algumas informações e se denunciou online. Essas mensagens indicam que o dispositivo começou a enviar dados de telemetria para o hub e agora está pronto para receber comandos e atualizações de propriedade. Não feche este terminal, você precisa dele para confirmar que a amostra de serviço está funcionando.
Executar a solução de exemplo
Neste tutorial, você usa uma solução IoT de exemplo em Python para interagir com o dispositivo de exemplo que acabou de configurar.
Abra outra janela do terminal para usar como seu terminal de serviço . Execute o seguinte comando para clonar o repositório GitHub do SDK Python do Hub IoT do Azure neste local:
git clone https://github.com/Azure/azure-iot-hub-python
Instale a seringa
Navegue até a pasta /azure-iot-hub-python/samples do repositório clonado do SDK do Python.
Abra o arquivo registry_manager_pnp_sample.py e revise o código. Este exemplo mostra como usar a classe IoTHubRegistryManager para interagir com seu dispositivo IoT Plug and Play.
Nota
Esses exemplos de serviço usam a classe IoTHubRegistryManager do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.
Obtenha o dispositivo twin
Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:
- IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Use o seguinte comando no terminal de serviço para executar este exemplo:
set IOTHUB_METHOD_NAME="getMaxMinReport"
set IOTHUB_METHOD_PAYLOAD="hello world"
python registry_manager_pnp_sample.py
Nota
Se você estiver executando este exemplo no Linux, use export
no lugar de set
.
A saída mostra o dispositivo gêmeo e imprime seu ID de modelo:
The Model ID for this device is:
dtmi:com:example:Thermostat;1
O trecho a seguir mostra o código de exemplo do registry_manager_pnp_sample.py:
# Create IoTHubRegistryManager
iothub_registry_manager = IoTHubRegistryManager(iothub_connection_str)
# Get device twin
twin = iothub_registry_manager.get_twin(device_id)
print("The device twin is: ")
print("")
print(twin)
print("")
# Print the device's model ID
additional_props = twin.additional_properties
if "modelId" in additional_props:
print("The Model ID for this device is:")
print(additional_props["modelId"])
print("")
Atualizar um dispositivo twin
Este exemplo mostra como atualizar a targetTemperature
propriedade gravável no dispositivo:
# Update twin
twin_patch = Twin()
twin_patch.properties = TwinProperties(
desired={"targetTemperature": 42}
) # this is relevant for the thermostat device sample
updated_twin = iothub_registry_manager.update_twin(device_id, twin_patch, twin.etag)
print("The twin patch has been successfully applied")
print("")
Você pode verificar se a atualização é aplicada no terminal do dispositivo que mostra a seguinte saída:
the data in the desired properties patch was: {'targetTemperature': 42, '$version': 2}
O terminal de serviço confirma que o patch foi bem-sucedido:
The twin patch has been successfully applied
Invocar um comando
Em seguida, o exemplo invoca um comando:
O terminal de serviço mostra uma mensagem de confirmação do dispositivo:
The device method has been successfully invoked
No terminal do dispositivo , você vê que o dispositivo recebe o comando:
Command request received with payload
hello world
Will return the max, min and average temperature from the specified time hello to the current time
Done generating
{"tempReport": {"avgTemp": 34.2, "endTime": "09/07/2020 09:58:11", "maxTemp": 49, "minTemp": 10, "startTime": "09/07/2020 09:56:51"}}
Clean up resources (Limpar recursos)
Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.
Próximos passos
Neste tutorial, você aprendeu como conectar um dispositivo IoT Plug and Play a uma solução IoT. Para saber mais sobre os modelos de dispositivo IoT Plug and Play, consulte: