Módulo WiFi ESP8266: Guia de configuração e projetos

Índice

Programming ESP8266 WiFi Module with Arduino IDE

O ESP8266 é um módulo Wi-Fi adequado para projetos de IoT e automação residencial. Ele permite controlar entradas e saídas como você faria com uma placa da série Arduino, mas com Wi-Fi. Portanto, é adequado para aplicações de automação residencial/IoT.

Comparando o ESP8266 com outras soluções Wi-Fi no mercado, ele é uma excelente escolha para a maioria dos projetos de "Internet das Coisas". Neste artigo, apresentaremos os conceitos básicos da placa ESP8266, sua pinagem e exemplos de programação.

Introdução ao ESP8266

O ESP8266 é um microcontrolador potente e versátil com Wi-Fi que ganhou popularidade no mundo da eletrônica e da IoT (Internet das Coisas). Desenvolvido pela Espressif Systems, o ESP8266 oferece uma solução econômica para conectar dispositivos à Internet e permitir que eles se comuniquem entre si. Ele possui um módulo Wi-Fi integrado, um processador potente e pinos GPIO para conectar componentes externos. O ESP8266 pode ser programado usando várias linguagens de programação, tornando-o acessível tanto para iniciantes quanto para desenvolvedores experientes. Seu baixo consumo de energia e tamanho compacto o tornam ideal para uma ampla gama de aplicações, incluindo automação residencial, redes de sensores sem fio e dispositivos inteligentes. Por exemplo, o ESP8266 pode ser usado para criar um termostato inteligente que permite aos usuários controlar a temperatura de suas casas remotamente.

Pinagem do ESP8266

ESP8266 Pinout
ESP8266 Pinout

No diagrama dos pinos, alguns pinos têm outras utilizações além do GPIO. Por exemplo, o pino D1 não é apenas o GPIO5, mas também uma interface SCL, que pode ser ligada ao pino SCL correspondente do ecrã LCD.

A tabela a seguir mostra a correspondência entre as etiquetas na identificação da placa e os números GPIO, quais pinos são mais adequados para projetos e quais pinos requerem cuidado. Os pinos destacados em verde estão prontos para uso. Os destacados em amarelo podem ser usados, mas requerem atenção, pois podem apresentar um comportamento inesperado, principalmente na inicialização. Os pinos destacados em vermelho não são recomendados para uso como entradas ou saídas.

LabelGPIOInputOutputNotes
D0GPIO16No InterruptNo PWM or I2C supportHIGH at boot used to wake up from deep sleep
D1GPIO5OKOKCommonly used as SCL (I2C)
D2GPIO4OKOKCommonly used as SDA (I2C)
D3GPIO0Pull-upOKConnected to FLASH button, boot fails if pulled LOW
D4GPIO2Pull-upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
D5GPIO14OKOKSPI (SCLK)
D6GPIO12OKOKSPI (MISO)
D7GPIO13OKOKSPI (MOSI)
D8GPIO15Pull-downOKSPI (CS) Boot fails if pulled HIGH
RXGPIO3OKRXHIGH at boot
TXGPIO1TXOKHIGH at boot debug output at boot, boot fails if pulled LOW
A0ADC0AnalogXAnalog pin

Como programar o ESP8266 com o Arduino IDE?

Existem várias maneiras de programar o ESP8266:

  1. Use o Arduino IDE para desenvolver, siga o estilo de desenvolvimento do Arduino, fácil de usar;
  2. Use o desenvolvimento SDK oficial do ESP8266;
  3. Use o MicroPython para desenvolver, siga o estilo de programação do Python (esse método precisa gravar um firmware especial para a placa primeiro);

Aqui escolhemos a primeira opção, porque a programação do Arduino é simples e fácil de operar.

Passo 1: Instale o Arduino IDE

Faça o download do IDE no site oficial do Arduino: https://www.arduino.cc/en/software. A versão que estou usando agora é o Arduino IDE 1.8.3. (Observe que a versão mais recente do Arduino IDE 2.1.1 não permite instalar o pacote de recursos ESP8266 online.)

