Ative seu telefone celular em um dispositivo IoT

Crie apps Bluemix para processar, visualizar e armazenar dados de sensor que são enviados para e a partir de seu telefone celular

26/Jan/2016
PDF (2424 KB)
 

Use seu telefone celular como um dispositivo IoT

21:17  |  Transcricao
Author                 photo of Daniel Béguelin

Daniel Béguelin

Software engineer at IBM

LinkedIn

O vídeo integrado demonstra estas etapas do tutorial. Para assistir ao vídeo e seguir as etapas do tutorial, abra o vídeo em uma janela do navegador separada.

Este tutorial mostra como é possível enviar dados do sensor que são gerados por seu telefone celular para o serviço hospedado em nuvem IBM Internet of Things Foundation e depois criar aplicativos Bluemix™ que processam, visualizam e armazenam os dados. Finalmente, mostra como criar um aplicativo Android para um telefone celular.

Esta é uma visão geral da arquitetura:

Chart showing architecture of solution

Clique para ver a imagem maior

O que será necessário para desenvolver seus apps

 

Etapa 1. Crie um app IoT no Bluemix

 

O texto padrão do Internet of Things Foundation Starter contém um mecanismo Node-RED que você usará posteriormente para processar mensagens IoT. Agora, você criará um serviço Internet of Things para enviar e receber mensagens MQTT para e a partir do servidor IBM IoT na nuvem.

  1. Efetue login em sua conta Bluemix (ou registre-se para obter uma avaliação gratuita).
  2. Clique em Catálogo.
  3. Clique em Internet of Things Foundation Starter.Image of Internet of Things Foundation Starter boilerplate
  4. Insira um nome para seu aplicativo. Como esse nome também será usado como o nome do host, ele deverá ser exclusivo no Bluemix, por exemplo, "iot<yourname>". Por exemplo, eu posso usar iotdemodaniel3.Screen capture of the Create an app dialog
  5. Clique em Criar.
  6. Clique em Painel na barra de ferramentas e clique em seu aplicativo recém-criado.
  7. Clique em Incluir um serviço ou API.
  8. Na área de navegação esquerda, selecione Internet of Things para filtrar a lista de serviços disponíveis. Selecione o serviço Internet of Things Foundation . Screen capture that shows the Internet of Things filter and the Internet of Things Foundation Service selected

    Clique para ver a imagem maior

  9. Deixe os padrões e clique em CRIAR.
  10. Clique em Remontar na mensagem que é exibida. Seu aplicativo é remontado.

Etapa 2. Incluir um dispositivo que enviará mensagens MQTT para o servidor IoT

 
  1. A partir do painel no Bluemix, selecione seu aplicativo e depois clique no novo serviço.
  2. Na página de serviços, clique no botão Ativar painel . Screen capture that shows the service page with the Launch dashboard button highlighted

    Clique para ver a imagem maior

    O painel do servidor IBM Internet of Things é exibido, que é um serviço independente do Bluemix. Um ID de organização é designado ao seu app e você precisará desse ID posteriormente ao desenvolver o app móvel.

    Screen capture of the service on the IBM Internet of Things Foundation server and the organization ID

    Clique para ver a imagem maior

  3. Clique em Incluir um dispositivoe, em seguida, clique em Criar um tipo de dispositivo. Em sua organização, você possui diversos tipos de dispositivos, cada um com diversos dispositivos. Um tipo de dispositivo é um grupo de dispositivos que compartilham características; por exemplo, eles podem fornecer os mesmos dados de sensor. Em nosso caso, o nome do tipo de dispositivo deve ser "Android" (esse nome de tipo de dispositivo é requerido pelo app que você usará posteriormente).Screen capture of the Create Device Type dialog

    Clique para ver a imagem maior

  4. Clique em Avançar. Uma página é exibida, na qual é possível inserir detalhes sobre o dispositivo, como um número de série ou modelo. Você não precisa especificar essas informações para esta demo; apenas clique em Avançar. Também não é necessário especificar quaisquer meta informações. Clique em Avançar até voltar ao diálogo Incluir dispositivo .
  5. Clique em Avançar. Insira o ID de dispositivo. O ID de dispositivo pode ser, por exemplo, o endereço MAC de seu telefone celular. No entanto, ele deve ser exclusivo apenas dentro de sua organização. Deste modo, você pode inserir, como eu fiz aqui, algo como "112233445566".
  6. Deixe o campo Metadados em branco e depois clique em Avançar. Deixe o campo Token de autenticação em branco e depois clique em Avançar.
  7. Clique em Incluir.

    O dispositivo gerado é exibido na tela.

    Screen capture showing authentication token

    Clique para ver a imagem maior

  8. Copie o token de autenticação e salve-o em um arquivo de texto. Você usará esse token em seu dispositivo posteriormente e não poderá recuperá-lo. Feche a janela de diálogo.

Agora você está pronto para enviar mensagens MQTT de um dispositivo para o servidor IBM IoT.

Etapa 3. Instale e configure o app Android

 

Se você tiver um iPhone ou iPad, poderá usar o IoT Foundation Starter para iOS. A instalação no iPhone não é abrangida neste artigo, mas se você a fizer por conta própria, poderá usar o app iOS para o restante deste tutorial.

Você usará o app IoT Starter para Android para ler e enviar dados de sensor em seu telefone celular. O código-fonte e a documentação do app estão no projeto IoT Foundation Starter para Android GitHub .

Se você tiver experiência com o desenvolvimento de Android, poderá fazer download do código a partir de GitHub, importá-lo em seu ambiente de desenvolvimento Android e depois criar o arquivo apk. Caso contrário, para que o app seja instalado e execute rapidamente, siga estas etapas.

 

 

  1. Em seu telefone, vá para Configurações > Segurança. Em Administração de dispositivo, ative Origens desconhecidas. Agora você pode instalar arquivos .apk fora do Google Play.
  2. Abra o navegador em seu telefone e insira esta URL:

    https://ibm.box.com/iotstarterapp

    Você será redirecionado ao https://m.box.com e ao arquivo iot-starter_501.apk.

    Screen capture that shows the .apk file in a browser window to download and install
  3. Clique em Fazer download.
  4. Use um app explorador de arquivos (por exemplo, o explorador de arquivos ES, que pode ser transferido por download a partir do Google Play) para localizar o arquivo na pasta Downloads.
  5. Na pasta, clique em iot-starter_501.apk. Clique em Instalar. Screen capture showing apk file

    O app IoT Starter agora está instalado em seu dispositivo Android.

    Observação: O arquivo .apk está compilado para Android versão 5.0.1.

Em seguida, é necessário configurar seu app Android.

  1. Inicie o app IoT Starter.
  2. Insira os seguintes parâmetros:
    • Organization: O ID de organização que foi exibido no servidor IBM IoT (no início da Etapa 2. Incluir um dispositivo que enviará mensagens MQTT para o servidor IoT). Por exemplo, y6spgy neste tutorial.
    • Device ID: O ID do dispositivo que você configurou, no final da Etapa 2. Incluir um dispositivo que enviará mensagens MQTT para o servidor IoT. Por exemplo, "112233445566 neste tutorial.
    • Auth Token: O token de autorização que você salvou no final da Etapa 2. Incluir um dispositivo que enviará mensagens MQTT para o servidor IoT.
    Screen capture that shows the configuration parameters for your Android app
  3. Clique em Ativar sensor. Agora o app coleta dados do sensor de aceleração em seu telefone celular e envia os dados para o servidor IBM IoT. O app exibe os dados do acelerômetro e o número de mensagens publicadas ou recebidas. Screen capture of the accelerometer data from the running Android app

Etapa 4. Verifique se as mensagens estão sendo enviadas de seu telefone celular para o servidor IoT

 
  1. Conecte seu computador, abra a página do servidor IBM IoT para sua organização novamente (consulte o início da Etapa 2. Incluir um dispositivo que enviará mensagens MQTT para o servidor IoT).
  2. Na guia Dispositivos, seu dispositivo Android é exibido.Screen capture of the Devices tab that lists the Android device

    Clique para ver a imagem maior

  3. Clique no ID do dispositivo. Uma janela pop-up é exibida mostrando as mensagens recebidas de seu dispositivo.Screen capture that shows the pop-up window with the incoming messages from the Android device

    Clique para ver a imagem maior

    As mensagens enviadas de seu telefone celular estão no formato JSON. Elas contêm dados de aceleração e ranqueamento.

Agora você está pronto para trabalhar com os dados de mensagem no Bluemix.

Etapa 5. Processe mensagens em um fluxo de Node-RED

 

Nesta seção, você aprimorará seu app Bluemix IoT usando um fluxo de Node-RED para processar mensagens de seu telefone celular e depois enviará mensagens de volta ao seu telefone celular. O telefone reagirá a essas mensagens mudando a cor do plano de fundo no app.

