Como fazer um Arduino e seu smartphone se comunicarem

Tempo de leitura: 3 minutes

Imagine ser capaz de se comunicar com qualquer dispositivo de qualquer lugar do mundo. Você pode controlar sua TV, luzes, máquina de lavar, lava-louças, torradeira, máquina de café – o que quiser – apenas por alguns dólares.

Você pode fazer isso com o Arduino. Tenho muitos deles espalhados pelo meu quarto, prontos para automatizar outro dispositivo meu.

Em um dos meus artigos anteriores, eu cobri como você pode usar o Arduino como um botão para ligar ou desligar qualquer dispositivo.

Hoje, discutirei os prós e os contras de vários métodos sem fio usados para criar comunicação entre o Arduino e smartphones. Isso não só permitiria que você usasse seu telefone como um switch, mas também o permitiria enviar comandos específicos para operações e obter o estado do Arduino.

Várias maneiras de enviar e receber dados

Existem várias maneiras de configurar a comunicação entre o Arduino e um smartphone, e cada uma delas é útil em certos casos. Aqui estão alguns deles.

 

Solicitações HTTP

Você pode enviar e receber dados usando o protocolo HTTP. As solicitações HTTP POST e GET são usadas para estabelecer a comunicação. Para isso, você pode usar um módulo ESP8266-NodeMCU. Este módulo pode facilitar a conexão e ainda possui portas GPIO.

HTTP (vantagens)

  • É uma plataforma sem estado (ou seja, a comunicação entre os dispositivos é fechada quando a mensagem é recebida pelo receptor). O HTTP é melhor para cenários em que os dados não precisam ser buscados com frequência.
  • Requer menos poder computacional.

HTTP (desvantagens)

  • HTTP é comparativamente mais lento do que os sockets da web. Uma nova conexão deve ser feita toda vez que você precisar enviar ou receber dados.

Uma boa analogia seria o bate-papo: você envia uma mensagem e espera a resposta para enviar outra mensagem.

 

Bluetooth (vantagens)

  • Você pode comprar módulos Bluetooth para Arduino por um preço muito baixo na Amazon ou eBay e conectá-los ao seu smartphone, PC ou smartwatch.
  • O Bluetooth consome menos energia do que a maioria das tecnologias de comunicação sem fio (2,5 mW).
  • É menos sujeito à interferência de dados, o que pode ser o caso de outros métodos sem fio. É melhor para comunicação sem fio de curto alcance.

Bluetooth (desvantagens)

  • Bluetooth é uma tecnologia de comunicação de curto alcance e às vezes não funciona adequadamente – mesmo fora de uma sala.
  • Não permite conexão com a internet. Isso vai contra o propósito da verdadeira comunicação a qualquer hora e em qualquer lugar.
  • Se você tem um grupo de amigos nerds, é a pior opção, pois está sujeito a interceptações e ataques.

 

Serviços online

Você também pode usar serviços como o Blynk, que tem um aplicativo móvel para smartphones e uma biblioteca para Arduino para configurar a comunicação.

Serviços online (vantagens)

  • Os serviços online geralmente não exigem muita codificação e trabalho árduo. Tudo é feito para você. Você só precisa conectar os pontos.
  • Os serviços pagos são atualizados regularmente e trazem mais recursos com o tempo.
  • Permite que você controle dispositivos de qualquer lugar do mundo, quando quiser.

Serviços online (desvantagens)

  • Esses serviços geralmente não são gratuitos ou têm restrições ou atritos.
  • O serviço pode não ter certos recursos de que você precisa.
  • Você está à mercê de um serviço de terceiros, o que pode não ser bom se você estiver procurando por aplicativos comerciais.

 

WebSocket (vantagens)

  • WebSocket é um protocolo com estado (ou seja, a conexão fica aberta até que um dos dispositivos seja desconectado). Ao contrário do HTTP, os soquetes da web não precisam fazer uma nova conexão toda vez que desejam enviar alguns dados.
  • É a melhor escolha para aplicativos em tempo real, como jogos e negociações, onde há um fluxo contínuo de dados.

Uma boa analogia seria uma chamada telefônica: até que uma parte desconecte, ambas as partes podem falar e se comunicar.

WebSocket (desvantagens)

  • É computacionalmente caro em comparação com o protocolo HTTP e, portanto, só é usado quando uma conexão em tempo real é necessária.

 

Conclusão

Para usar essas tecnologias, você pode criar um aplicativo móvel ou usar ESP8266 como um servidor web (para HTTP e WebSockets).