Interface entre Arduino e WhatsApp

O Twilio é uma plataforma com intuito de facilitar desenvolvedores a criarem soluções integradas com voz, mensagens de texto, vídeo, notificações e facilidades de comunicação em geral. O mesmo conta com uma API (Application Programming Interface) capaz de enviar mensagens bidirecionais do app Whatsapp de maneira autônoma.

Aplicação

Neste post iremos controlar um led através de mensagens enviadas pelo Whatsapp com intuito de simular uma situação onde todo ambiente poderá ser controlado por mensagens enviadas pelo app. Por meio de uma interface criada em Python os dados serão tratados e um Arduino se responsabilizará por receber os comandos e controlar o status do LED.

Materiais e montagem

Para conclusão de todo o projeto será necessário termos em mãos os seguintes materiais:

  • Arduino 
  • LED
  • Jumpers MM
  • Protoboard

Segue abaixo o esquema para montagem do protótipo:

Configurando o Twilio

Antes de mais nada é necessário inscrever-se no Twilio. Para isso clique aqui. Após o registro, faremos o login e seremos direcionado a dashboard da plataforma. Para configuração do acesso é necessário seguir este simples tutorial. Uma vez configurado não será mais necessário fazê-lo novamente. Após a conclusão clique na opção “Sendbox” no menu lateral esquerdo.

Abaixo um fluxograma ilustra como funcionará a execução dos processos. 

O Whatsapp envia uma mensagem para o Twilio, através de um webhook a interface recebe o texto da mensagem, envia o comando para o Arduino e retorna um feedback para o Twilio que por sua vez encaminha o mesmo em forma de mensagem para o usuário do Whatsapp. 

Programação

Levando em consideração que o Python e o Pip estejam instalados em sua máquina, é necessário baixarmos a biblioteca do Twilio, Flask e a Pyserial. Para isso execute os comandos abaixo, caso tenha problemas com o método de instalação do Twilio consulte a biblioteca aqui.

Feito isso crie o arquivo whats.py, on.py e off.py. O whats.py receberá o algoritmo que fará a interface entre o app e o Arduino, o aquivo on.py será responsavel por acender o led e por fim o off.py se responsabilizará por apagar o led.

Copie o código abaixo e cole-o dentro do arquivo whats.py. O mesmo é responsável por criar um servidor local na porta 5000, criar uma rota chamada led, receber mensagens através do método POST, fazer a verificação da mensagem recebida, retornar uma mensagem de feedback e executar o algoritmo que define o status do led.

Em seguida preencha o arquivos on.py com o seguinte algoritmo.

E para o arquivo off.py.

Ao conectar o Arduino na USB verifique se o mesmo estará alocado na porta COM3 caso seja outra porta é necessário fazer a alteração no parâmetro da variável “ser”. Feito isso abra a IDE do Arduino e compile o algoritmo abaixo.

O mesmo é responsável por ler as informações que chegam na Serial e acionar o led de acordo com os comandos recebidos. Para fazer download de todos algoritmos basta clicar aqui.

Para finalizar faça download do ngrok, necessário para criar uma URL no servidor localhost. Para fazer download basta clicar aqui, descompacte o arquivo executável e adicione-o à pasta do projeto. Após o procedimento execute o arquivo whats.py em seguida execute o ngrok e efetue o seguinte comando:

Se tudo ocorrer bem, você visualizará informações parecidas com a imagem abaixo.

Copie o link que contém o https e cole-o no input do “Sendbox” dentro da plataforma do Twilio, complete o link com “/led” em seguida clique em save. Certifique-se que o campo foi preenchido corretamente.

Conclusão

Se todos os procedimentos foram executados de maneira adequada, basta enviar uma mensagem para o número do Twilio salvo no smartphone e ele lhe responderá com as seguintes mensagens.

Sinta-se a vontade para fazer alterações no algoritmo, adicionando novas funcionalidades. A plataforma Twilio oferece uma vasta gama de ferramentas, aproveite para fazer uso das demais. Abaixo o vídeo demonstra a solução final do projeto executado com maestria.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Arduino » Interface entre Arduino e WhatsApp
Comentários:
Notificações
Notificar
guest
34 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Dunian Coutinho Sampa
Dunian Coutinho Sampa
15/07/2020 23:02

Olá,
É possível enviar mensagens para Twilio sem conectar o Arduino na porta serial do computador?

EDISON LUIS ROMANELLI DA SILVA JUNIOR
EDISON LUIS ROMANELLI DA SILVA JUNIOR
04/06/2020 01:23

Toda vez que ligo o computador, tenho que rodar o ngrok pra ele gerar uma nova URL, entrar no twilio e informar essa nova URL... Existe algum outro jeito de criar uma URL fixa? Vi alguma coisa na internet sobre um tal de "serveo", como alternativa ao ngrok.

Allef Anderson Silva
Allef
Reply to  EDISON LUIS ROMANELLI DA SILVA JUNIOR
05/06/2020 15:31

