Neste tutorial iremos mostrar como fazer uma conexão básica de um Arduino Uno à internet pela rede Wireless através do Módulo WiFi ESP8266 - ESP-01 de forma simples, objetiva e de fácil entendimento. Para a execução deste tutorial recomenda-se que tenha os seguintes componentes em mãos:
- Arduino Uno R3 + Cabo USB;
- Módulo WiFi ESP8266 - ESP-01;
- Conversor AC/DC - 90~240VAC - 12,0VDC / 1A - JP4;
- Protoboard 830;
- Fonte 12V - 5,0/3,3V para Protoboard;
- Kit Jumper Macho Fêmea - 40pçs.
Você pode comprar todos os produtos com na nossa loja bastando apenas clicar nos links acima e você encontrará os produtos com o menor preço do mercado nacional ou você pode visitar todos os nossos produtos no link www.curtocircuito.com.br.
Circuito Elétrico
Para melhor conhecimento, é necessário conhecer a pinagem do ESP01. Na imagem abaixo, você poderá ver melhor como funciona seus pino.
Os pinos RST, CH_PD, GP100 e GP102 do ESP necessitam de uma alimentação 3,3V, com uma corrente elétrica de aproximadamente 300mA. Placas Arduino fornecem no máximo 50mA, sendo necessário uma fonte de alimentação externa. Existem diversos meios para se construir tal alimentação, porém uma das formas mais simples será utilizar um conversor AC/DC 9V. Observe que a fonte possui polaridade, por tanto verifique os polos atentamente antes de conectá-los ao Protoboard. O plug amarelo indica a tensão de saída da fonte, que pode ser ajustada entre 5V e 3,3V. Para este projeto será necessário ajustar a fonte em 3,3V, por tanto, conecte o plug amarelo abaixo do valor desejado.
Lembre-se que o método de alimentação do circuito será algo opcional, desde que o usuário consiga fornecer a corrente elétrica necessária a uma tensão de 3,3V.
Para fazer a conexão com uma placa Arduino, você deve montar o circuito conforma a imagem abaixo.
Encaixe um jumper entre uma das fileiras negativas do Protoboard e um GND do Arduino, conecte os fios RST, CH_PD, GP100 e GP102 a fileira positiva do Protoboard (lembre-se que tal fileira deve possuir uma tensão de 3,3V). Os pinos RX e TX serão simulados na programação através da função SoftwareSerial, então conecte tais pinos nas portas 2 e 3 do Arduino (ou altere tais valores na programação) e por fim, para alimentar o ESP, conecte o pino positivo a entrada 3,3V, e o negativo ao GND do Arduino. Em muitos exemplos, alguns usuários optam por aplicar resistores no pino RX como medida de segurança, pois os pinos digitais do Arduino fornecem uma tensão de aproximadamente 5V, caso queira aplicar tal proteção, adicione resistores de 1K e 2K ohm como mostra a imagem a seguir;
Para fazer o teste do circuito, copie o seguinte código na IDE do Arduino.
/* Projeto Curto Circuito – Módulo ESP01 - ESP8266 Modo AT */
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2,3); /* pino 2 TX , pino 3 RX */
void setup(){
Serial.begin(115200); /* Opções para ajuste 9600, 19200, 57600 e */
esp8266.begin(115200); /* 115200 dBs */
}
void loop(){
if(esp8266.available()) /* Confere se a comunicação está acessível */
{
while(esp8266.available()) { /* Enquanto estiver acessível */
char c = esp8266.read(); /* Le o caractere. */
Serial.write(c); /* Escreve no monitor serial */
}
}
if(Serial.available()){
delay(1000);
String command="";
while(Serial.available()) { /* Le o comando */
command+=(char)Serial.read();
}
esp8266.println(command); /* Envia o comando para o ESP */
}
}
Observação: O delay de 1000 milissegundos será necessário para que o Arduino consiga ler todos os caracteres escritos, pois se não houver esse pequeno intervalo a informação poderá ser perdida no meio do processo por causa da velocidade de leitura. Por exemplo: Ao enviar o comando AT+RST, se não houver um delay, haverá o risco de a placa ler somente o caractere A.
Para configurar a placa, utilize os seguintes comandos:
Comando | Função |
AT | Comando básico para teste de conexão |
AT+RST | Reset do módulo. É usado sempre para aplicar as alterações realizadas. |
AT+GMR | Leitura da versão do firmware |
AT+CWMODE | Modo de operação do módulo. 1 = STA, 2 = Access Point e 3 = STA e Access Point |
AT+CWJAP | Comando para conectar ao Access Point |
AT+CIFSR | Retorna o IP do módulo |
AT+CWLAP | Lista todos os Access Points acessíveis |
AT+CWQAP | Desconecta do Access Point |
Para conectar ao Wi-Fi utilize o comando da seguinte forma: AT+CWJAP=”nome_da_rede”,”senha” (não remova as aspas). Substitua as mensagens entre aspas pelo nome da rede e a senha ao qual irá conectar o ESP. Para desconectar do roteador utilize o comando AT+CWQAP.
Com isso você ja é capaz de conecetar o seu Arduino à internet através do módulo ESP01 de forma fácil, rápdia e segura. Nos próximos tutoriais, iremos fazer projetos que haja a necessidade de transmissão de dados via Internet com um Arduino e o ESP8266 de uma forma simples e rápida. Até a próxima!
Neste caso, não é necessário programar o ESP01, pois o seu firmware é desenvolvido na fábrica para comandos AT e é através das portas TX e RX que o ESP01 se comunica com o Arduino UNO.
Eu vou tentar deixar mais claro para você.
Arduino ESP
GND -> GND
3.3V -> 3.3V
~3 -> TX
2 -> RX
3.3V -> CH_PD
3.3V -> RST
3.3V -> GPIO2
3.3V -> GPIO0
"Em muitos exemplos, alguns usuários optam por aplicar resistores no pino RX como medida de segurança, pois os pinos digitais do Arduino fornecem uma tensão de aproximadamente 5V, caso queira aplicar tal proteção, adicione resistores de 1K e 2K ohm"