Este tutorial irá ensiná-lo a controlar um carro Robo usando qualquer dispositivo habilitado para Wifi.
Componentes necessários:
1. Módulo Wi-Fi ESP 8266Sobre ESP8266
ESP 8266 é a última novidade na internet. É um módulo Wifi um pouco maior que uma moeda de 1 Re. Bem, não é por isso que é famoso. O que o tornou muito popular entre os entusiastas da eletrônica é seu custo inacreditavelmente baixo. Comprei por apenas US $ 5 (~ 300 Rs). Um Arduino junto com um escudo Wifi custaria 10 vezes o custo deste módulo.Figo. 1: Imagem mostrando módulos Wi-Fi ESP8266
Pode ser interligado com qualquer microcontrolador através da comunicação USART, o que implica que necessita apenas dos pinos RX e TX. Outra pena ao chapéu foi adicionada recentemente. O desenvolvedor lançou os arquivos SDK do módulo e, portanto, até mesmo o módulo pode ser reprogramado e seus pinos GPIO podem ser usados de forma independente, sem qualquer microcontrolador adicional. Mas isso está além do escopo deste tutorial. Estaríamos usando o módulo junto com o Arduino UNO.
Fazendo um adaptador Breadboard para o módulo ESP8266:
O problema com o recurso físico do módulo é que você não pode conectá-lo diretamente a uma placa de ensaio. Então decidi fazer um adaptador que será usado para conectar o módulo a uma placa de ensaio. Estas são as peças que você precisaria para fazer o adaptador:Figura 2: Imagem mostrando os componentes necessários para fazer o adaptador breadboard do modem ESP8266
Comece soldando o conector fêmea na PCB. Solde os pinos dos cantos primeiro para que o cabeçalho se encaixe corretamente na placa de circuito impresso. Em seguida, solde os 4 pinos restantes.
Fig. 3: Imagem mostrando PCB do adaptador de placa de ensaio soldada para caber no cabeçalho fêmea do modem ESP8266
Em seguida, coloque os conectores macho no lado oposto da PCB e solde-os cuidadosamente na PCB.
Figura 4: Imagem mostrando o cabeçalho macho colocado no adaptador da placa de ensaio do modem ESP8266
Após a soldagem, você pode remover a peça de plástico preta presa ao conector macho e começar a soldar cada pino macho ao pino fêmea correspondente. No final você teria algo assim:
Fig. 5: Imagem mostrando o conector macho soldado no adaptador da placa de ensaio do modem ESP8266
Depois de fazer isso, você pode encaixá-lo em uma placa de ensaio e conectar o módulo ESP 8266 a ele facilmente.
Aqui está um tutorial em vídeo detalhado mostrando o processo: (Opcional)
Figura 6: Imagem mostrando o adaptador de placa de ensaio do modem ESP8266 colocado em uma placa de ensaio
Figura 7: Imagem mostrando o módulo Wi-Fi ESP8266 colocado sobre a placa de ensaio
Comandos AT para ESP 8266:
Comando |
Descrição |
AT+GMR |
Para saber a versão do firmware |
AT+RST |
Para redefinir o módulo |
AT+CWMODE |
Para definir o modo de operação, ou seja, como ponto de acesso ou modo de estação ou ambos. |
AT+CWLAP |
Para ver a lista de APs disponíveis |
AT+CIPSERVER |
Para definir como servidor |
AT+CIPMUX |
Para escolher entre conexões simples ou múltiplas |
AT+CIPSEND |
Para definir o número do canal, comprimento dos dados e enviar dados por WiFi |
AT+CIPCLOSE |
Para fechar a conexão |
Servidor em ESP 8266:
Estaremos enviando uma interface web (uma página HTML) para qualquer dispositivo (digamos, um telefone celular habilitado para Wifi) conectado ao módulo Wifi. O código da página HTML seria fornecido pelo Arduino. E também, o Arduino decodificaria a solicitação do dispositivo e controlaria os motores de acordo. Como o módulo Wifi também pode funcionar como ponto de acesso, não precisamos de um roteador wireless extra para o projeto. Se você não tem ideia sobre páginas HTML, vá para meu projeto “Controlling Appliances over Wifi and Ethernet” e conheça o básico. Aqui está o algoritmo a ser seguido para configurar um servidor no ESP 8266:Algoritmo:
– Módulo de teste usando o comando “AT” – Defina o modo de operação usando o comando “AT+CWMODE=Configuração de hardware:
Reúna todas as peças mostradas na imagem.
Figura 8: Imagem mostrando os componentes necessários para fazer o robô
Fixe os motores ao chassi e depois as rodas ao eixo.
Figura 9: Imagem mostrando a estrutura metálica do robô conectada ao motor DC
Use alguns parafusos e porcas para fixar a roda giratória
Figura 10: Imagem mostrando rodas conectadas aos motores DC no Robot
Figura 11: Imagem da roda giratória fixada na parte frontal do Robot Car
Figura 12:
Explicação do código:
– Definir os pinos 8, 9, 10 e 11 como pinos de saída e comunicação serial com taxa de transmissão de 9600 bps. – Envie o comando “AT” para o módulo. – Defina o modo de operação como estação e ponto de acesso usando o comando “AT+CWMODE=3” – Defina o modo de conexão para múltiplas conexões enviando “AT+CIPMUX=1” – Coloque o módulo em modo Servidor e utilize a porta padrão enviando “AT+CIPSERVER=1, 80” – Entre no loop infinito e verifique se há solicitações recebidas por Wifi – Se uma solicitação foi feita, leia a solicitação e armazene o número do canal de onde a solicitação foi originada – Envie o código da página HTML para o número do canal armazenado usando os comandos “AT+CIPSEND=Instruções de configuração
-Conecte tudo de acordo com o diagrama de circuito e ligue todo o sistema.
Fig. 13: Protótipo de carro robótico simples
– Aguarde alguns segundos para que o Wifi e o Arduino inicializem. Após cerca de 30 segundos, ative o Wifi no seu dispositivo (celular, tablet ou laptop) e você verá algumas redes disponíveis.
– Você pode se conectar à sua rede doméstica (que é “Robôs recarregados” no meu caso e é a isso que vou me conectar) ou ao próprio ponto de acesso (que é “ESP_9F0F14” No meu caso. O SSID do módulo nada mais é do que seu nome seguido dos últimos 6 caracteres de seu endereço MAC)
Figura 14: Protótipo de circuito de controle baseado em Arduino montado em carro robótico
– Em seguida, abra seu navegador e digite o endereço IP
1. Do módulo na rede doméstica caso você esteja conectado à rede doméstica (como eu e no meu caso é 192.168.0.101 ou 192.168.0.102) Ou 2. 192.168.1.4 caso você se conecte ao ponto de acesso denominado “ESP_<últimos 6 caracteres do endereço MAC>” Daqui a pouco você deverá ver uma página como esta em seu navegador: Agora clique nos links e você verá o motor começar a se mover. Caso estejam se movendo na direção errada, verifique as conexões e troque-as se necessário.Figura 15: Captura de tela de conexões Wi-Fi no telefone Android mostrando o ponto de acesso do módulo ESP
– Você pode se conectar à sua rede doméstica (que é “Robots Reloaded” no meu caso e é a ela que vou me conectar) ou ao próprio Ponto de Acesso (que é “ESP_9F0F14” no meu caso. O SSID do módulo nada mais é do que seu nome seguido pelos últimos 6 caracteres de seu endereço MAC)
Código fonte do projeto
#define esp Serial
"); esp.print("
FORWARD
LEFT STOP "); esp.print("RIGHTREVERSE
Created by GANESH SELVARAJ for EngineersGarage.com
"); delay(5000); esp.print(F("AT+CIPCLOSE=")); esp.println(ch_id);} void forward { digitalWrite(in1,HIGH); digitalWrite(in2,LOW); digitalWrite(in3,HIGH); digitalWrite(in4,LOW);}void reverse { digitalWrite(in1,LOW); digitalWrite(in2,HIGH); digitalWrite(in3,LOW); digitalWrite(in4,HIGH);}void right { digitalWrite(in1,HIGH); digitalWrite(in2,LOW); digitalWrite(in3,LOW); digitalWrite(in4,LOW);}void left { digitalWrite(in1,LOW); digitalWrite(in2,LOW); digitalWrite(in3,HIGH); digitalWrite(in4,LOW);}void stop_bot { digitalWrite(in1,LOW); digitalWrite(in2,LOW); digitalWrite(in3,LOW); digitalWrite(in4,LOW);}
Diagramas de circuito
Diagrama de circuito-Arduino-ESP8266-Módulo-ased-Wi-Fi-Controlled-Robotic-Car |