Conteúdo


Como conectar a DragonBoard 410C no IBM Watson IoT Platform

Comments

Esse tutorial visa ensinar como conectar a placa com processador Qualcomm feita pela Arrow e com padrão 96Boards, a DragonBoard 410C, ao IBM Watson IoT Plataform. Me baseei em dois textos encontrados na IBM Developer, que podem ser acessados neste link e neste link, mas que não estão 100%, caso queira seguir o passo a passo. A ideia é que, no final desse tutorial, a placa esteja conectada à plataforma da IBM enviando uma string. Para enviar sensores para a nuvem, basta integrar a leitura de sensores ao envio dessa string.

Instalando o MQTT-Client para Embedded C na DragonBoard 410C

A partir de uma DragonBoard 410C com alip-Linaro (veja link do artigo anterior onde indico como instalar o alip-Linaro na placa 410C), instale o MQTT-Client para Embedded C na placa DragonBoard 410C.

Caso não tenha uma conta no github, entre no link e crie uma conta. Informe o nome do usuário, endereço de e-mail e uma senha. Escolha o plano básico e após o cadastro confira seu e-mail. Confirme a sua conta clicando no link do e-mail enviado.

Abra um terminal na placa DragonBoard 410C e digite.

git clone https://github.com/ibm-messaging/iotf-embeddedc.git

Ele vai solicitar seu usuário e senha do github. O folder iot-embeddedc vai ser criado. Entre na pasta iot-embeddedc.

cd iot-embeddedc

Você deverá ver a estrutura a seguir:

ls
 
MakeLists.txt  LICENSE  README.md  lib  samples  setup.sh  src  test

Execute o comando:

./setup

Esse comando vai baixar o paho mqtt nesse link e descompactá-lo. Ele também vai fazer download do cJSON e descompactá-lo. Então vai copiar os arquivos corretos pra pasta lib. Entre na pasta samples e rode o Makefile com o comando make.

cd samples/


ls

CMakeLists.txt  README.md  device.cfg   helloWorld.c       sampleDMFirmwareActions.c  sampleDeviceManagement.c
Makefile        build.sh   gateway.cfg  sampleDMActions.c  sampleDevice.c             sampleGateway.c
make

cc sampleDevice.c -I ./../src/ -I ./../lib ./../src/iotfclient.c ./../lib/MQTTClient.c ./../lib/MQTTLinux.c ./../lib/MQTTFormat.c  ./../lib/MQTTPacket.c ./../lib/MQTTDeserializePublish.c ./../lib/MQTTConnectClient.c ./../lib/MQTTSubscribeClient.c ./../lib/MQTTSerializePublish.c ./../lib/MQTTConnectServer.c ./../lib/MQTTSubscribeServer.c ./../lib/MQTTUnsubscribeServer.c ./../lib/MQTTUnsubscribeClient.c -o sampleDevice
strip sampleDevice
cc helloWorld.c -I ./../src/ -I ./../lib ./../src/iotfclient.c ./../lib/MQTTClient.c ./../lib/MQTTLinux.c ./../lib/MQTTFormat.c  ./../lib/MQTTPacket.c ./../lib/MQTTDeserializePublish.c ./../lib/MQTTConnectClient.c ./../lib/MQTTSubscribeClient.c ./../lib/MQTTSerializePublish.c ./../lib/MQTTConnectServer.c ./../lib/MQTTSubscribeServer.c ./../lib/MQTTUnsubscribeServer.c ./../lib/MQTTUnsubscribeClient.c -o helloWorld
strip helloWorld
cc sampleGateway.c -I ./../src/ -I ./../lib ./../src/gatewayclient.c ./../lib/MQTTClient.c ./../lib/MQTTLinux.c ./../lib/MQTTFormat.c  ./../lib/MQTTPacket.c ./../lib/MQTTDeserializePublish.c ./../lib/MQTTConnectClient.c ./../lib/MQTTSubscribeClient.c ./../lib/MQTTSerializePublish.c ./../lib/MQTTConnectServer.c ./../lib/MQTTSubscribeServer.c ./../lib/MQTTUnsubscribeServer.c ./../lib/MQTTUnsubscribeClient.c -o sampleGateway
strip sampleGateway
cc sampleDeviceManagement.c -I ./../src/ -I ./../lib ./../src/iotfclient.c ./../lib/cJSON.c ./../src/devicemanagementclient.c ./../lib/MQTTClient.c ./../lib/MQTTLinux.c ./../lib/MQTTFormat.c  ./../lib/MQTTPacket.c ./../lib/MQTTDeserializePublish.c ./../lib/MQTTConnectClient.c ./../lib/MQTTSubscribeClient.c ./../lib/MQTTSerializePublish.c ./../lib/MQTTConnectServer.c ./../lib/MQTTSubscribeServer.c ./../lib/MQTTUnsubscribeServer.c ./../lib/MQTTUnsubscribeClient.c -o sampleDeviceManagement -lm
strip sampleDeviceManagement
cc sampleDMActions.c -I ./../src/ -I ./../lib ./../src/iotfclient.c ./../lib/cJSON.c ./../src/devicemanagementclient.c ./../lib/MQTTClient.c ./../lib/MQTTLinux.c ./../lib/MQTTFormat.c  ./../lib/MQTTPacket.c ./../lib/MQTTDeserializePublish.c ./../lib/MQTTConnectClient.c ./../lib/MQTTSubscribeClient.c ./../lib/MQTTSerializePublish.c ./../lib/MQTTConnectServer.c ./../lib/MQTTSubscribeServer.c ./../lib/MQTTUnsubscribeServer.c ./../lib/MQTTUnsubscribeClient.c -o sampleDMAction -lm
strip sampleDMAction
cc sampleDMFirmwareActions.c -I ./../src/ -I ./../lib ./../src/iotfclient.c ./../lib/cJSON.c ./../src/devicemanagementclient.c ./../lib/MQTTClient.c ./../lib/MQTTLinux.c ./../lib/MQTTFormat.c  ./../lib/MQTTPacket.c ./../lib/MQTTDeserializePublish.c ./../lib/MQTTConnectClient.c ./../lib/MQTTSubscribeClient.c ./../lib/MQTTSerializePublish.c ./../lib/MQTTConnectServer.c ./../lib/MQTTSubscribeServer.c ./../lib/MQTTUnsubscribeServer.c ./../lib/MQTTUnsubscribeClient.c -o sampleDMFirmwareActions -lm
strip sampleDMFirmwareActions

Criando uma conta no IBM Watson IoT Plataform

A IBM fornece ao novo usuário uma oportunidade de utilizar o Watson IoT Plataform por 1 mês gratuitamente. Vamos mostrar a seguir como criar uma conta e adicionar um dispositivo ao sistema, para que possamos conectar a DragonBoard 410C no IBM Watson IoT Plataform.

Entre no site do IBM watson IoT plataform acessando o link.

Complete as suas informações preenchendo todo o formulário.

Confira a sua caixa de e-mail e clique na confirmação.

Clique para fazer login:

Pronto, sua conta no IBM Bluemix está ativa. Siga em frente e faça o login. Será apresentada a seguinte tela. Selecionei US South mesmo. Clique em Create.

Dê um nome pro seu espaço de desenvolvimento de sua aplicação e selecione Create.

Clique em I’m ready e assim estará pronto pra usar o Bluemix.

Queremos nos conectar a IBM Watson IoT Plataform. Crie um App, clicando no botão azul, Create App.

Selecione Internet of Things Platform Starter.

Crie um nome para o App e um nome para o Host. Deixei as outras opções intactas.

Crie o app e assim poderemos começar a utilizar a plataforma.

Clique em Overview para ver o painel de gerenciamento das aplicações.

No Dashboard, é possível ver todas as placas.

Clique em Add Device

Defina um nome e definição ao dispositivo e clique em Next.

Dê nome e descrição ao dispositivo e clique em Next.

Marque as opções que julgar necessário. Eu selecionei fabricante e modelo e clique em Next.

Defina fabricante e modelo e clique em Next.

Envie as informações e assim um novo tipo de dispositivo estará disponível.

Adicione um dispositivo do tipo definido anteriormente.

Clique em Next para o próximo passo.

Clique em Next para continuar. Não adicionei nada em metadata. Clique em Next para continuar.

Deixei o campo token em branco e cliquei em Next.

Adicione dispositivo clicando em Add.

Verifique as informações de seu dispositivo criado.

Escondi minhas informações pra ninguém conectar em minha conta com seu dispositivo.

Configurando para conectar a DragonBoard 410C no IBM Watson IoT Plataform

Ainda dentro da pasta samples, edite o arquivo device.cfg

vim device.cfg

Para comecar a editar, use a tecla i. Utilize as informações obtidas de seu dispositivo no Watson IoT Plataform.

org=6v7xxx
type=iosample-Embarcados
id=SnapDragon-01
auth-method=token
auth-token=p*dwNZZZzvUWoKKK4B
~                                                                              
~

Para salvar, ESC, qw e ENTER.

Execute o arquivo sampleDevice e a placa DragonBoard vai se conectar ao Watson IoT e enviar uma string “temp = 34”. Veja que para enviar informações de sensores, por exemplo, basta alterar o valor dessa string.

./sampleDevice

Connecting to registered service with org 6v7xrj
Publishing the event stat with rc  0
Publishing the event stat with rc  0
Publishing the event stat with rc  0
Publishing the event stat with rc  0

Veja o resultado no dashboard da IBM:

Agradecimentos

Esse post foi feito durante o Hackaton Matera 2016. Obrigado ao pessoal da organização e quem me ajudou com esse post. Obrigado ao Douglas do LHC por ter levado a placa lá no Hackaton para conseguirmos colocá-la na plataforma IoT da IBM e pelo apoio e ajuda no linux. Agradecimentos ao Juliano da IBM por me indicar o caminho para fazer o cadastro do dispositivo na IBM Watson IoT Platform.

Artigo originalmente publicado em Embarcados


Recursos para download


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing
ArticleID=1041705
ArticleTitle=Como conectar a DragonBoard 410C no IBM Watson IoT Platform
publish-date=12272016