IoT — Automação Residencial com Chatbots (na prática)

Bruno Gastaldi
Aug 22, 2017 · 5 min read

Automação Residencial já foi considerado luxo. Somente pessoas com alto poder aquisitivo tinha acesso a esse tipo de conforto. Tal assunto inclusive foi tema da minha monografia para a conclusão do curso de Engenharia de Computação em 2008 — Automação Residencial usando microcontroladores e tecnologias de estado da arte em programação voltada para à internet. O mesmo tinha como finalidade pesquisar, simular e implementar uma solução de baixo custo, usando microcontrolador 8051, o que possibilitava ser controlado através de interfaces móveis ou fixas, como por exemplo, um PC ou um celular com WAP (old).

De 2008 a 2017 tivemos um grande avanço tecnológico, temos agora em nosso alcance uma gama de possibilidades práticas e econômicas para viabilizar tal automação. Sendo assim, resolvi publicar diversos artigos com o intuito de mostrar algumas possibilidades com a utilização dos conceitos de IoT integrado com chatbots. Então, vamos começar!

O que é IoT e Chatbots?

A Internet das Coisas (do inglês, Internet of Things) é uma revolução tecnológica a fim de conectar dispositivos eletrônicos utilizados no dia-a-dia (como aparelhos eletrodomésticos, eletroportáteis, máquinas industriais, meios de transporte etc.) à Internet, cujo desenvolvimento depende da inovação técnica dinâmica em campos tão importantes como os sensores wireless, a inteligência artificial e a nanotecnologia. — Wikipédia

O Chatbot é um programa de computador que tenta simular um ser humano na conversação com as pessoas. O objetivo é responder as perguntas de tal forma que as pessoas tenham a impressão de estar conversando com outra pessoa e não com um programa de computador. Após o envio de perguntas em linguagem natural, o programa consulta uma base de conhecimento e em seguida fornece uma resposta que tenta imitar o comportamento humano. — Wikipédia

Se você ficou com dúvida sobre chatbot não se preocupe, nosso amigo Caio Calado definiu muito bem O que é um chatbot? em seu artigo.

O que vamos fazer?

Este primeiro artigo tem como objetivo demonstrar o passo a passo da possibilidade de controlar o acionamento de uma lâmpada através de um chatbot. Além disso, iremos integra-lo com o Google Home simulando uma verdadeira automação residencial via controle de voz.

O que vamos precisar?

Nosso projeto será dividido em 3 partes:

Para o acionamento da lâmpada utilizaremos:

O bot será construído utilizando a plataforma do Google API.ai.
Veja uma breve introdução da plataforma por Bruno Brandes ou assistam o hangout da comunidade BotCaverna (Telegram) no qual participei juntamente com o Jackson F. de A. M. e o Rian Nascimento para entender mais sobre API.ai.

A integração com o Google Home será feito através do API.ai com o Google Actions

Mão na Massa — 1ª Parte: IoT (Internet das Coisas)

Para modelar o circuito eletrônico com Arduino utilizaremos o Fritzing, uma ferramenta open source disponível para Windows, Linux e MAC OS.

Relê e Lâmpada adicionados manualmente.

Seguindo o protótipo, o circuito real fica semelhante a imagem abaixo:
** Dica: Faça todas as conexões antes de ligar a lâmpada na tomada.**

Circuito Elétrico — Real

Cuidado! Alta Tensão! Se você não souber trabalhar com corrente elétrica NÃO FAÇA, é perigoso tomar choque!!!

Nesse ponto será necessário fazer upload do sketch (código) no Arduino. Se nunca trabalhou com o Arduino, siga os passos abaixo:

  • Baixe a IDE;
  • Conecte o Arduino na porta USB utilizando seu cabo;
  • Abra uma NOVA sketch;
  • Cole o código lamp.ino na IDE;
  • Clique no botão VERIFICAR (1);
  • Clique no botão CARREGAR (2);
  • Após o carregamento seu Arduino estará pronto.
IDE Arduino — Verificar e Carregar

Em caso de dúvidas, recomendo ler o manual no site oficial ou deixar um comentário para que possa ajudá-lo.

Podemos perceber pelo código acima que o Arduino é responsável por enviar comandos para alteração de estado do relê, que por sua vez controla o acionamento da lâmpada. Em suma, o relê abre e fecha o circuito para que a lâmpada possa ser ligada ou desligada. Todo esse processo é feito através de uma simples chamada via browser.

O entendimento dessa primeira parte pode ser vista no vídeo a seguir:

Vídeo para entendimento do Arduino

Mão na Massa — 2ª Parte: Chatbot

Utilizando a plataforma API.ai iremos criar um agente (assistente virtual) com algumas intents simulando a funcionalidade de acionamento da lâmpada. — Faça o download do agente e importe para o API.ai. 😉

A ideia é que nosso assistente virtual tenha a capacidade de verificar o estado da lâmpada (ligado / desligado) e que possa manipular esses estados (ligando / desligando).

Chatbot com API.ai

Na opção fulfillment do API.ai habilitaremos o webhook para o endpoint através do link em https, gerado pelo serviço do ngrok que tem a capacidade de criar um túnel seguro com um servidor local (localhost).

O endpoint contém um arquivo em PHP, que de forma bem simples irá realizar as alterações de estado da lâmpada.

Com o API.ai devidamente configurado e o Arduino ligado vamos testar a integração de ambos.

Vídeo para entendimento do Chatbot

Mão na Massa — 3ª Parte: Google Home

Finalizando o artigo, esta última parte tem como objetivo integrar nosso bot com o Google Home através da plataforma Google Actions.

Uma observação a ser feita é que recentemente a API do Google Actions foi atualizada para versão 2. Sendo assim, foi necessário realizar alguns ajustes em nosso arquivo PHP do endpoint, para que seu retorno seja compatível com a mesma. Veja aqui o arquivo alterado.

Após realizar os ajustes no arquivo do endpoint, dentro do API.ai iremos clicar em Integration e ativar a opção Actions on Google em settings:

Integração do API.ai com Google Actions

Com as configurações realizadas, iremos clicar no botão TEST e consequentemente em VIEW para que o simulador do Google Home seja aberto.

Por fim, com o simulador aberto faz se necessário requisitar seu bot para o assistente através do comando "Talk to my test app". Feito isso o mesmo está habilitado para executar suas ações como mostra o vídeo abaixo:

Vídeo para entendimento do Google Home

Bom, espero que tenham gostado. Em breve disponibilizarei outros artigos utilizando IoT com sensores que podemos facilmente consumir seus dados, tais como: temperatura, umidade, presença, distância, além de poder solicitar e receber imagens de câmeras através do chatbot.

Gostaria de agradecer a todos que diretamente ou indiretamente contribuíram com este artigo. Em especial para os feras Ricardo Blumer Grobel, Caio Calado, Jackson F. de A. M. e Rian Nascimento.

Dúvidas?! Estou à disposição!

Bots Brasil

Conectamos pessoas e compartilhamos conteúdos relacionados à Bots, Inteligência Artificial e Interfaces Conversacionais em Português.

)

Thanks to Jackson F. de A. M.

Bruno Gastaldi

Written by

bgastaldi.com

Bots Brasil

Conectamos pessoas e compartilhamos conteúdos relacionados à Bots, Inteligência Artificial e Interfaces Conversacionais em Português.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade