WiFi Manager API¶
Smart WiFi management with captive portal and credential persistence. Key features:
Architecture: Manages WiFi connection state machine (AP/STA/Disconnected). Provides captive portal for WiFi setup. Stores credentials in NVS and handles fallback logic. Integrates with web_server and config_manager. Designed for modular, component-based ESP-IDF architecture. |
Lifecycle Functions¶
Initialize WiFi manager with smart boot logic. Signature: esp_err_t wifi_manager_init(void);
Parameters:
Returns:
Note Automatically tries stored credentials, falls back to AP mode if needed. |
Start WiFi manager (called after init). Signature: esp_err_t wifi_manager_start(void);
Parameters:
Returns:
|
Stop WiFi manager. Signature: esp_err_t wifi_manager_stop(void);
Parameters:
Returns:
|
Configuration/Status Functions¶
Get current WiFi status. Signature: esp_err_t wifi_manager_get_status(wifi_status_t *status);
Parameters:
Returns:
|
Save WiFi credentials and attempt connection. Signature: esp_err_t wifi_manager_set_credentials(const wifi_credentials_t *credentials);
Parameters:
Returns:
|
Clear stored WiFi credentials. Signature: esp_err_t wifi_manager_clear_credentials(void);
Parameters:
Returns:
|
Get current IP address as string. Signature: esp_err_t wifi_manager_get_ip_address(char *ip_str, size_t max_len);
Parameters:
Returns:
|
Utility Functions¶
Force switch to AP mode. Signature: esp_err_t wifi_manager_switch_to_ap(void);
Parameters:
Returns:
|
Perform lightweight WiFi health monitoring. Signature: esp_err_t wifi_manager_monitor(void);
Parameters:
Returns:
Note Should be called periodically from main.c (at least once every 30 seconds). |
Data Types¶
WiFi manager modes. Definition: typedef enum {
WIFI_MODE_DISCONNECTED = 0,
WIFI_MODE_STA_CONNECTING,
WIFI_MODE_STA_CONNECTED,
WIFI_MODE_AP_ACTIVE,
WIFI_MODE_SWITCHING
} wifi_manager_mode_t;
Values:
|
WiFi credentials structure. Definition: typedef struct {
char ssid[32];
char password[64];
} wifi_credentials_t;
Fields:
|
WiFi status information. Definition: typedef struct {
wifi_manager_mode_t mode;
char connected_ssid[32];
int8_t rssi;
uint8_t retry_count;
bool has_credentials;
} wifi_status_t;
Fields:
|