ESP-TOUCH

ESP-TOUCH

Explicação tecnológica

Uma vez que o dispositivo (ESP8266 ou ESP32) não está conectado a uma rede WiFi, o ESP-TOUCH auxilia na conexão através de outro dispositivo conectado a um Access Point, como por exemplo, um celular ou um tablet.

Para mais informação, visite o site da Espressif

https://www.espressif.com/en/products/software/esp-touch/overview

Explicação tecnológica

O protocolo ESP-TOUCH da Espressif implementa a tecnologia Smart Config para que os usuários consigam conectar o dispositivo (ESP8266 ou ESP32) a uma rede WiFi facilmente.

Um aplicativo funcionando em um celular que já esteja conectado a uma rede WiFi envia pacotes UDP (broadcast) contendo informações sobre o SSID e a senha, que são recebidos pelos dispositivos permitindo a conexão.

O pacote UDP contém a estrutura abaixo:

  • 6 bytes para o DA
  • 6 bytes para o SA
  • 2 bytes para o tamanho - contém SSID e a informação da chave
  • 3 bytes para o LLC
  • 5 bytes para o SNAP
  • N bytes para os dados
  • 4 bytes para o FCS

Explicação funcional

Os SDKs da Espressif e o ESP-IDF suportam o ESP-TOUCH e também é compatível com o protocolo AirKiss para a conexão com o Wechat. É possível configurar o dispositivo através de um cliente Wechat.

Operação

  1. Prepare o dispositivo com o suporte ao ESP-TOUCH e habilite a função Smart Config;
  2. Conecte o seu celular no Access Point;
  3. Abra o aplicativo ESP-TOUCH instalado no seu celular;
  4. Entre com o SSID e a senha para a conexão do seu dispositivo ao Access Point. Caso a comunicação do Access Point não seja criptografada, deixe o campo da senha em branco;
  5. O dispositivo receberá as informações e se conectará a rede WiFi.

ESP8266 API

smartconfig_start

Configura o dispositivo e conecta-o ao AP.

bool smartconfig_start(sc_callback_t cb, uint8 log)

A função callback será chamada quando o status do smart-config se altera e os parâmetros retornados pela função poderá ser:

  • Status = SC_STATUS_WAIT e não há dados em pData
  • Status = SC_STATUS_FIND_CHANNEL e não há dados em pData
  • Status = SC_STATUS_GETTING_SSID_PSWD e pData retorna SC_TYPE_ESPTOUCH ou SC_TYPE_AIRKISS
  • Status = SC_STATUS_LINK e pdata é um ponteiro para uma estrutura contendo informações de conexão;
  • Status = SC_STATUS_LINK_OVER e pdata é um ponteiro para o endereço IP do celular (4 bytes)

smartconfig_stop

Termina o processo do Smart Config e libera o buffer utilizado.

bool smartconfig_stop(void)

smartconfig_set_type

Seleciona o protocolo usado pelo Smart Config

bool smartconfig_set_type(sc_type type)

Valores possíveis são: SC_TYPE_ESPTOUCH, SC_TYPE_AIRKISS e SC_TYPE_ESPTOUCH_AIRKISS

ESP32 API

esp_smartconfig_start

Configura o dispositivo e conecta-o ao AP.

esp_err_t esp_smartconfig_start(sc_callback_t cb, uint8 log)

A função callback será chamada quando o status do smart-config se altera e os parâmetros retornados pela função poderá ser:

  • Status = SC_STATUS_WAIT e não há dados em pData
  • Status = SC_STATUS_FIND_CHANNEL e não há dados em pData
  • Status = SC_STATUS_GETTING_SSID_PSWD e pData retorna SC_TYPE_ESPTOUCH ou SC_TYPE_AIRKISS
  • Status = SC_STATUS_LINK e pdata é um ponteiro para uma estrutura contendo informações de conexão;
  • Status = SC_STATUS_LINK_OVER e pdata é um ponteiro para o endereço IP do celular (4 bytes)

esp_smartconfig_stop

Termina o processo do Smart Config e libera o buffer utilizado.

esp_err_t esp_smartconfig_stop(void)

esp_smartconfig_set_timeout

Configura o tempo máximo de espera da conexão

esp_err_t esp_smartconfig_set_timeout(uint8_t time_s)

esp_smartconfig_fast_mode

esp_err_t esp_smartconfig_fast_mode(bool enable)

Seleciona o modo rápido de conexão do Smart Config

smartconfig_set_type

Seleciona o protocolo usado pelo Smart Config

bool smartconfig_set_type(sc_type type)

Valores possíveis são: SC_TYPE_ESPTOUCH, SC_TYPE_AIRKISS e SC_TYPE_ESPTOUCH_AIRKISS