Arduino - WebSocket
Neste guia, vamos explorar o que é o WebSocket, por que ele é útil para controlar o Arduino de forma eficaz e como implementar o WebSocket com o Arduino. Por meio de um exemplo prático, vamos demonstrar como construir um aplicativo de chat que conecta um navegador web ao Arduino, permitindo que você:
- Digite e envie mensagens da janela de chat no seu navegador web para o Arduino. Esse método pode ser modificado para controlar o Arduino.
- Receba mensagens do Arduino instantaneamente. Essa configuração pode ser modificada para monitorar o Arduino em tempo real.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
O que é o Arduino Websocket?
Você deve estar se perguntando: "O que é WebSocket?" É bem simples: o WebSocket é uma tecnologia que permite que um navegador web se comunique diretamente com um servidor web em tempo real.
- Sem o WebSocket, você precisaria recarregar a página web para ver novas atualizações. Isso não é muito prático.
- Com o WebSocket, a página web permanece continuamente conectada ao servidor. Isso permite que eles troquem informações instantaneamente, sem precisar recarregar a página.
Você provavelmente encontra a tecnologia WebSocket com frequência em aplicações web do dia a dia, como jogos online, mensagens instantâneas e atualizações do mercado de ações.
Por que precisamos do WebSocket para controlar o Arduino de forma fluida?
Imagine que você quer controlar seu carrinho de controle remoto usando uma interface web no seu celular ou computador. Sem o WebSocket, toda vez que você quisesse mudar a direção ou a velocidade do carro, precisaria recarregar a página web. É como ter que apertar um botão de "recarregar" toda vez que você envia um comando para o carro.
Com o WebSocket, no entanto, é como se houvesse uma conexão contínua e direta entre seu celular ou computador e o carro. Você não precisa recarregar a página para dirigir o carro ou mudar sua velocidade. É como se o carro escutasse constantemente seus comandos em tempo real, sem nenhum atraso causado pela necessidade de recarregar a página.
De modo geral, o WebSocket facilita:
- O envio de dados do navegador web para o Arduino sem precisar recarregar a página web.
- O envio de dados do Arduino de volta para o navegador web sem recarregar a página.
Isso possibilita uma comunicação bidirecional fluida em tempo real.
Benefícios do WebSocket com o Arduino:
- Controle em Tempo Real: o WebSocket permite comunicação instantânea com o Arduino, garantindo respostas rápidas aos comandos para uma experiência de usuário perfeita.
- Conexão Persistente: mantenha uma ligação contínua sem recarregar a página de controle, criando uma linha de comunicação sempre pronta para instruções imediatas.
- Eficiência: tenha respostas rápidas sem a necessidade de recarregar a página constantemente, melhorando a satisfação geral do usuário e a eficiência.
Chat Web com Arduino via WebSocket
O conteúdo da página web (HTML, CSS, JavaScript) fica armazenado separadamente em um arquivo index.h. Assim, teremos dois arquivos de código na Arduino IDE:
- Um arquivo .ino, que é o código do Arduino, que cria um servidor web e um servidor WebSocket
- Um arquivo .h, que contém o conteúdo da página web.
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Uno R4, veja como configurar o ambiente para o Arduino Uno R4 na Arduino IDE.
- Conecte a placa Arduino ao seu PC por meio de um cabo USB Type-C
- Abra a Arduino IDE no seu PC.
- Selecione a placa Arduino correta (Arduino Uno R4 WiFi) e a porta COM.
- Abra o Gerenciador de Bibliotecas clicando no ícone Library Manager na barra de navegação à esquerda da Arduino IDE.
- Pesquise por Web Server for Arduino Uno R4 WiFi e localize a biblioteca Web Server criada pela DIYables.
- Clique no botão Install para instalar a biblioteca Web Server.

- Na Arduino IDE, crie um novo sketch e dê um nome a ele, por exemplo, ArduinoGetStarted.com.ino
- Copie o código abaixo e abra-o com a Arduino IDE
- Modifique as informações de WiFi (SSID e senha) no código para corresponder às credenciais da sua própria rede.
- Crie o arquivo index.h na Arduino IDE da seguinte forma:
- Clique no botão logo abaixo do ícone do serial monitor e escolha New Tab, ou use as teclas Ctrl+Shift+N.
- Dê ao arquivo o nome index.h e clique no botão OK
- Copie o código abaixo e cole-o no index.h.
- Agora você tem o código em dois arquivos: ArduinoGetStarted.com.ino e index.h
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino.
- Abra o Serial Monitor
- Confira o resultado no Serial Monitor.
- Anote o endereço IP exibido e digite esse endereço na barra de endereços de um navegador web no seu smartphone ou PC.
- Você verá a página web como abaixo:
- Clique no botão CONNECT para conectar a página web ao Arduino via WebSocket.
- Digite algumas palavras e envie-as ao Arduino.
- Você verá a resposta do Arduino.
- Se você modificar o conteúdo HTML no index.h e não mexer em nada no arquivo ArduinoGetStarted.com.ino, quando você compilar e carregar o código no Arduino, a Arduino IDE não vai atualizar o conteúdo HTML.
- Para fazer a Arduino IDE atualizar o conteúdo HTML nesse caso, faça uma alteração no arquivo ArduinoGetStarted.com.ino (por exemplo, adicionar uma linha vazia, adicionar um comentário....)




※ Nota:
Explicação do Código Linha por Linha
O código Arduino acima contém explicações linha por linha. Leia os comentários no código!
Como o Sistema Funciona
O código do Arduino funciona configurando tanto um servidor web quanto um servidor WebSocket. Veja como funciona:
- Quando você digita o endereço IP do Arduino em um navegador web, ele solicita a página web (Interface do Usuário) ao Arduino.
- O servidor web do Arduino então envia o conteúdo da página web (HTML, CSS, JavaScript) para o seu navegador.
- Seu navegador web exibe a página web.
- Ao clicar no botão CONNECT na página web, o código JavaScript dentro da página inicia uma conexão WebSocket com o servidor WebSocket no Arduino.
- Quando a conexão WebSocket está ativa, se você digitar algo e clicar no botão SEND, o JavaScript envia seu texto ao Arduino pela conexão WebSocket em segundo plano.
- Depois de receber sua mensagem, o servidor WebSocket no Arduino envia uma resposta de volta para sua página web.
Você pode aprender outros exemplos de Arduino WebSocket abaixo: