Este guia mostra como usar o Arduino Nano ESP32 para controlar sem fio um carro robô a partir de um navegador web no seu celular ou PC, usando WiFi. O controle é feito por meio de uma interface de usuário web gráfica usando algo chamado WebSocket, permitindo um controle fluido e dinâmico do carro.
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Carro RC 2WD e o WebSocket
Agora, por que escolher o WebSocket? Veja só:
Sem o WebSocket, mudar a direção do carro exigiria recarregar a página toda vez. Nada ideal!
Porém, com o WebSocket, estabelecemos uma conexão especial entre a página web e o Arduino Nano ESP32. Isso permite enviar comandos para o Arduino Nano ESP32 em segundo plano, sem precisar recarregar a página. O resultado? O carro robô se move de forma contínua e em tempo real. Bem legal, né?
Resumindo, a conexão WebSocket permite o controle fluido e em tempo real do robô.
Temos tutoriais específicos sobre o Carro RC 2WD e o WebSocket. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação com o ESP32, o código do Arduino Nano ESP32... Saiba mais sobre eles nos links a seguir:
O código do Arduino Nano ESP32 cria tanto um servidor web quanto um servidor WebSocket. Veja como funciona:
Quando você digita o endereço IP do ESP32 em um navegador web, ele solicita a página web (Interface do Usuário) ao Arduino Nano ESP32.
O servidor web do ESP32 responde enviando o conteúdo da página web (HTML, CSS, JavaScript).
Seu navegador web então exibe a página web.
O código JavaScript dentro da página web estabelece uma conexão WebSocket com o servidor WebSocket no Arduino Nano ESP32.
Depois que essa conexão WebSocket é estabelecida, se você pressionar/soltar os botões na página web, o código JavaScript envia discretamente os comandos para o Arduino Nano ESP32 por meio dessa conexão WebSocket, em segundo plano.
O servidor WebSocket no ESP32, ao receber os comandos, controla o carro robô de acordo.
A tabela abaixo mostra a lista de comandos que a página web envia para o Arduino Nano ESP32 com base nas ações do usuário:
Ação do Usuário
Botão
Comando
Ação do Carro
PRESSIONAR
CIMA
1
MOVER PARA FRENTE
PRESSIONAR
BAIXO
2
MOVER PARA TRÁS
PRESSIONAR
ESQUERDA
4
VIRAR À ESQUERDA
PRESSIONAR
DIREITA
8
VIRAR À DIREITA
PRESSIONAR
PARAR
0
PARAR
SOLTAR
CIMA
0
PARAR
SOLTAR
BAIXO
0
PARAR
SOLTAR
ESQUERDA
0
PARAR
SOLTAR
DIREITA
0
PARAR
SOLTAR
PARAR
0
PARAR
Diagrama de Ligação entre o Carro RC 2WD e o Arduino Nano ESP32
This image is created using Fritzing. Click to enlarge image
O módulo L9110S (que serve como driver de motor) alimenta os motores diretamente pelos pinos VCC e GND e não tem regulador de 5V embutido. Isso permite alimentar tudo a partir de uma única fonte – quatro pilhas de 1,5V para totalizar 6V. Veja como fazer:
Conecte a bateria de 6V aos pinos VCC e GND do módulo L9110S para alimentar os motores.
Conecte a mesma bateria de 6V aos pinos Vin e GND do Arduino Nano ESP32 para alimentar a placa Arduino Nano ESP32.
Certifique-se de que o módulo L9110S e o Arduino Nano ESP32 compartilhem um GND comum.
Diferentemente do L298N, o L9110S não tem jumpers de habilitação ENA/ENB nem bornes de parafuso de 12V, então a ligação é mais simples.
Como o carro RC 2WD tem uma chave liga/desliga, você pode opcionalmente conectar a bateria por meio da chave para poder ligar/desligar a energia do carro. Se você quiser simplificar, é só ignorar a chave.
Código Arduino Nano ESP32
O conteúdo da página web (HTML, CSS, JavaScript) é armazenado separadamente em um arquivo index.h. Portanto, teremos dois arquivos de código na Arduino IDE:
Um arquivo .ino que é o código do Arduino Nano ESP32, que cria um servidor web e um servidor WebSocket, e controla o carro
Um arquivo .h, que contém o conteúdo da página web.
Passos Rápidos
Para começar com o Arduino Nano ESP32, siga estes passos:
Agora você tem o código em dois arquivos: newbiely.com.ino e index.h
Clique no botão Upload na Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
Abra o Serial Monitor
Veja o resultado no Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Connecting to WiFi...
Connected to WiFi
Arduino Nano ESP32 Web Server's IP address IP address: 192.168.0.2
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
Anote o endereço IP exibido e digite esse endereço na barra de endereços de um navegador web no seu celular ou PC.
Você verá a página web como abaixo:
O código JavaScript da página web cria automaticamente a conexão WebSocket com o Arduino Nano ESP32.
Agora você pode controlar o carro para virar à esquerda/direita e andar para frente/para trás pela interface web.
Para economizar a memória do ESP32, as imagens dos botões de controle NÃO são armazenadas no Arduino Nano ESP32. Em vez disso, elas ficam armazenadas na internet, então seu celular ou PC precisa ter conexão com a internet para carregar as imagens da página web de controle.
※ Nota:
Se você modificar o conteúdo HTML no index.h e não mexer em nada no arquivo newbiely.com.ino, quando você compilar e fizer o upload do código para o ESP32, a Arduino IDE não atualizará o conteúdo HTML.
Para fazer a Arduino IDE atualizar o conteúdo HTML nesse caso, faça uma alteração no arquivo newbiely.com.ino (por exemplo, adicionar uma linha vazia, adicionar um comentário....)
Explicação do Código Linha por Linha
O código do Arduino Nano ESP32 acima contém uma explicação linha por linha. Por favor, leia os comentários no código!
Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!