sexta-feira, 28 de junho de 2019

Como configurar o ESP8266 nos modos: Station (STA) e Access Point (AP)!!!

Como configurar o ESP8266 nos modos: Station (STA) e Access Point (AP)!!!

Olá a Todos!!!

Hoje nós iremos abordar um assunto de suma importância para quem  é apaixonado por IoT, automação, quem programa, monta projetos,  trabalha ou por Hobby, e ainda não entendeu em detalhes ou deseja entender melhor as funções para o funcionamento nos modos STA e o AP nos módulos ESP8266. 
Os ESPs funcionam em dois modos de configurações destintos: 
STA "Station" - "Estação".
AP "Access Point" - "Ponto de Acesso".

No modo STA - permite que o ESP8266 se conecte a uma rede Wi-Fi (uma criada pelo seu roteador wireless). Assim, uma característica importante sobre o ESP8266 é que ele pode funcionar como um Client "cliente" ou como AP "ponto de acesso" ou até mesmo em ambas as configurações programadas.
No modo AP - ele permite que você crie sua própria rede e tenha outros dispositivos conectados a ele como por exemplo: Um ESP, um Smartphone, um Notebook, entre outros dispositivos que se conecte a uma rede Wireless.

Para a realização deste procedimento, é necessário você já ter as bibliotecas do ESP instalada na IDE Arduíno.

Se você ainda não instalou, veja o nosso Post:

Modo Station (STA)

O modo STA é usado para conectar o módulo ESP a uma rede Wi-Fi estabelecida por um ponto de acesso.
A classe Station possui vários recursos para facilitar o gerenciamento da conexão Wi-Fi. Caso a conexão seja perdida, o ESP8266 será reconectado automaticamente ao último ponto de acesso utilizado, uma vez que esteja novamente disponível. O mesmo acontece na reinicialização do módulo. Isso é possível, pois o ESP salva as credenciais do último ponto do acesso usado na memória flash (não volátil). Usando os dados salvos 
A mudança do módulo para o modo Station é feita com a função begin. Os parâmetros típicos passados ​​para iniciar incluem SSID e senha, de modo que o módulo possa se conectar a um AP específico.

WiFi.begin (ssid, password)

Por padrão, o ESP tentará se reconectar à rede Wi-Fi sempre que estiver desconectado. Não há necessidade de lidar com isso por código separado. Uma boa maneira de simular a desconexão seria redefinir o ponto de acesso. O ESP relatará a desconexão e tentará se reconectar automaticamente.

Função begin()

Existem várias versões (chamadas de função overload em C ++) da função begin. Uma delas foi apresentada logo acima: WiFi.begin (ssid, password). A função Overload fornecem flexibilidade em número ou tipo de parâmetros aceitos. A função Overload mais simples e curriqueira do begin são:

WiFi.begin ()

A chamada dessa função instruirá o módulo a mudar para o modo de STA e conectar-se ao último ponto de acesso usado com base memória flash.
na configuração salva na
Abaixo está a sintaxe de outra  função Overload que começar com todos os parâmetros possíveis:

WiFi.begin(ssid, password, channel, bssid, connect)

Significado de cada parâmetros existente dentro da Função:

ssid - uma cadeia de caracteres que contém o SSID do Access Point ao qual gostaríamos de nos conectar, podendo conter no máximo 32 caracteres.

password - esse parâmetro é onde contém a senha do AP, uma cadeia de caracteres que deve ter no mínimo 8 caracteres e no máximo 64 caracteres.

channel - utilizamos esse parâmetro quando queremos determinar um canal de trabalho específico, caso contrário este parâmetro pode ser omitido.

bssid - retornar o endereço MAC do AP para o qual o módulo ESP foi direcionado para se conectar, este parâmetro também é opcional.

connect - um parâmetro booleano que, se definido como false, instruirá o módulo apenas para salvar os outros parâmetros sem realmente estabelecer conexão com o AP.

config

Desativar o cliente DHCP (Dynamic Host Configuration Protocol) é definir a configuração de IP da interface STA para valores arbitrários definidos pelo usuário. A interface será uma configuração de IP estático em vez de valores fornecidos pelo DHCP.

WiFi.config(local_ip, gateway, subnet, dns1, dns2)

