módulo wireless ESP8266 ESP-01 permite que você conecte o seu Arduino às redes wi-fi (wireless) padrão 802.11 b/g/n, que são as redes mais comuns utilizadas para acessar a internet. Funciona tanto como um AP (Access Point, ou ponto de acesso), como no modo STA (Station), enviando e recebendo dados.

conectando arduino na rede wireless com modulo ESP8266 ESP-01

Esse módulo é muito parecido fisicamente com alguns módulos NRF24L01, mas, diferente desses, não temos o cristal de 16 Mhz na placa, mas temos leds indicadores de funcionamento e comunicação.

Características e pinagem do módulo ESP8266 ESP-01

No datasheet do chip ESP8266 você encontra todas as informações sobre o CI, e abaixo destaco as mais importantes:

  • Suporte à redes  802.11 B/G/N
  • Alcance aproximado: 91 metros, dependendo do ambiente
  • Tensão de operação : 3.3 VDC
  • Comunicação serial (pinos TX, RX)
  • Possibilidade de upgrade do firmware
  • Modos de operação : Cliente, Access Point, Cliente+Access Point
  • Modos de segurança wireless : OPEN/WEP/WPA_PSK/WPA2_PSK/WPA_WPA2_PSK.
  • Suporta comunicação TCP e UDP
  • Operando nos modos TCP/UDP, permite até 5 conexões simultâneas

Quem já trabalhou com o módulo Bluetooth HC-05 ou HC-06 não terá dificuldade em utilizar o ESP8266, já que ele também se comunica via serial com o Arduino, e pode ter a sua configuração alterada por meio de comandos AT.

Abaixo, a disposição dos pinos do módulo:

ESP8266 Pinout and details

Este módulo trabalha com nível de sinal de 3.3V, assim devemos utilizar um divisor de tensão no pino RX (recepção/serial).

Conexão do ESP8266 ao Arduino Uno

Os pinos RX e TX do Arduino Uno são, respectivamente, os pinos digitais 0 e 1. Como esses pinos são utilizados também para comunicação com o computador, vamos “criar” uma serial nos pinos 2 e 3 por meio da biblioteca SoftwareSerial. Assim, podemos acompanhar os resultados da conexão do módulo ESP8266 no serial monitor. 

Utilize um resistor de 10K para ligar o pino CH_PD (Chip Enable) ao pino 3.3V da alimentação do módulo.

Circuito Arduino e módulo ESP8266 ESP-01

No circuito acima montei o divisor de tensão com resistores de 220 e 330 ohms, reduzindo a tensão no pino RX para aproximadamente 3V. Utilize a calculadora de divisor de tensão para calcular a tensão de saída de acordo com os resistores que você estiver usando.

Outra observação importante tem relação com a alimentação do módulo, de 3.3V. Nos testes eu usei o pino 3.3V do Arduino, mas o módulo em algumas situações necessita de até 300mA de corrente, bem acima dos 50mA que o Arduino pode fornecer. Assim, para evitar sobrecarga, utilize uma fonte de alimentação externa para o módulo.

Programa  e download biblioteca ESP8266

Para o funcionamento do módulo juntamente com a biblioteca SoftwareSerial, precisamos fazer uma pequena alteração na biblioteca ESP8266. Primeiramente, faça o download da ESP8266 clicando aqui. Em seguida descompacte o arquivo e coloque a pasta da biblioteca dentro da pasta LIBRARIES da IDE do Arduino.

Dentro dessa pasta, procure pelo arquivo ESP8266.h :

Biblioteca ESP8266

Abra esse arquivo utilizando o editor de textos de sua preferência e procure pela linha contendo o seguinte valor:

//#define ESP8266_USE_SOFTWARE_SERIAL

Retire as barras duplas do começo da linha para que o uso da SoftwareSerial seja habilitado. A linha ficará assim:

#define ESP8266_USE_SOFTWARE_SERIAL

Salve o arquivo ESP8266.h. Agora carregue o seguinte programa no Arduino:

// Programa : Teste modulo wireless ESP8266
// Autor : Arduino e Cia

// Carrega as bibliotecas ESP8266 e SoftwareSerial
#include "ESP8266.h"
#include "SoftwareSerial.h"
    
// Cria uma serial nas portas 2 (RX) e 3 (TX)
SoftwareSerial minhaSerial(2 , 3); 

// Define que o modulo ira utilizar a serial minhaSerial
ESP8266 wifi(minhaSerial);

// Configuracao ID e senha da rede Wireless
#define SSID        "NOME_DA_REDE"
#define PASSWORD    "SENHA_DA_REDE"


void setup()
{
    Serial.begin(9600);
}

void loop(void)
{
    Serial.print("Inicializando modulo\r\n");
    Serial.print("Versao do firmware: ");
    Serial.println(wifi.getVersion().c_str());
    // Define modo de operacao como STA (station)
    if (wifi.setOprToStation()) {
        Serial.print("Modo STA ok\r\n");
    } else {
        Serial.print("Erro ao definir modo STA !r\n");
    }
    
    // Conexao a rede especificada em SSID
    if (wifi.joinAP(SSID, PASSWORD)) {
        Serial.print("Conectado com sucesso a rede wireless\r\n");
        Serial.print("IP: ");       
        Serial.println(wifi.getLocalIP().c_str());
    } else {
        Serial.print("Erro ao conectar rede wireless !!!\r\n");
    }
    
    Serial.print("*** Fim ***\r\n");
    while(1){}
}

Esse arquivo conecta o módulo à rede wi-fi especificada em SSID (troque o NOME_DA_REDE e SENHA_DA_REDE pelas informações da sua rede wireless), e mostra no serial monitor o endereço IP que foi obtido :

ESP8266 - Serial Monitor

Na pasta de exemplos da biblioteca, você tem outros programas para utilizar o módulo como Webserver, conexões TCP/UDP, buscar informações de páginas web, etc.

4.9/5 - (10 votes)