É possível instalar ele em algum server na nuvem e ele fica rodando diretamente

Bianca Santos Martins
Bianca Santos Martins
02/02/2020 13:30

Olá, gostaria de saber se voce tem algum projeto nesse seguimento de whats app com Twilio porem trabalhado com um teclado membrana e enviando mensagens de acordo com o numero apertado no mesmo.
Att.

Allef Anderson Silva
Allef
Reply to  Bianca Santos Martins
05/06/2020 15:30

Neste seguimento eu ainda não vi nada. Mas é possível ser desenvolvido com as mesmas ferramentas demonstradas neste post

Wilton Moreira Ferraz Junior
Wilton Moreira Ferraz Junior
31/01/2020 10:50

Bom dia Allef

Seria possível fazer um projeto no qual se apertasse um botão no arduino e fosse enviada uma mensagem para o WhatsApp?

Desde já grato pela atenção

Bianca Santos Martins
Bianca Santos Martins
Reply to  Wilton Moreira Ferraz Junior
02/02/2020 13:30

gostaria de saber também

EDISON LUIS ROMANELLI DA SILVA JUNIOR
EDISON LUIS ROMANELLI DA SILVA JUNIOR
Reply to  Wilton Moreira Ferraz Junior
03/06/2020 22:23

Também fiquei na dúvida se isso é possível!

Allef Anderson Silva
Allef
Reply to  Wilton Moreira Ferraz Junior
05/06/2020 15:29

Claro! É bem possível. Vcs teriam interesse caso eu escreve sobre isso?

EDISON LUIS ROMANELLI DA SILVA JUNIOR
EDISON LUIS ROMANELLI DA SILVA JUNIOR
Reply to  Allef
05/06/2020 17:38

Sim!!

Eduardo
Eduardo
10/10/2019 19:19

Só é possível com Arduino nano?

Allef Anderson Silva
Allef Anderson
Reply to  Eduardo
14/10/2019 08:36

Bom dia! É possível utilizar qualquer Arduino.

Eduardo
Eduardo
Reply to  Allef Anderson
17/10/2019 20:19

Boa Noite!
Na parte que pede para executar o arquivo whats.py e em seguida ngrok, o whats.py pode ser em qualquer IDE python?

Allef Anderson Silva
Allef Anderson
Reply to  Eduardo
18/10/2019 10:40

Eu executei no sublime e também executei no terminal de comandos

Luiz gustavo Silva da penha
Luiz Gustavo
03/10/2019 08:00

Parabéns ! Muito útil!!

Allef Anderson Silva
Allef Anderson
Reply to  Luiz Gustavo
03/10/2019 16:52

Vlw Luiz. Muito obrigado!

Ronaldo Paroski
Ronaldo Paroski
02/10/2019 19:54

Boa noite, nunca programei em python, consigo fazer? Qual IDE sugere para fazer o codigo em python?

Allef Anderson Silva
Allef Anderson
Reply to  Ronaldo Paroski
03/10/2019 08:35

Ola Ronaldo. Claro que consegue, basta procurar outros tutoriais aqui no embarcados mesmo para se ambientar com o Python. Para programação do mesmo é possível usar qualquer editor de código. Eu utilizo o Sublime, mas também é possível programar direto do prompt de comando.

Ricardo de Oliveira
Ricardo de Oliveira
02/10/2019 18:53

Executei aqui com total sucesso! Obrigado por compartilhar essa informação de qualidade e utilidade. Abraço!

Allef Anderson Silva
Allef Anderson
Reply to  Ricardo de Oliveira
03/10/2019 08:32

Que show! Muito obrigado Ricardo.

Rodrigo Paschoal
Rodrigo
02/10/2019 16:55

Boa tarde Allef, fiz todos os procedimentos.. todos os passos.. não deu erro em nada.. mas agora estou na tela do whats com uma mensagem que diz que estou conectado, que para sair posso dar um "stop".. então quando digito o OLA não acontece nada.. a msg do whatsapp é enviada mas não obtenho retorno, pode me ajudar?

Allef Anderson Silva
Allef Anderson
Reply to  Rodrigo
03/10/2019 08:31

Bom dia Rodrigo. Ja te respondi via email. Pode me contatar que vou lhe ajudar!

Guilherme Alvarenga Dos Santos
Guilherme Santos
02/10/2019 15:02

Parabéns pelo projeto!! Fantástica essa integração entre o Python e o Arduino, as possibilidades são realmente infinitas!! Show demais!!

Allef Anderson Silva
Allef Anderson
Reply to  Guilherme Santos
03/10/2019 08:30

Muito obrigado pelo apoio Guilherme. Pretendo escrever mais sobre outras possíveis utilidades desta ferramenta!

Talvez você goste:

Nenhum resultado encontrado.

Séries

Menu

WEBINAR
 
Sensores e soluções para aplicações em indústria inteligente

Data: 13/08 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link