Sistema Embarcado LockWise
Sistema de fechadura inteligente com autenticação por voz, controle MQTT e aplicativo móvel
Carregando...
Procurando...
Nenhuma entrada encontrada
Referência ao ficheiro wifi.c
#include "config.h"
#include "esp_event.h"
#include "esp_log.h"
#include "esp_mac.h"
#include "esp_netif.h"
#include "esp_peripherals.h"
#include "esp_wifi.h"
#include "freertos/idf_additions.h"
#include "freertos/task.h"
#include "lwip/sockets.h"
#include "periph_wifi.h"
#include "system_utils.h"
#include "wifi.h"
#include <ctype.h>
#include <stdio.h>
#include <string.h>

Funções

static void ip_event_handler (void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
 Handler de eventos IP.
 
static void handle_pairing_client (int client_sock)
 Trata cliente conectado ao servidor de pareamento.
 
static void parse_configure_request (const char *request, char *wifi_ssid, char *wifi_pass, char *user_id)
 Analisa requisição de configuração HTTP.
 
static void timeout_task (void *param)
 Tarefa de timeout para o modo de pareamento.
 
void wifi_init (void)
 Inicializa a conectividade Wi-Fi em modo station (STA).
 
static void wifi_init_ap (void)
 Inicializa Wi-Fi em modo Access Point para pareamento.
 
void start_pairing_server (void)
 Inicia o servidor de pareamento Wi-Fi em modo Access Point (AP).
 

Variáveis

static const char * TAG = "\033[1mLOCKWISE:\033[34mWIFI\033[0m\033[34m"
 
static int pairing_sock = -1
 Socket para servidor de pareamento.
 
static bool paired = false
 Flag indicando se o pareamento foi concluído.
 
static SemaphoreHandle_t pair_mutex
 Mutex para sincronização do processo de pareamento.
 
static bool ip_handler_registered = false
 Flag indicando se o handler de eventos IP está registrado.
 

Documentação das funções

◆ handle_pairing_client()

static void handle_pairing_client ( int  client_sock)
static

Trata cliente conectado ao servidor de pareamento.

Parâmetros
client_sockSocket do cliente.

Processa requisições HTTP POST /configure para configuração inicial.

◆ ip_event_handler()

static void ip_event_handler ( void *  arg,
esp_event_base_t  event_base,
int32_t  event_id,
void *  event_data 
)
static

Handler de eventos IP.

Parâmetros
argArgumentos do handler.
event_baseBase do evento.
event_idID do evento.
event_dataDados do evento.

Processa eventos de obtenção de IP, configurando DNS.

◆ parse_configure_request()

static void parse_configure_request ( const char *  request,
char *  wifi_ssid,
char *  wifi_pass,
char *  user_id 
)
static

Analisa requisição de configuração HTTP.

Parâmetros
requestRequisição HTTP completa.
wifi_ssidBuffer para SSID Wi-Fi.
wifi_passBuffer para senha Wi-Fi.
user_idBuffer para ID do usuário.

Extrai parâmetros da requisição POST para configuração inicial.

◆ start_pairing_server()

void start_pairing_server ( void  )

Inicia o servidor de pareamento Wi-Fi em modo Access Point (AP).

Esta função configura o dispositivo como um ponto de acesso Wi-Fi para permitir configuração inicial via aplicativo móvel.

◆ timeout_task()

static void timeout_task ( void *  param)
static

Tarefa de timeout para o modo de pareamento.

Parâmetros
paramParâmetros da tarefa (não usado).

Aguarda o tempo limite de pareamento e reinicializa se não pareado.

◆ wifi_init()

void wifi_init ( void  )

Inicializa a conectividade Wi-Fi em modo station (STA).

Esta função configura e conecta o dispositivo à rede Wi-Fi usando as credenciais armazenadas na configuração (SSID e senha).

Aviso
Não chame wifi_init() e wifi_init_ap() dentro do mesmo boot, pois cada uma usa uma abstração diferente e isso pode deixar o módulo Wi-Fi em um estado inválido.

◆ wifi_init_ap()

static void wifi_init_ap ( void  )
static

Inicializa Wi-Fi em modo Access Point para pareamento.

Aviso
Não chame wifi_init_ap() e wifi_init() dentro do mesmo boot, pois cada uma usa uma abstração diferente e isso pode deixar o módulo Wi-Fi em um estado inválido.

Configura o dispositivo como AP com SSID e senha derivados do device_id.

Documentação das variáveis

◆ ip_handler_registered

bool ip_handler_registered = false
static

Flag indicando se o handler de eventos IP está registrado.

◆ pair_mutex

SemaphoreHandle_t pair_mutex
static

Mutex para sincronização do processo de pareamento.

◆ paired

bool paired = false
static

Flag indicando se o pareamento foi concluído.

◆ pairing_sock

int pairing_sock = -1
static

Socket para servidor de pareamento.

◆ TAG

const char* TAG = "\033[1mLOCKWISE:\033[34mWIFI\033[0m\033[34m"
static