Node-RED com MQTT e IBM Watson

Node-RED com MQTT e IBM Watson

Dando sequência a nossa série de postagens sobre a ferramenta de programação visual Node-RED, o projeto cujo desenvolvimento daremos início nesta postagem será o resultado da união de três poderosas tecnologias junto ao Node-RED, a saber, módulo ESP32, IBM Watson e MQTT – Message Queue Telemetry Transport .

img-01_node-red_ibm_watson_mqtt_iot_esp32

Nosso projeto constitui em fazer com que o ESP32 se conecte com o MQTT para se inscrever em alguns tópicos. No entanto, a função do protocolo MQTT será intermediar a comunicação do ESP32 com o Watson. O MQTT é um protocolo de rede para troca de mensagens, também desenvolvido pela IBM. Hoje o MQ Telemetry Transport se tornou um padrão para a comunicação de IoT – Internet das Coisas, saiba mais em “Conhecendo o protocolo MQTT”.

Assim, em nosso projeto o papel do Node-RED será de fazer a interface para o envio de mensagens cujos tópicos o ESP32 está inscrito. A partir daí o objetivo é alterar o status dos relés de acordo com as mensagens recebidas nos tópicos. Mas de que projeto estamos falando? Nosso projeto hoje será o clássico acender e apagar de lâmpadas remotamente, mas para isso utilizando as três tecnologias mencionadas.

É importante que você, leitor, entenda que este projeto não será apresentado em uma única postagem, mas espera-se que ao final você seja capaz, de, não apenas reproduzir o que vamos fazer como também de aplicar o conhecimento adquirido em vários outros projetos. As três tecnologias que utilizaremos são profissionais e robustas, podendo ser empregadas em projetos profissionais, a um preço acessível. A baixa escalabilidade do custo de implementação de projetos profissionais com essas ferramentas se deve ao fato de que o Node-RED é uma ferramenta Open-source. E para projetos de baixa robustez o Watson poderá ser utilizado a partir de uma conta gratuita.

MÓDULO ESP32

O módulo ESP32, é uma arquitetura que pode ser programada em LUA ou pela IDE do Arduino. É uma solução que entrega às aplicações de IoT – Internet das Coisas, muito mais performance e poder de processamento do que as soluções que o antecederam. Entre as principais características deste módulo destacamos, Bluetooth 4.2 BLE, Dual core 32bits LX6 Xtensa, 448 KBytes de memória ROM, 520 KBytes de memória RAM e Wireless 802.11 b/g/n – 2.4GHz (antena integrada). Saiba mais sobre o ESP32 em “Conhecendo o NodeMCU-32S ESP32”.

IBM WATSON

O Watson é uma plataforma de serviços de Inteligência Artificial da IBM, ou seja, recursos de serviços cognitivos que a IBM disponibiliza para negócios. E de acordo com a descrição encontrada no site da própria empresa, “é a melhor Inteligência Artificial para você trabalhar”. Os cenários para a aplicação do IBM Watson são bem diversificados, como, atendimento ao cliente, aumento de produtividade, ChatBot, O Watson tem aplicabilidade até mesmo em Governança de contratos.

ESQUEMA DE COMUNICAÇÃO

Imagine como pilar central, uma plataforma de IoT, plataforma esta cuja composição ancora-se no IBM Watson, onde conectando-se a ela, temos, de um lado o ESP32 e do outro o Node-RED.

Observe o diagrama abaixo, ele desenha o conceito do nosso projeto descrito acima. Inicialmente o MQTT faz a inscrição dos tópicos solicitados pelo ESP32, para que posteriormente a publicação possa ser feita pelo Node-RED, e finalmente teremos a percepção da mudança de estado que se dá pelas solicitações de ligar ou desligar o relé, a partir do qual o pino de saída do ESP32 fará a mudança de estado, ligado ou desligado.

img-02_node-red_ibm_watson_mqtt_iot_esp32

Você precisará de um ESP32 que será conectado ao serviço do MQTT hospedado no IBM Watson e um módulo relé de dois canais que serão ligados e controlados pelo ESP32. Os relés controlarão cada um, uma lâmpada e uma tomada respectivamente. Tanto a lâmpada quanto a tomada estarão ligadas a uma fonte e serão chaveadas pelos relés.

Se ampliarmos este quadro para o cenário de uma automação residencial de fato, o que teremos que fazer é apenas a adição de mais canais, ou seja, mais relés, que serão controlados por uma única placa.

A interface da aplicação de onde os comandos serão disparados será desenvolvida no Node-RED, que a exemplo do serviço de MQTT estará hospedada no IBM Watson, em uma conta gratuita. É importante ressaltar que a aplicação deve estar dentro do limite de 200MB, que é o máximo permitido em uma conta gratuita. Quanto a nossa aplicação, ela contemplará apenas o básico para o nosso projeto, dois comandos, uma para cada canal.

Um dos grandes atrativos da integração dessas tecnologias reside no fato de que por meio do mesmo endereço vários dispositivos poderão ao mesmo tempo se conectar a aplicação e perceber instantaneamente a alteração do status de cada canal. Se um filho sai para o colégio e esquece de apagar a luz do quarto, o pai no trabalho mediante acesso à aplicação poderá apagá-la remotamente ou conferir o status.

Este é o âmbito da automação de dispositivos e produtos, o acender e apagar das luzes é apenas uma micro parte da gama de possibilidades. A automação residencial é não é apenas um passo, o limite é a imaginação de cada um.

CRIANDO UMA CONTA NO IBM CLOUD

Acesse o site IBM Cloud e clique em Comece a usar gratuitamente, preencha o formulário com seus dados de e-mail, nome, sobrenome, país e senha. Confira. Estando tudo certo crie sua conta. Acesse seu e-mail e confirme o cadastro.

img-03_node-red_ibm_watson_mqtt_iot_esp32

img-04_node-red_ibm_watson_mqtt_iot_esp32

Após a etapa de cadastro faça o login no console do bluemix para ter acesso a plataforma e entrar no dashboard do IBM Cloud onde clicará em Criar recurso.

img-05_node-red_ibm_watson_mqtt_iot_esp32

CRIANDO SERVIÇO WATSON

Uma vez na tela de cadastro pesquise pelo termo “Watson IoT”, sem as aspas, e clique em Internet of Things Platform ou Plataforma Internet das Coisas.

img-06_node-red_ibm_watson_mqtt_iot_esp32

Escolha um nome para o serviço. IMPORTANTE, em Escolher uma região/local no qual implementar: não mexa na opção Sul dos EUA. Após a configuração Clique em criar.

img-07_node-red_ibm_watson_mqtt_iot_esp32

Se todas as etapas foram concluídas com sucesso estamos prontos para começar a usar o serviço Watson IoT Platform. Clique em Iniciar para ter acesso ao dashboard do “IBM Watson IoT Platform”.

img-08_node-red_ibm_watson_mqtt_iot_esp32

O dashboard já abrirá na tela que nos interessa, mas caso a sua tela esteja diferente, vá ao menu lateral a esquerda e clique em Dispositivos, após isso, clique em + Incluir dispositivo.

img-09_node-red_ibm_watson_mqtt_iot_esp32

Clique em Tipos de dispositivo e depois em +incluir tipo de dispositivo. Abrirá uma nova tela onde você deverá escolher um nome, nós optamos por “ESP32’, e uma descrição, colocamos “Microcontrolador ESP32”, clique em Avançar.

img-10_node-red_ibm_watson_mqtt_iot_esp32

Deixe todos os campos em branco e clique em Concluído. Na próxima tela clique em Registrar Dispositivos.

img-11_node-red_ibm_watson_mqtt_iot_esp32

Clique em Avançar e depois defina um identificador para o dispositivo em “ID do dispositivo”, nós escolhemos “ID001”. Avance para a próxima tela onde os campos também serão deixados em branco. clique em Avançar. Na próxima tela clique também em Avançar, assim teremos escolhido a opção “Token de autenticação gerado automaticamente (padrão)”, caso você tenha um Token para fornecer insira-o no campo “Token de autenticação” e prossiga. Confira as informações e clique em Concluído.

img-12_node-red_ibm_watson_mqtt_iot_esp32

Agora o seu dispositivo foi criado, é IMPORTANTE que você anote as informações geradas e não as percas, ou terá que registrar um novo dispositivo.

Os tokens de autenticação não são recuperáveis. Se você perder esse token, será necessário registrar novamente o dispositivo para gerar um novo token de autenticação.

No dashboard clique novamente em Dispositivos e observe que um novo dispositivo foi adicionado. Volte ao menu e clique em Aplicativos.

ADICIONANDO CHAVES DE API

Após clicar em Aplicativos clique então em Gerar chave API e crie uma descrição, como por exemplo, “Chave de API utilizada pelo Node-RED” e clique em Avançar. Na próxima tela, no campo “Função” escolha a opção Aplicativo Padrão e clique em Gerar Chave.

img-13_node-red_ibm_watson_mqtt_iot_esp32img-14_node-red_ibm_watson_mqtt_iot_esp32

Pronto A chave de API foi incluída, atente-se para a mensagem exibida:

img-14_node-red_ibm_watson_mqtt_iot_esp32 img-15_node-red_ibm_watson_mqtt_iot_esp32

Anote o token de autenticação gerado. Os tokens de autenticação perdidos não podem ser recuperados. Se você perder o token, deverá registrar novamente a API para gerar um novo token.

Agora volte ao dashboard e clique em Segurança > Segurança da conexão como mostra a imagem abaixo e escolha a opção “TLS Opcional” e clique em Salvar.

img-16_node-red_ibm_watson_mqtt_iot_esp32

E finalizamos aqui o nosso longo, mas necessário processo de  Criação do nosso serviço Watson. Esperamos que tenham gostado. Nos vemos no próximo post.

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formada em Engenharia da Computação pela Faculdade Presidente Antônio Carlos, Web Designer, é também colaboradora da plataforma de conteúdo digital Oficina da Net. Tem um livro de ficção publicado como autora independente.