Ative seu telefone celular em um dispositivo IoT – IBM Developer

Ative seu telefone celular em um dispositivo IoT

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 IBM Cloud™ 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:

Diagrama representando o funcionamento do IBM IoT server na integracão com o IOT starter Android app.

O que será necessário para desenvolver seus apps

Etapa 1. Crie um app IoT no IBM Cloud

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 recebermensagens MQTTpara e a partir do servidor IBM IoT na nuvem.

  1. Efetue login em sua conta IBM Cloud (ou registre-se para obter uma avaliação gratuita).
  2. Clique em Catálogo.
  3. Clique em Internet of Things Foundation Starter.

    Printscreen do botão Internet of Things Foundation Starter.

  4. Insira um nome para seu aplicativo. Como esse nome também será usado como o nome do host, ele deverá ser exclusivo no IBM Cloud, por exemplo, “iot “. Por exemplo, eu posso usar iotdemodaniel3.

    Printscreen do formulário de informações para a criação de um app no IBM Cloud.

  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.

    Printscreen do painel de controle do IBM Cloud com a opção Internet of Things selecionada.

  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 IBM Cloud, selecione seu aplicativo e depois clique no novo serviço.
  2. Na página de serviços, clique no botão Ativar painel.

    Printscreen da página de serviços do IBM Cloud com o botão de ativação do painel destacado.

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

    Printscreen da tela de visão geral do painel do IBM Cloud revelando o ID da organização.

  3. Clique em Incluir um dispositivo e, 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).

    Printscreen do formulário de criação de dispositivo no painel indicando que ele deve ser Android.

  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.

    Printscreen da tela de conclusão de registro do dispositivo no painel destacando o token de autenticação.

  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

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.

None

  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.

    Printscreen da tela de um celular acessando o arquivo iot .apk para a instalação no Android.

  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.

    Printscreen da tela de downloads de um celular Android.

    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:

    Printscreen da tela inicial do app IoT Starter solicitando as informações de login.

  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.

    Printscreen da tela do app na área do acelerômetro mostrando os dados do mesmo.

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.

    Printscreen da tela de visão geral de dispositivos no painel do IBM Cloud onde o dispositivo cadastrado anteriormente aparece na lista.

  3. Clique no ID do dispositivo. Uma janela pop-up é exibida mostrando as mensagens recebidas de seu dispositivo.

    Printscreen da tela do painel com um pop-up mostrando mensagens recebidas do dispositivo.

    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 IBM Cloud.

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

Nesta seção, você aprimorará seu app IBM Cloud 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.

None

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

    Printscreen da tela inicial do Node-RED no Bluemix.

  3. O editor abre, contendo um fluxo de amostra.

    Prinscreen do editor do Node-RED mostrando um fluxograma padrão do app.

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.

  1. 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":[]}]

  2. 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.
  3. No editor de Node-RED, pressione Ctrl-I para abrir o diálogo Importar nós. Cole o código e clique em OK.

    Printscreen do pop-up de diálogo do Node-RED com o código colado.

  4. 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.
  5. Clique em Implementar no editor de fluxo. O fluxo é implementado e deve estar ativo imediatamente.
  6. 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.
  7. 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.

    Printscreen do editor do Node-RED com a aba "debug" destacada.

  8. 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.

    Printscreen do editor de calculo de cores do Node-RED.

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

Etapa 6. Crie um app IBM Cloud para visualizar dados do sensor

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

NoneNone

  1. Faça download iot-visualization-0.1.0.zip. Extraia os arquivos.
  2. Abra o IBM Cloud 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 IBM Cloud, pois ele é usado como um nome de host. Insira algo como “iotvisualizer ” 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.

    Printscreen do editor de texto com as informações do arquivo aberto.

  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 IBM Cloud. Se você tiver mais de uma organização IBM Cloud (não o caso padrão), será solicitado a selecioná-las.

  11. Implemente o aplicativo para o IBM Cloud 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 IBM Cloud. 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 IBM Cloud, abra a página Visão geral de seu app. Clique em Ligue um serviço ou API.

    Printscree do painel do IBM Cloud com o botão de visão geral destacado.

  13. Selecione o serviço Internet of Things que você definiu na Etapa 1. Crie um app IoT no IBM Cloud. 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.

    Printscreen do app no Bluemix com a área de ID destacada.

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 IBM Cloud. Com esses dois apps, é possível reconhecer o valor do IBM Cloud 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 IBM Cloud, como o Texas Instruments CC2541, o Arduino Uno ou o Raspberry Pi.

Aviso

o conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original