O Node-RED é uma ferramenta visual que facilita a conexão e o processamento de mensagens de Internet of Things.

 

 

  1. Abra o Bluemix, clique em Painel e, em seu painel do Bluemix, verifique se seu app Bluemix IoT (criado na Etapa 1) está ativo e em execução.
  2. Em um navegador, abra <yourappname>.mybluemix.net, em que <yourappname> é o nome de seu app Bluemix IoT criado na Etapa 1. No editor de Node-RED para seu app Bluemix, clique em Ir para o editor de fluxo de Node-RED.

    Clique para ver a imagem maior

  3. O editor abre, contendo um fluxo de amostra.Screen capture showing sample flow

    Clique para ver a imagem maior

    O vídeo demonstra os recursos arrastar e soltar do editor de fluxo de Node-RED. Este tutorial inclui a linha de código que cria automaticamente o fluxo para você.

    Usando os recursos arrastar e soltar deste editor, é possível conectar um fluxo de mensagens. Embora seja possível criar seu próprio fluxo aqui, importaremos o código abaixo. Mas primeiro selecionaremos todos os nós existentes e os excluiremos pressionando a tecla Delete.

  4. Copie o seguinte código (como uma única linha de código longa) e cole-o em um editor de texto:

    [{"id":"215c6601.12d32a","type":"ibmiot in","authentication":"boundService","apiKey":"","inputType":"evt","deviceId":"","applicationId":"","deviceType":"","eventType":"accel","commandType":"","format":"json","name":"IBM IoT App In","service":"registered","allDevices":true,"allApplications":"","allDeviceTypes":true,"allEvents":"","allCommands":"","allFormats":"","x":264.1999969482422,"y":434.1999969482422,"z":"dc6a0ca6.7993b","wires":[["ce21edbb.320628","fdfdaaa2.a45678"]]},{"id":"ce21edbb.320628","type":"function","name":"calc color","func":"var accelZ = msg.payload.d.acceleration_z;\nvar r = 0.0;\nvar b = 0.0;\nvar g = 0.0;\nif (accelZ > 0) {\n\tg = Math.round(accelZ * 25);\n} else if (accelZ < 0) {\n\tr = 255.0;\n} else {\n\tr = 104;\n\tg = 109;\n\tb = 115;\n}\na = 1.0;\n\nmsg.eventOrCommandType = \"color\";\nmsg.payload = JSON.stringify({\"d\":{\"r\":r,\"b\":b,\"g\":g,\"alpha\":a}});\n\nreturn msg;","outputs":1,"noerr":0,"x":437.1999969482422,"y":430.1999969482422,"z":"dc6a0ca6.7993b","wires":[["9df37edb.5d4588"]]},{"id":"9df37edb.5d4588","type":"ibmiot out","authentication":"boundService","apiKey":"","outputType":"cmd","deviceId":"112233445566","deviceType":"Android","eventCommandType":"text","format":"json","data":"{\"d\":{\"value\":\"text\"}}","name":"IBM IoT App Out","service":"registered","x":629.1999969482422,"y":443.1999969482422,"z":"dc6a0ca6.7993b","wires":[]},{"id":"fdfdaaa2.a45678","type":"debug","name":"","active":false,"console":"false","complete":"false","x":442.1999969482422,"y":364.1999969482422,"z":"dc6a0ca6.7993b","wires":[]}]

  5. No editor de texto, certifique-se de que todos os códigos estão em uma única linha. Remova qualquer quebra de linha. Copie a linha de código.
  6. No editor de Node-RED, pressione Ctrl-I para abrir o diálogo Importar nós. Cole o código e clique em OK.Screen capture of the Import Nodes dialog

    Clique para ver a imagem maior

  7. Agora você precisa adaptar o fluxo aos seus parâmetros específicos. O único parâmetro relevante é o ID de dispositivo. Clique duas vezes no nó Saída do app IBM IoT. Na janela pop-up, insira o ID de dispositivo usado anteriormente (por exemplo, 112233445566) e clique em OK.
  8. Clique em Implementar no editor de fluxo. O fluxo é implementado e deve estar ativo imediatamente.
  9. Desloque seu telefone celular; vire-o e o incline. A cor do plano de fundo do app em seu telefone agora deve mudar de cor, dependendo da orientação do eixo z.
  10. No editor de Node-RED, clique no retângulo próximo ao nó msg.payload e clique na guia depurar para ativar a depuração. Você deverá ver mensagens que são enviadas de seu telefone. Os dados estão no formato JSON. Screen capture of msg.payload node in the the Node-RED editor and the debug tab that shows messages

    Clique para ver a imagem maior

  11. Inspecione o fluxo: clique duas vezes no nó calc color . Ele calcula os valores em vermelho, verde e azul com base no valor de z-acceleration recebido e os transmite como dados JSON.Screen capture of the Edit function node that shows the code for changing the color of the background on the mobile phone

