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
Talvez você goste:
Comentários:

27
Deixe um comentário

avatar
 
11 Comment threads
16 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
14 Comment authors
Bianca Santos MartinsWilton Moreira Ferraz JuniorAllef Anderson SilvaEduardoAkyra Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Bianca Santos Martins
Visitante
Bianca Santos Martins

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.

Wilton Moreira Ferraz Junior
Visitante
Wilton Moreira Ferraz Junior

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
Visitante
Bianca Santos Martins

gostaria de saber também

Eduardo
Visitante
Eduardo

Só é possível com Arduino nano?

Allef Anderson Silva
Visitante
Allef Anderson

Bom dia! É possível utilizar qualquer Arduino.

Eduardo
Visitante
Eduardo

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
Visitante
Allef Anderson

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

Luiz gustavo Silva da penha
Visitante
Luiz Gustavo

Parabéns ! Muito útil!!

Allef Anderson Silva
Visitante
Allef Anderson

Vlw Luiz. Muito obrigado!

Ronaldo Paroski
Visitante
Ronaldo Paroski

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

Allef Anderson Silva
Visitante
Allef Anderson

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
Visitante
Ricardo de Oliveira

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

Allef Anderson Silva
Visitante
Allef Anderson

Que show! Muito obrigado Ricardo.

Rodrigo Paschoal
Visitante
Rodrigo

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
Visitante
Allef Anderson

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

Guilherme Alvarenga Dos Santos
Visitante
Guilherme Santos

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
Visitante
Allef Anderson

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

Olavio Sales
Visitante
Olavio Sales

Muito massa!

Allef Anderson Silva
Visitante
Allef

Vlw amigo!

Ricardo
Visitante
Ricardo

Então basicamente você precisa de um computador para acender um led...

Allef Anderson Silva
Visitante
Allef

Meu caro Ricardo. Isso é apenas a ponta de um iceberg, se a caso usar qualquer linuxboard, vc executa o algoritmo em python e não faz uso do computador. Aproveitei para mostrar as funcionalidades que um computador também pode ter. O legal é que existem N maneiras de acender um Led.
Qualquer duvida estou a disposição!

Márcio
Visitante
Márcio

Ricardo, esta é uma demonstração de como fazer uma integração do ambiente WhatsApp (totalmente humano) com um sistema automatizado. Ele está acendendo um led, mas poderia fazer o pedido de um serviço, avisar um problema, responder uma pesquisa, efetuar uma compra, fazer um check-in/out, controlar uma instalação elétrica, liberar um acesso ou muitas outras funções dependendo da sua necessidade.
Parabéns Allef pelo tutorial!
Certamente os visitantes aqui devem, ao contrário do Ricardo, ver muito mais que um led acendendo....

Allef Anderson Silva
Visitante
Allef Anderson

Muito obrigado Márcio. Você esta perfeitamente correto e entendeu qual a mensagem eu quis transmitir. Obrigado pelo apoio e em breve escreverei mais sobre este sistema!

Séries

Menu

WEBINAR
 
Linux Embarcado: Desvendando o Pin Control Subsystem - Kernel Linux

Data: 26/02 às 19:30 h | Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link