ESP-IDF Wi-Fi Station
Connect an ESP32-family target to Wi-Fi using ESP-IDF events.
Project files
Starter — mainmain.c
#include "freertos/FreeRTOS.h"
#include "esp_wifi.h"
void app_main(void){ /* TODO: initialise NVS and Wi-Fi */ }Completed — mainmain.c
#include "freertos/FreeRTOS.h"
#include "nvs_flash.h"
#include "esp_netif.h"
#include "esp_event.h"
#include "esp_wifi.h"
void app_main(void){ nvs_flash_init(); esp_netif_init(); esp_event_loop_create_default(); esp_netif_create_default_wifi_sta(); wifi_init_config_t cfg=WIFI_INIT_CONFIG_DEFAULT(); esp_wifi_init(&cfg); esp_wifi_set_mode(WIFI_MODE_STA); esp_wifi_start(); }Starter — CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(tcs_wifi)Completed — CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(tcs_wifi)Toolchain and dependencies
IDE requirements
ESP-IDF 5.x with VS Code extension or command line
Compatible targets
ESP32, ESP32-C3/C6/S2/S3
Libraries/dependencies
- ESP-IDF esp_wifi
- ESP-IDF esp_event
- NVS Flash
Serial output examples
Serial Monitor
I wifi:init rx ba win: 6 I wifi:mode : sta I app: Wi-Fi started
Compiler-error explanations
fatal error: esp_wifi.h: No such file
Likely cause: File built outside ESP-IDF environment
Fix: Run idf.py inside an exported ESP-IDF terminal
ESP_ERR_NVS_NO_FREE_PAGES
Likely cause: NVS partition is incompatible/full
Fix: Erase flash or handle NVS recovery before Wi-Fi init
Submit your code
Log in to edit the starter files and submit your solution for instructor review.
Log in to submit