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:
O que será necessário para desenvolver seus apps
- Uma conta do IBM Cloud.
- Faça o download e instale a interface da linha de comandos do Cloud Foundry.
- Um telefone celular (um dispositivo Android ou iOS)
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.
- Efetue login em sua conta IBM Cloud (ou registre-se para obter uma avaliação gratuita).
- Clique em Catálogo.
Clique em Internet of Things Foundation Starter.
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
.- Clique em Criar.
- Clique em Painel na barra de ferramentas e clique em seu aplicativo recém-criado.
- Clique em Incluir um serviço ou API.
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.
- Deixe os padrões e clique em CRIAR.
- Clique em Remontar na mensagem que é exibida. Seu aplicativo é remontado.
Etapa 2. Incluir um dispositivo que enviará mensagens MQTT para o servidor IoT
- A partir do painel no IBM Cloud, selecione seu aplicativo e depois clique no novo serviço.
Na página de serviços, clique no botão Ativar painel.
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.
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).- 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.
- 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”.
- 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.
Clique em Incluir.
O dispositivo gerado é exibido na tela.
- 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
- 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.
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.- Clique em Fazer download.
- 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.
Na pasta, clique em iot-starter_501.apk. Clique em Instalar.
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.
- Inicie o app IoT Starter.
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.
- 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,
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.
Etapa 4. Verifique se as mensagens estão sendo enviadas de seu telefone celular para o servidor IoT
- 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).
Na guia Dispositivos, seu dispositivo Android é exibido.
Clique no ID do dispositivo. Uma janela pop-up é exibida mostrando as mensagens recebidas de seu 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
- 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.
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. O editor abre, contendo um fluxo de amostra.
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.
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":[]}]
- 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.
No editor de Node-RED, pressione Ctrl-I para abrir o diálogo Importar nós. Cole o código e clique em OK.
- 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. - Clique em Implementar no editor de fluxo. O fluxo é implementado e deve estar ativo imediatamente.
- 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.
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.
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.
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
- Faça download iot-visualization-0.1.0.zip. Extraia os arquivos.
- Abra o IBM Cloud e clique em Painel.
- Clique em Criar app.
- Selecione WEB como o tipo de aplicativo.
- Selecione SDK para Node.js.
- 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. - Em alguns momentos, você deverá obter o feedback de que
Seu app está em execução
. 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.
- Abra uma janela de comandos e altere para o diretório no qual você extraiu o arquivo iot-visualization-0.1.0.zip.
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.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'
.No painel do IBM Cloud, abra a página Visão geral de seu app. Clique em Ligue um serviço ou API.
- 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.
- Para verificar o app do visualizar, em um navegador, abra
http:// _<your app name>_.mybluemix.net
Na caixa suspensa Dispositivo, selecione o ID do seu dispositivo.
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