Primeiros testes com Eclipse Ponte

IOT

Esta semana comecei a fazer alguns testes com um projeto novo da fundação Eclipse. Trata-se do Ponte (https://www.eclipse.org/ponte), uma implementação em Node.js (http://nodejs.org) que permite o envio e recepção de dados utilizado 3 protocolos diferentes: MQTT, HTTP e CoAP.

Outra característica importante desta aplicação é a persistência dos dados, atualmente com suporte para o MongoDB, Redis e LevelDB. Isso define o Ponte como um broker máquina a máquina de múltiplos protocolos para IoT.

Arquitetura Ponte
Arquitetura Ponte

O procedimento de instalação e bem simples, só precisei atualizar o Node.js em meu Windows e executar o comando npm install ponte -g.

Após a instalação executei o comando ponte –version para checar a instalação e a versão. Uma lista dos comandos disponíveis pode ser obtida com o comando ponte –help.

-h, –help output usage information
-V, –version output the version number
-o, –observe Observe the given resource
-n, –no-new-line No new line at the end of the stream
-p, –payload <payload> The payload for POST and PUT requests
-b, –block2 <option> set the block2 size option
-q, –quiet Do not print status codes of received packets
-c, –non-confirmable non-confirmable
-t, –timeout <seconds> The maximum send time in seconds
-T, –show-timing Print request time, handy for simple performance tests
-O, –coap-option <key,value> Add COAP-Option to the request (repeatable)

Para iniciar a aplicação você pode usar o comando ponte -m 1883 onde 1883 é o número da porta. Se quiser uma inicialização com log use o comando ponte -v. Quando você habilita o log (verbose), é possível ver em qual porta cada protocolo estará escutando. A configuração padrão é:

  • MQTT 1883;
  • HTTP 3000;
  • CoAp 5683.

Meu primeiro teste foi utilizando um client MQTT (TT3) para publicar uma mensagem e obter esta mensagem via HTTP (Postman). Configurei o tópico “test” para envio das mensagens. Para poder obter a mensagem via HTTP, você deve usar a opção reter as mensagens em seu client MQTT.

Send MQTT menssage
Send MQTT menssage

Já do lado HTTP basta fazer uma requisição GET para http://localhost:3000/resources/test e obter a última mensagem.

Recebendo mensagem HTTP
Recebendo mensagem HTTP

Em seguida, minha tentativa foi fazer o oposto, agora enviando via HTTP e recebendo via MQTT. Para enviar via HTTP basta fazer um requisição PUT para http://localhost:3000/resources/test e enviar a mensagem desejada. Até aqui tudo funcionou muito bem.

Enviando mensagem HTTP
Enviando mensagem HTTP

Agora falta um teste, utilizando o protocolo CoAP. Para isso utilizei o coap-cli (http://github.com/mcollina/coap-cli) disparando o seguinte comando:

echo ‘Message 1 from CoAP’ | coap put coap://localhost/r/test

Sensacional, consegui obter a mensagem tanto via MQTT quanto HTTP.

Esta primeira etapa etapa foi concluída e a aplicação Ponte se saiu bem nos testes, atendendo sua proposta.

As configurações e persistência de dados fica para um artigo futuro.

O projeto e mais informações você pode obter em https://github.com/eclipse/ponte.