Este tutorial ensina você a usar o ESP8266 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 web gráfica que usa algo chamado WebSocket, permitindo um controle suave 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
Mas por que usar WebSocket? Veja o motivo:
Sem WebSocket, mudar a direção do carro exigiria recarregar a página a cada vez. Nada ideal!
Porém, com o WebSocket, estabelecemos uma conexão especial entre a página web e o ESP8266. Isso permite enviar comandos ao ESP8266 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ão é?
Resumindo, a conexão WebSocket permite o controle suave 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 ao ESP8266, o código do ESP8266... Saiba mais nos links a seguir:
O código do ESP8266 cria um servidor web e um servidor WebSocket. Veja como funciona:
Quando você digita o endereço IP do ESP8266 em um navegador web, ele solicita a página web (Interface do Usuário) ao ESP8266.
O servidor web do ESP8266 responde enviando o conteúdo da página web (HTML, CSS, JavaScript).
Em seguida, seu navegador web exibe a página web.
O código JavaScript dentro da página web estabelece uma conexão WebSocket com o servidor WebSocket do ESP8266.
Depois que essa conexão WebSocket é estabelecida, se você pressionar/soltar os botões na página web, o código JavaScript envia os comandos ao ESP8266 discretamente, em segundo plano, por meio dessa conexão WebSocket.
O servidor WebSocket do ESP8266, ao receber os comandos, controla o carro robô de acordo com eles.
A tabela abaixo mostra a lista de comandos que a página web envia ao ESP8266 com base nas ações do usuário:
Ação do Usuário
Botão
Comando
Ação do Carro
PRESSIONAR
UP
1
ANDAR PARA FRENTE
PRESSIONAR
DOWN
2
ANDAR PARA TRÁS
PRESSIONAR
LEFT
4
VIRAR À ESQUERDA
PRESSIONAR
RIGHT
8
VIRAR À DIREITA
PRESSIONAR
STOP
0
PARAR
SOLTAR
UP
0
PARAR
SOLTAR
DOWN
0
PARAR
SOLTAR
LEFT
0
PARAR
SOLTAR
RIGHT
0
PARAR
SOLTAR
STOP
0
PARAR
Diagrama de Ligação entre o Carro RC 2WD e o ESP8266
This image is created using Fritzing. Click to enlarge image
O módulo L9110S alimenta os motores diretamente a partir dos pinos VCC e GND e não tem regulador de 5V embutido. Isso significa que você pode alimentar tudo com uma única fonte de energia — quatro pilhas AA de 1,5V (totalizando 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 ESP8266 para alimentar a placa ESP8266.
Certifique-se de que o módulo L9110S e o ESP8266 compartilhem um GND comum.
Ao contrário do L298N, o L9110S não tem jumpers de habilitação ENA/ENB nem borne 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 quiser simplificar, é só ignorar a chave.
Código ESP8266
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 no Arduino IDE:
Um arquivo .ino com o código do ESP8266, 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 ESP8266 no Arduino IDE, siga estes passos:
Agora você tem o código em dois arquivos: newbiely.com.ino e index.h
Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP8266
Abra o Serial Monitor
Veja o resultado no Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Connecting to WiFi...
Connected to WiFi
ESP8266 Web Server's IP address IP address: 192.168.0.5
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) 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 ESP8266.
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 ESP8266, as imagens dos botões de controle NÃO são armazenadas no ESP8266. 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 de controle web.
※ 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 ESP8266, o Arduino IDE não atualizará o conteúdo HTML.
Para fazer o 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 ESP8266 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!