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
- Prepare o dispositivo com o suporte ao ESP-TOUCH e habilite a função Smart Config;
- Conecte o seu celular no Access Point;
- Abra o aplicativo ESP-TOUCH instalado no seu celular;
- 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;
- 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