Install Arduino IDE 1.8.3
Install Arduino IDE 1.8.3

Passo 2: Instalar o pacote ESP8266

Como o Arduino IDE é usado por padrão para a placa de desenvolvimento Arduino, existem apenas recursos de desenvolvimento relevantes para a placa de desenvolvimento Arduino por padrão. Para usar o ESP8266 no Arduino IDE, precisamos instalar manualmente o pacote de desenvolvimento ESP8266. Existem dois métodos de instalação: instalação online e instalação de pacote offline. Aqui, escolhemos o primeiro.

Primeiro, localize “Arquivo -> Preferências” no menu do Arduino IDE: 

Open Preferences in Arduino IDE
Open Preferences in Arduino IDE

Em seguida, insira o link abaixo em "URLs adicionais do Gerenciador de Quadros":

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Setting Additional boards manager URLs in Preferences
Setting Additional boards manager URLs in Preferences

Em seguida, clique para abrir: Ferramentas -> Quadro -> Gerenciador do quadro.

Open Boards Manager in Arduino
Open Boards Manager in Arduino

No campo, digite e pesquise "esp8266". Você verá um pacote esp8266. Clique em "Instalar" para iniciar a instalação online.

Search and Install the ESP8266 Board
Search and Install the ESP8266 Board
Installing ESP8266 packages
Installing ESP8266 packages

Após a conclusão da instalação, você encontrará todos os recursos sobre a placa esp8266 no menu "Ferramentas->Placa".

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 Boards Resource (3.1.2 Version)

Passo 3: Programação do ESP8266

Aqui, escrevemos um programa simples de teste de conexão de rede para a placa ESP8266. O código do programa é o seguinte:

				
					void setup() {
  Serial.begin(9600);
  Serial.println("esp8266 test");
  initWiFi();

}

void loop() {
  Serial.println("hello esp8266");
  delay(1000);

}

#include <ESP8266WiFi.h>

constchar ssid[] = "xxxxx";      //WiFi Name
constchar pass[] = "xxxxx";       //WiFi Password

WiFiClient client;

//Initialize WIFI
void initWiFi()
{
   Serial.print("Connecting WiFi...");
   WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
   WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
   while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
   {
     delay(500);
     Serial. print(".");
   }

   Serial.println("");
   Serial.println("WiFi connected");
   Serial.println("IP address: ");
   Serial.println(WiFi.localIP()); //print your own IP address
}
				
			

Notas:
A função setup é usada para inicialização da porta serial. Por exemplo, "Serial.begin(9600);" significa que a taxa de transmissão inicial da porta serial é 9600.

A função loop é semelhante ao while(1){} na função principal no desenvolvimento de um microcomputador de chip único, onde podemos escrever códigos de lógica de programa.

Para usar a função WIFI, você precisa incluir o arquivo de cabeçalho "ESP8266WiFi.h".

O processo de inicialização do WIFI inclui 3 etapas:

  1. Configurar o WIFI para o modo Station, ou seja, nosso ESP8266 é usado como um dispositivo WIFI;
  2. Passar o ssid e a senha do hotspot WIFI, para que o ESP8266 possa se conectar ao hotspot;
  3. Leia o status da conexão WIFI e aguarde até que a conexão seja bem-sucedida.

Selecione o modelo e o número da porta serial da sua placa de desenvolvimento ESP8266:

Choose Board NodeMCU 1.0 (ESP-12E Module)
Choose Board NodeMCU 1.0 (ESP-12E Module)

Agora, podemos compilar e gravar o código na placa ESP8266WiFi.

Compile and Upload the code to ESP8266 WiFi Module
Compile and Upload the code to ESP8266 WiFi Module

Inscreva-se

Inscreva-se na nossa lista de assinantes para receber atualizações mensais do blog, notícias sobre tecnologia e estudos de caso. Nunca enviaremos spam e você pode cancelar a assinatura a qualquer momento.

Sobre o autor

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Precisa de ajuda?

Rolar para cima

Instant Quote