Previsão do tempo usando os dados do sensor do Hub IoT no Azure Machine LearningWeather forecast using the sensor data from your IoT hub in Azure Machine Learning

Diagrama de ponta a ponta

Observação

Antes de começar este tutorial, conclua o tutorial do simulador online Raspberry Pi ou um dos tutoriais do dispositivo; por exemplo, Raspberry Pi com node.js.Before you start this tutorial, complete the Raspberry Pi online simulator tutorial or one of the device tutorials; for example, Raspberry Pi with node.js. Nesses artigos, você configura o seu dispositivo IoT do Azure e o hub IoT, além de implantar um aplicativo de exemplo a ser executado no dispositivo.In these articles, you set up your Azure IoT device and IoT hub, and you deploy a sample application to run on your device. O aplicativo envia dados de sensor coletados para o hub IoT.The application sends collected sensor data to your IoT hub.

O Machine Learning é uma técnica da ciência de dados que ajuda os computadores a aprenderem com os dados existentes para prever tendências, resultados e comportamentos futuros.Machine learning is a technique of data science that helps computers learn from existing data to forecast future behaviors, outcomes, and trends. O Azure Machine Learning é um serviço de análise preditiva na nuvem que permite criar rapidamente modelos preditivos e implantá-los como soluções de análise.Azure Machine Learning is a cloud predictive analytics service that makes it possible to quickly create and deploy predictive models as analytics solutions.

O que você aprenderáWhat you learn

Saiba como usar o Azure Machine Learning para fazer uma previsão do tempo (possibilidade de chuva) usando os dados de temperatura e umidade do Hub IoT do Azure.You learn how to use Azure Machine Learning to do weather forecast (chance of rain) using the temperature and humidity data from your Azure IoT hub. A possibilidade de chuva é o resultado de um modelo de previsão de clima preparado.The chance of rain is the output of a prepared weather prediction model. O modelo se baseia em dados históricos para prever a possibilidade de chuva com base na temperatura e na umidade.The model is built upon historic data to forecast chance of rain based on temperature and humidity.

O que fazerWhat you do

  • Implante o modelo de previsão do tempo como um serviço Web.Deploy the weather prediction model as a web service.
  • Preparar seu Hub IoT para acesso a dados, adicionando um grupo de consumidores.Get your IoT hub ready for data access by adding a consumer group.
  • Crie um trabalho do Stream Analytics e configure o trabalho para:Create a Stream Analytics job and configure the job to:
    • Leia dados de temperatura e umidade no Hub IoT.Read temperature and humidity data from your IoT hub.
    • Chame o serviço Web para obter a possibilidade de chuva.Call the web service to get the rain chance.
    • Salve o resultado em um armazenamento de blobs do Azure.Save the result to an Azure blob storage.
  • Use o Gerenciador de Armazenamento do Microsoft Azure para exibir a previsão do tempo.Use Microsoft Azure Storage Explorer to view the weather forecast.

O que você precisaWhat you need

Implantar o modelo de previsão do tempo como um serviço WebDeploy the weather prediction model as a web service

Nesta seção, você obtém o modelo previsão do tempo da biblioteca de IA do Azure.In this section you get the weather prediction model from the Azure AI Library. Em seguida, você adiciona um módulo R-script ao modelo para limpar os dados de temperatura e umidade.Then you add an R-script module to the model to clean the temperature and humidity data. Por fim, você implantará o modelo como um serviço Web preditivo.Lastly, you deploy the model as a predictive web service.

Obter o modelo de previsão do tempoGet the weather prediction model

Nesta seção, você obtém o modelo previsão do tempo do Galeria de IA do Azure e o abre no Azure Machine Learning Studio (clássico).In this section you get the weather prediction model from the Azure AI Gallery and open it in Azure Machine Learning Studio (classic).

  1. Acesse a página do modelo de previsão do tempo.Go to the weather prediction model page.

    Abra a página do modelo de previsão do tempo na Galeria de IA do Azure

  2. Clique em Abrir no Studio (clássico) no Microsoft Azure Machine Learning Studio (clássico).Click Open in Studio (classic) to open the model in Microsoft Azure Machine Learning Studio (classic).

    Abrir o modelo de previsão do tempo no Azure Machine Learning Studio (clássico)

Adicionar um módulo R-script para limpar os dados de temperatura e umidadeAdd an R-script module to clean temperature and humidity data

Para que o modelo se comporte corretamente, os dados de temperatura e umidade devem ser conversíveis em dados numéricos.For the model to behave correctly, the temperature and humidity data must be convertible to numeric data. Nesta seção, você adiciona um módulo R-script ao modelo previsão do tempo que remove as linhas que têm valores de dados para temperatura ou umidade que não podem ser convertidas em valores numéricos.In this section, you add an R-script module to the weather prediction model that removes any rows that have data values for temperature or humidity that cannot be converted to numeric values.

  1. No lado esquerdo da janela Azure Machine Learning Studio, clique na seta para expandir o painel de ferramentas.On the left-side of the Azure Machine Learning Studio window, click the arrow to expand the tools panel. Insira "Executar" na caixa de pesquisa.Enter "Execute" into the search box. Selecione o módulo Executar R-script.Select the Execute R Script module.

    Selecione o módulo Executar R-script

  2. Arraste o módulo Executar R-script próximo ao módulo Limpar dados ausentes e ao módulo Executar R-script no diagrama.Drag the Execute R Script module near the Clean Missing Data module and the existing Execute R Script module on the diagram. Exclua a conexão entre os módulos Limpar dados ausentes e os Executar R-script e, em seguida, conecte as entradas e saídas do novo módulo, conforme mostrado.Delete the connection between the Clean Missing Data and the Execute R Script modules and then connect the inputs and outputs of the new module as shown.

    Adicione o módulo Executar R-script

  3. Selecione o módulo novo Executar R-script para abrir a janela Propriedades.Select the new Execute R Script module to open its properties window. Copie e cole o seguinte código na caixa R Script.Copy and paste the following code into the R Script box.

    # Map 1-based optional input ports to variables
    data <- maml.mapInputPort(1) # class: data.frame
    
    data$temperature <- as.numeric(as.character(data$temperature))
    data$humidity <- as.numeric(as.character(data$humidity))
    
    completedata <- data[complete.cases(data), ]
    
    maml.mapOutputPort('completedata')
    
    

    Quando tiver terminado, a janela Propriedades deverá ser semelhante ao seguinte:When you're finished, the properties window should look similar to the following:

    Adicione o código ao módulo Executar R-Script

Implantar um serviço Web preditivoDeploy predictive web service

Nesta seção, você valida o modelo, configura um serviço Web preditivo com base no modelo e, em seguida, implanta o serviço Web.In this section, you validate the model, set up a predictive web service based on the model, and then deploy the web service.

  1. Clique em Executar para validar as etapas no modelo.Click Run to validate the steps in the model. A conclusão dessa etapa pode levar alguns minutos.This step might take a few minutes to complete.

    Execute o experimento para validar as etapas

  2. Clique em CONFIGURAR SERVIÇO WEB > Serviço Web Preditivo.Click SET UP WEB SERVICE > Predictive Web Service. O diagrama de experimento preditivo é aberto.The predictive experiment diagram opens.

    Implante o modelo de previsão do tempo no Azure Machine Learning Studio (clássico)

  3. No diagrama de experimento preditivo, exclua a conexão entre o módulo Entrada do serviço Web e o Conjunto de dados do clima na parte superior.In the predictive experiment diagram, delete the connection between the Web service input module and the Weather Dataset at the top. Em seguida, arraste o módulo Entrada do serviço Web em algum lugar próximo ao módulo Modelo de Pontuação e conecte-o conforme mostrado:Then drag the Web service input module somewhere near the Score Model module and connect it as shown:

    Conectar dois módulos no Azure Machine Learning Studio (clássico)

  4. Clique em EXECUTAR para validar as etapas no modelo.Click RUN to validate the steps in the model.

  5. Clique em IMPLANTAR SERVIÇO WEB para implantar o modelo como um serviço Web.Click DEPLOY WEB SERVICE to deploy the model as a web service.

  6. No painel do modelo, baixe o Excel 2010 ou a pasta de trabalho anterior de SOLICITAÇÃO/RESPOSTA.On the dashboard of the model, download the Excel 2010 or earlier workbook for REQUEST/RESPONSE.

    Observação

    Assegure-se de baixar o Excel 2010 ou a pasta de trabalho anterior mesmo se estiver executando uma versão posterior do Excel no computador.Make sure that you download the Excel 2010 or earlier workbook even if you are running a later version of Excel on your computer.

    Baixar o Excel para obter o ponto de extremidade SOLICITAÇÃO/RESPOSTA

  7. Abra a pasta de trabalho do Excel, anote a URL DO SERVIÇO WEB e a TECLA DE ACESSO.Open the Excel workbook, make a note of the WEB SERVICE URL and ACCESS KEY.