Essa função retornará true se a alteração da configuração for aplicada com sucesso. Se a configuração não puder ser aplicada, por exemplo, módulo não está no modo STA ou STA + softAP, então a função retornará falso.

A seguinte configuração de IP pode ser fornecida:

local_ip - insira aqui o endereço IP que você deseja atribuir à interface STA do ESP.
gateway - deve conter o endereço IP do gateway (de um roteador) para acessar redes externas.
sub-net- esta é uma máscara que define o intervalo de endereços IP da rede local

dns1, dns2 - parâmetros opcionais que definem endereços IP de DNS (Domain Name Servers) que mantêm um diretório de nomes de domínio (como, por exemplo, www.google.com) e os traduzem para endereços IP.

Código de exemplo

#include <ESP8266WiFi.h>

const char* ssid = "********";
const char* password = "********";

IPAddress staticIP(192,168,1,200);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);

void setup(void)
{
  Serial.begin(115200);
  Serial.println();

  Serial.printf("Connecting to %s\n", ssid);
  WiFi.config(staticIP, gateway, subnet);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {}


Modo Soft Access Point

O modo Access Point (AP) é um dispositivo que fornece acesso à rede Wi-Fi para outros dispositivos Station (STA) e os conecta a mais a uma rede externa com fio. O ESP8266 pode fornecer funcionalidade semelhante, exceto por não ter interface com uma rede com fio "cabeada". Esse modo de operação é chamado de ponto de acesso flexível (soft-AP). A máxima quantidade de estações conectadas ao soft-AP, são cinco.

Configurar um ponto de acesso suave para uma rede Wi-Fi.

A versão mais simples desta função requer apenas um parâmetro e é usada para configurar uma rede Wi-Fi aberta.

WiFi.softAP (ssid)

Para configurar uma rede protegida por senha ou para configurar parâmetros de rede adicionais, use a seguinte função Overload:

WiFi.softAP(ssid, password, channel, hidden)

O primeiro parâmetro desta função é obrigatório, os restantes três são opcionais.
Significado de cada parâmetros existente dentro da Função:

ssid - uma cadeia de caracteres que contém o SSID do Access Point ao qual gostaríamos de nos conectar, podendo conter no máximo 63 caracteres.

password - esse parâmetro é onde contém um cadeia de caracteres opcional com uma senha. Para a rede WPA2-PSK, que deve ter no mínimo 8 caracteres. Se não for especificado, o ponto de acesso estará aberto para qualquer pessoa se conectar.

channel - utilizamos esse parâmetro para definir o canal Wi-Fi, de 1 a 13. Canal padrão é 1, esse parâmetro é opcional e ser omitido.

hidden - parâmetro opcional, se definido como true "verdadeiro", ocultará o SSID
A função retornará true ou false dependendo do resultado da configuração do soft-AP.

softAPConfig

Configure a interface de rede do soft-AP.

softAPConfig (local_ip, gateway, sub-rede)

Todos os parâmetros são o tipo de endereço IP e são definidos da seguinte maneira:

local_ip - endereço IP do soft-AP.
gateway - endereço IP do gateway
sub-net - máscara de sub-rede

A função retornará true ou false, dependendo do resultado da alteração da configuração.

Exemplo de código:

#include <ESP8266WiFi.h>

void setup(void)
{
  Serial.begin(115200);
  Serial.printf("Connection status: %d\n", WiFi.status());
  Serial.printf("Connecting to %s\n", ssid);
  WiFi.begin(ssid, password);
  Serial.printf("Connection status: %d\n", WiFi.status());
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.printf("\nConnection status: %d\n", WiFi.status());
  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {}


Você pode se interessar por este super interessante post de:

Controle Remoto WI-FI 3 Canais - ESP para ESP8266 - Controlando Cargas


E por hoje é só, espero ter ajudado!!!

Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom

2 comentários:

  1. Opa, tudo bem? Tenho uma dúvida: Usando a WiFiManager é possível colocar o ESP em Station e AP ao mesmo tempo?

    ResponderExcluir
    Respostas
    1. Olá!!!
      Nós nunca testamos o WiFiManager, não podemos lhe informar se é possível fazer ele em STA e AP simultaneamente.
      Forte abraço.

      Excluir