Servidor Web ESP32 usando Arduino IDE

Servidor Web Esp32 Usando Arduino Ide



ESP32 é uma placa microcontroladora que pode se conectar a vários dispositivos usando seus pinos GPIO. Possui um processador dual-core com interface Wi-Fi e Bluetooth integrada. Ambos os recursos tornam o ESP32 uma placa adequada para projetar projetos de IoT. Uma das principais características da placa ESP32 é a capacidade de conexão com o ponto de acesso existente. Não só isso, mas também pode criar seu ponto de acesso, para que outros dispositivos possam se conectar a ele.

Neste artigo do ESP32, exploraremos como podemos conectar uma placa ESP32 a um ponto de acesso e projetar seu servidor web. Usando esse servidor web, controlaremos LEDs e aparelhos AC com a ajuda de um módulo de relé.

Conteúdo:

1. Servidor Web ESP32

O servidor Web possui um programa especial que pode processar e enviar páginas da Web para clientes da Web. Para abrir um site, usamos um navegador da web. Este navegador da web também é chamado de cliente da web. O site que você deseja ver está armazenado em outro computador chamado servidor web.







Para se comunicarem, o servidor web e o cliente web usam uma linguagem comum chamada HTTP. É assim que funciona: o cliente web solicita uma página web ao servidor web usando uma solicitação HTTP. O servidor web envia de volta a página web solicitada. Se a página da web não estiver presente, você verá uma mensagem de erro.



No ESP32, podemos projetar um servidor Web, pois o ESP32 pode não apenas se conectar a outros dispositivos em uma rede, mas também criar seu servidor Web e responder às solicitações recebidas. Tudo isso é possível porque o ESP32 pode operar em três modos diferentes:



  • Estação
  • Ponto de acesso
  • Estação e ponto de acesso

Você pode verificar este artigo para obter uma visão geral dos três modos do ESP32:





Como definir um ponto de acesso (AP) ESP32 usando Arduino IDE

2. Como criar um servidor Web ESP32 usando Arduino IDE

Para criar um servidor web ESP32 usando Arduino IDE, você pode conectar o ESP32 a um ponto de acesso e gerar um endereço IP para o servidor web. Você pode aplicar um pouco de HTML e CSS para projetar a interface do servidor.



Depois de entender o funcionamento do ponto de acesso ESP32, você pode projetar facilmente um servidor web ESP32 usando o código IDE do Arduino. O código do servidor web ESP32 usa a biblioteca ESP32 Wi-Fi. Isso facilita nosso trabalho, pois esta biblioteca contém todas as funções importantes necessárias para conectar o ESP32 a um ponto de acesso.

Vamos projetar um servidor Web ESP32 usando o código Arduino IDE.

3. Código do servidor Web ESP32

O código do servidor web ESP32 envolve a conexão do ESP32 com o ponto de acesso e a obtenção do endereço IP do servidor. Depois de obter o endereço IP, você deve se conectar à mesma rede para acessar o servidor web ESP32. A partir daí você pode controlar LEDs e outros dispositivos.

Abra o Arduino IDE e conecte sua placa ESP32 a ele:

Instalando a placa ESP32 no Arduino IDE

Assim que a placa ESP32 estiver conectada, carregue o seguinte código em sua placa.

/**************

Linuxhint. com
Servidor Web ESP32 para controlar LEDs

**************/
// Importe a biblioteca para Conexão wifi
#include
// Digite seu nome e senha do Wi-Fi
const caractere * ssid = 'ESP32' ;
const caractere * senha = '123456789' ;
// Escolha o número da porta para o servidor web
Servidor WiFiServer ( 80 ) ;
// Crie uma variável para armazenar a solicitação da web
Cabeçalho de string;
// Crie variáveis ​​para armazenar o status das saídas
String saída26Estado = 'DESLIGADO' ;
String saída27Estado = 'DESLIGADO' ;
// Atribuir os pinos de saída às variáveis
const int saída26 = 26 ;
const int saída27 = 27 ;
currentTime longo não assinado = milis ( ) ;
sem sinal longo previousTime = 0 ;
// Escolha o tempo limite para a solicitação da web em milissegundos
const longo tempo limiteTime = 2000 ;
configuração nula ( ) {
Serial.begin ( 115200 ) ;
// Defina os pinos de saída como saídas
pinMode ( saída26, SAÍDA ) ;
pinMode ( saída27, SAÍDA ) ;
// Desligue as saídas
escrita digital ( saída26, BAIXO ) ;
escrita digital ( saída27, BAIXO ) ;
// Conecte-se à rede Wi-Fi
Serial.print ( 'Conectando à ' ) ;
Serial.println ( SSID ) ;
WiFi.begin ( ssid, senha ) ;
// Espere até a conexão é estabelecida
enquanto ( Status do WiFi ( ) ! = WL_CONNECTED ) {
atraso ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi conectado.' ) ;
Serial.println ( 'Endereço de IP: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
servidor.begin ( ) ;
}

ciclo vazio ( ) {
Cliente WiFiClient = servidor.disponível ( ) ; // Verificar para novos clientes
se ( cliente ) { // Se um cliente estiver conectado,
tempoatual = milis ( ) ;
tempoanterior = tempoatual;
Serial.println ( 'Novo cliente.' ) ; // Notifique a porta serial
StringLinhaAtual = '' ; // Crie uma String para armazenar os dados do cliente
enquanto ( cliente.conectado ( ) && TempoAtual - TempoAnterior = 0 ) {
Serial.println ( 'GPIO 26 ativado' ) ;
saída26Estado = 'SOBRE' ;
escrita digital ( saída26, ALTO ) ;
} outro se ( cabeçalho.indexOf ( 'OBTER /26/desligar' ) > = 0 ) {
Serial.println ( 'GPIO 26 desativado' ) ;
saída26Estado = 'DESLIGADO' ;
escrita digital ( saída26, BAIXO ) ;
} outro se ( cabeçalho.indexOf ( 'OBTER /27/ativado' ) > = 0 ) {
Serial.println ( 'GPIO 27 ativado' ) ;
saída27Estado = 'SOBRE' ;
escrita digital ( saída27, ALTO ) ;
} outro se ( cabeçalho.indexOf ( 'OBTER /27/desligar' ) > = 0 ) {
Serial.println ( 'GPIO 27 desligado' ) ;
saída27Estado = 'DESLIGADO' ;
escrita digital ( saída27, BAIXO ) ;
}

cliente.println ( '' ) ;
cliente.println ( '' ) ;
cliente.println ( '' ) ;
// CSS para estilizar os botões
cliente.println ( '