Adicionar um grupo de consumidores ao hub IoTAdd a consumer group to your IoT hub

Os grupos de consumidores fornecem exibições independentes no fluxo de eventos que permitem que aplicativos e serviços do Azure consumam dados de modo independente do mesmo ponto de extremidade do Hub de Eventos.Consumer groups provide independent views into the event stream that enable apps and Azure services to independently consume data from the same Event Hub endpoint. Nesta seção, você adiciona um grupo de consumidores ao ponto de extremidade interno do Hub IoT que é usado posteriormente neste tutorial para efetuar pull de dados do ponto de extremidade.In this section, you add a consumer group to your IoT hub's built-in endpoint that is used later in this tutorial to pull data from the endpoint.

Para adicionar um grupo de consumidores ao hub IoT, siga estas etapas:To add a consumer group to your IoT hub, follow these steps:

  1. No portal do Azure, abra o hub IoT.In the Azure portal, open your IoT hub.

  2. No painel esquerdo, selecione pontos de extremidade internos, selecione eventos no painel direito e insira um nome em grupos de consumidores.On the left pane, select Built-in endpoints, select Events on the right pane, and enter a name under Consumer groups. Selecione Salvar.Select Save.

    Criar um grupo de consumidores no hub IoT

Criar, configurar e executar um trabalho do Stream AnalyticsCreate, configure, and run a Stream Analytics job

Criar um trabalho de Stream AnalyticsCreate a Stream Analytics job

  1. No Portal do Azure, clique em Criar um recurso > Internet das Coisas > Trabalho do Stream Analytics.In the Azure portal, click Create a resource > Internet of Things > Stream Analytics job.

  2. Insira as seguintes informações para o trabalho.Enter the following information for the job.

    Nome do trabalho: O nome do trabalho.Job name: The name of the job. O nome deve ser globalmente exclusivo.The name must be globally unique.

    Grupo de recursos: Use o mesmo grupo de recursos usado pelo hub IoT.Resource group: Use the same resource group that your IoT hub uses.

    Localização: Use o mesmo local do grupo de recursos.Location: Use the same location as your resource group.

    Fixar no painel: Marque essa opção para facilitar o acesso ao hub IoT no painel.Pin to dashboard: Check this option for easy access to your IoT hub from the dashboard.

    Criar um trabalho do Stream Analytics no Azure

  3. Clique em Criar.Click Create.

Adicionar uma entrada ao trabalho do Stream AnalyticsAdd an input to the Stream Analytics job

  1. Abra o trabalho do Stream Analytics.Open the Stream Analytics job.

  2. Em Topologia do Trabalho, clique em Entradas.Under Job Topology, click Inputs.

  3. No entradas painel, clique em adicionare, em seguida, insira as seguintes informações:In the Inputs pane, click Add, and then enter the following information:

    Alias de entrada: O alias exclusivo para a entrada.Input alias: The unique alias for the input.

    Fonte: Selecione Hub IoT.Source: Select IoT hub.

    Grupo de consumidores: Selecione o grupo de consumidores criado.Consumer group: Select the consumer group you created.

    Adicionar uma entrada ao trabalho do Stream Analytics no Azure

  4. Clique em Criar.Click Create.

Adicionar uma saída ao trabalho do Stream AnalyticsAdd an output to the Stream Analytics job

  1. Em Topologia do Trabalho, clique em Saídas.Under Job Topology, click Outputs.

  2. No saídas painel, clique em adicionare, em seguida, insira as seguintes informações:In the Outputs pane, click Add, and then enter the following information:

    Alias de saída: o alias exclusivo para a saída.Output alias: The unique alias for the output.

    Coletor: Selecione Armazenamento de Blobs.Sink: Select Blob Storage.

    Conta de armazenamento: A conta de armazenamento do armazenamento de blobs.Storage account: The storage account for your blob storage. Você pode criar uma conta de armazenamento ou usar uma existente.You can create a storage account or use an existing one.

    Contêiner: O contêiner em que o blob foi salvo.Container: The container where the blob is saved. Você pode criar um contêiner ou usar um existente.You can create a container or use an existing one.

    Formato de serialização do evento: Selecione CSV.Event serialization format: Select CSV.

    Adicionar uma saída ao trabalho do Stream Analytics no Azure

  3. Clique em Criar.Click Create.