Agora você possui uma comunicação bidirecional entre seu telefone celular e o primeiro app Bluemix.

Etapa 6. Crie um app Bluemix para visualizar dados do sensor

 

Observação: este app está documentado na página Amostras do Bluemix IoT.

Nesta etapa, crie um app adicional no Bluemix, que receberá mensagens de seu telefone celular (agora um dispositivo IoT) e visualizará os dados.

  1. Faça download iot-visualization-0.1.0.zip. Extraia os arquivos.
  2. Abra o Bluemix e clique em Painel.
  3. Clique em Criar app.
  4. Selecione WEB como o tipo de aplicativo.
  5. Selecione SDK para Node.js.
  6. Clique em Continuar e insira um nome de app. Como anteriormente, o nome deve ser exclusivo no Bluemix, pois ele é usado como um nome de host. Insira algo como "iotvisualizer<yourname>" e clique em Concluir.
  7. Em alguns momentos, você deverá obter o feedback de que Seu app está em execução.
  8. Na pasta na qual você extraiu o arquivo iot-visualization-0.1.0.zip, abra o arquivo manifest.yml em um editor de texto. Mude os parâmetros host e name para o app escolhido. Salve o arquivo.Screen capture of the host and name parameters in the manifest.yml file
  9. Abra uma janela de comandos e altere para o diretório no qual você extraiu o arquivo iot-visualization-0.1.0.zip.
  10. Insira os seguintes comandos de Cloud Foundry:
    cf api https://api.ng.bluemix.net
    cf login -u <your_bluemix_login_id>

    O comando cf login é requerido apenas na primeira vez que você usa a ferramenta de linha de comandos de Cloud Foundry. Talvez seja necessário inserir a senha do Bluemix. Se você tiver mais de uma organização Bluemix (não o caso padrão), será solicitado a selecioná-las.
  11. Implemente o aplicativo para o Bluemix inserindo o seguinte comando:

    cf push <your_application_name>

    Esse comando procura pelo arquivo manifest.yml e usa os parâmetros desse arquivo. Ele então faz upload do código para o Bluemix. Depois de um momento, você deverá ver uma mensagem semelhante à seguinte:

    OK

    Aplicativo <your app name> foi iniciado usando este comando: 'node app.js'.

  12. No painel do Bluemix, abra a página Visão geral de seu app. Clique em Ligue um serviço ou API.Screen capture of the service overview page and the Bind a Service or API button highlighted

    Clique para ver a imagem maior

  13. Selecione o serviço Internet of Things que você definiu na Etapa 1. Crie um app IoT no Bluemix. Clique em Remontar para remontar o app. Agora o app pode receber mensagens do servidor IBM IoT.
  14. Para verificar o app do visualizar, em um navegador, abra http://<your app name>.mybluemix.net
  15. Na caixa suspensa Dispositivo , selecione o ID do seu dispositivo.Screen capture of the IoT visualization app with the device selected and the sensor data displayed in a line chart

    Clique para ver a imagem maior

Conclusão

 

Neste tutorial você aprendeu como facilmente transformar seu telefone celular em um dispositivo de sensor, conectá-lo ao servidor IBM Internet of Things e enviar e receber dados. Também aprendeu como processar e visualizar dados de dispositivo no Bluemix. Com esses dois apps, é possível reconhecer o valor do Bluemix para o Internet of Things, e tudo o que você precisa é de um telefone celular.

Tutoriais mais avançados estão disponíveis em https://www.ng.bluemix.net/docs/services/IoT/index.html. Eles mostram como conectar outros dispositivos de sensor ao Bluemix, como o Texas Instruments CC2541, o Arduino Uno ou o Raspberry Pi.


BLUEMIX SERVICE USED IN THIS TUTORIAL:Internet of Things: Este serviço fornece acesso ao aplicativo simples, porém poderoso, para dispositivos e dados IoT.

Tema relacionado:Internet of Things e Bluemix

Incluir um comentário

Observação: elementos HTML não são suportados nos comentários.


1000 caracteres restantes

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Internet of Things, Cloud computing
ArticleID=1025039
ArticleTitle=Ative seu telefone celular em um dispositivo IoT
publish-date=01262016