IoT e Makers

21 fev, 2019

Nodejs + Chatbot + Arduino

Publicidade

Dando continuidade ao meu artigo anterior “Criando um chatbot com Node.js“, hoje mostrarei como integrar o nosso chatbot com uma placa Arduino.

Para pular a etapa de criação de um novo projeto, eu irei utilizar a versão final desenvolvida no meu artigo anterior. Caso tenha interesse em clonar esse projeto, segue o link no meu GitHub:

O primeiro passo será importar um pacote chamado johnny-five para o nosso projeto. Para isso, abra um terminal no seu computador, navegue até o projeto clonado e digite o comando abaixo:

npm install johnny-five --save

O próximo passo será atualizar o arquivo index.js. Abra o projeto no seu editor de textos preferido e em seguida atualize esse arquivo com o seguinte trecho de código abaixo:

var restify = require("restify");
var builder = require("botbuilder");
var five = require("johnny-five");

var led;

var board = new five.Board();
board.on("ready", function() {
  led = new five.Led(13);
});

var server = restify.createServer();

var connector = new builder.ChatConnector({
  appId: process.env.MICROSOFT_APP_ID,
  appPassword: process.env.MICROSOFT_APP_PASSWORD
});

server.post("/api/messages", connector.listen());

var bot = new builder.UniversalBot(connector, function(session) {
  if (session.message.text == "ligar") {
    led.on();
  } else if (session.message.text == "desligar") {
   led.off();
  }
});

server.listen(process.env.port || process.env.PORT || 3978, function() {
  console.log("%s listening to %s", server.name, server.url);
});

Analisando o código acima, nós temos:

  • 03: estamos importando a biblioteca johnny-five
  • 05: criação de uma variável global para passar o valor de um conector na nossa board
  • 07 a 10: inicializando a conexão com o board e passando o valor do pino 13 na nossa placa para ele
  • 22 a 26: verificando o valor que o usuário digitou, caso seja ligar passamos para variável led ligar, caso seja desligar, passamos para ela desligar o led

Agora adicione um led no pino 13 da sua placa Arduino. Abaixo você tem uma imagem demonstrando esse passo:

Chatbot + Arduino Uno

Caso queira fazer alguns testes antes de conectá-lo, recomendo que crie um projeto no portal Tinkercad – lá você pode utilizar algumas placas virtuais junto com alguns componentes para que possa brincar/testar antes de montar na sua placa física.

Agora siga os passos do artigo anterior e execute o projeto. Com o Botbuilder Emulator aberto e o projeto executando, digite ligar para que o seu led acenda e desligar para que ele desligue.

Caso todos os passos estejam OK, você terá o resultado do vídeo abaixo:

Bom, a ideia era demostrar como podemos concatenar tecnologias e construir algo pensando em hardware e software.

Caso tenha interesse em clonar a versão final desse projeto, segue o link no meu Github

Espero que tenham gostado e até um próximo artigo, pessoal!