Adicionar uma função ao trabalho do Stream Analytics para chamar o serviço Web implantadoAdd a function to the Stream Analytics job to call the web service you deployed

  1. Em Topologia de Trabalho, clique em Funções > Adicionar.Under Job Topology, click Functions > Add.

  2. Insira as seguintes informações:Enter the following information:

    Alias da função: Digite machinelearning.Function Alias: Enter machinelearning.

    Tipo de função: Selecione Azure ML.Function Type: Select Azure ML.

    Opção de importação: Selecione Importar de uma assinatura diferente.Import option: Select Import from a different subscription.

    URL: Insira a URL DO SERVIÇO WEB que você anotou da pasta de trabalho do Excel.URL: Enter the WEB SERVICE URL that you noted down from the Excel workbook.

    Chave: Insira a TECLA DE ACESSO anotada da pasta de trabalho do Excel.Key: Enter the ACCESS KEY that you noted down from the Excel workbook.

    Adicionar uma função ao trabalho do Stream Analytics no Azure

  3. Clique em Criar.Click Create.

Configurar a consulta do trabalho do Stream AnalyticsConfigure the query of the Stream Analytics job

  1. Em Topologia do Trabalho, clique em Consulta.Under Job Topology, click Query.

  2. Substitua o código existente pelo seguinte código:Replace the existing code with the following code:

    WITH machinelearning AS (
       SELECT EventEnqueuedUtcTime, temperature, humidity, machinelearning(temperature, humidity) as result from [YourInputAlias]
    )
    Select System.Timestamp time, CAST (result.[temperature] AS FLOAT) AS temperature, CAST (result.[humidity] AS FLOAT) AS humidity, CAST (result.[scored probabilities] AS FLOAT ) AS 'probabalities of rain'
    Into [YourOutputAlias]
    From machinelearning
    

    Substitua [YourInputAlias] pelo alias de entrada do trabalho.Replace [YourInputAlias] with the input alias of the job.

    Substitua [YourOutputAlias] pelo alias de saída do trabalho.Replace [YourOutputAlias] with the output alias of the job.

  3. Clique em Save (Salvar).Click Save.

Executar o trabalho do Stream AnalyticsRun the Stream Analytics job

No trabalho do Stream Analytics, clique em Iniciar > Agora > Iniciar.In the Stream Analytics job, click Start > Now > Start. Depois que o trabalho é iniciado com êxito, o status do trabalho muda de parado para executando.Once the job successfully starts, the job status changes from Stopped to Running.

Executar o trabalho do Stream Analytics

Usar o Gerenciador de Armazenamento do Microsoft Azure para exibir a previsão do tempoUse Microsoft Azure Storage Explorer to view the weather forecast

Execute o aplicativo cliente para iniciar a coleta e o envio de dados de temperatura e umidade para o Hub IoT.Run the client application to start collecting and sending temperature and humidity data to your IoT hub. Para cada mensagem recebida pelo Hub IoT, o trabalho do Stream Analytics chama o serviço Web de previsão do tempo para produzir a possibilidade de chuva.For each message that your IoT hub receives, the Stream Analytics job calls the weather forecast web service to produce the chance of rain. O resultado é então salvo no armazenamento de blobs do Azure.The result is then saved to your Azure blob storage. O Gerenciador de Armazenamento do Azure é uma ferramenta que pode ser usada para exibir o resultado.Azure Storage Explorer is a tool that you can use to view the result.

  1. Baixe e instale o Gerenciador de Armazenamento do Microsoft Azure.Download and install Microsoft Azure Storage Explorer.

  2. Abra o Gerenciador de Armazenamento do Azure.Open Azure Storage Explorer.

  3. Entre em sua conta do Azure.Sign in to your Azure account.

  4. Selecione sua assinatura.Select your subscription.

  5. Clique em sua assinatura > Contas de Armazenamento > sua conta de armazenamento > Contêineres de Blobs > seu contêiner.Click your subscription > Storage Accounts > your storage account > Blob Containers > your container.

  6. Fala o download de um arquivo .csv para ver o resultado.Download a .csv file to see the result. A última coluna registra a possibilidade de chuva.The last column records the chance of rain.

    Obter resultados da previsão do tempo com o Azure Machine Learning

ResumoSummary

Você usou bem o Azure Machine Learning para produzir a possibilidade de chuva com base nos dados de temperatura e umidade recebidos pelo Hub IoT.You’ve successfully used Azure Machine Learning to produce the chance of rain based on the temperature and humidity data that your IoT hub receives.

Para continuar a introdução ao Hub IoT do Azure e explorar todos os outros cenários de IoT estendidos, confira:To continue to get started with Azure IoT Hub and to explore all extended IoT scenarios, see the following: