3#include "esp_http_client.h"
4#include "esp_idf_version.h"
20 bool begin(
const char* ssid,
const char* password) {
24 LOGE(
"setupWIFI failed");
47 esp_ip4_addr_t
ip = {0};
50 bool setupWIFI(
const char* ssid,
const char* password) {
52 assert(password !=
nullptr);
53 LOGI(
"setupWIFI: %s", ssid);
54 esp_err_t ret = nvs_flash_init();
55 if (ret == ESP_ERR_NVS_NO_FREE_PAGES ||
56 ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
58 ret = nvs_flash_init();
61 if (esp_netif_init() != ESP_OK) {
62 LOGE(
"esp_netif_init");
66 if (esp_event_loop_create_default() != ESP_OK) {
67 LOGE(
"esp_event_loop_create_default");
71 esp_netif_t* itf = esp_netif_create_default_wifi_sta();
73 LOGE(
"esp_netif_create_default_wifi_sta");
77 esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID,
79 esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP,
81 wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
82 if (esp_wifi_init(&cfg) != ESP_OK) {
83 LOGE(
"esp_wifi_init");
87 esp_wifi_set_mode(WIFI_MODE_STA);
90 wifi_config_t sta_config;
91 memset(&sta_config, 0,
sizeof(wifi_config_t));
92 strncpy((
char*)sta_config.sta.ssid, ssid, 32);
93 strncpy((
char*)sta_config.sta.password, password, 32);
94 sta_config.sta.threshold.authmode = WIFI_AUTH_WPA_WPA2_PSK;
95 esp_wifi_set_config(WIFI_IF_STA, &sta_config);
98 bool rc = esp_wifi_start() == ESP_OK;
100 LOGE(
"esp_wifi_start");
106 int32_t event_id,
void* event_data) {
109 if (event_base == WIFI_EVENT) {
111 case WIFI_EVENT_STA_START:
112 LOGI(
"WIFI_EVENT_STA_START");
115 case WIFI_EVENT_STA_DISCONNECTED:
116 LOGI(
"WIFI_EVENT_STA_DISCONNECTED");
120 }
else if (event_base == IP_EVENT) {
122 case IP_EVENT_STA_GOT_IP: {
123 ip_event_got_ip_t*
event = (ip_event_got_ip_t*)event_data;
124 self->
ip =
event->ip_info.ip;
126 LOGI(
"==> Station connected with IP: " IPSTR
", GW: " IPSTR
127 ", Mask: " IPSTR
".",
128 IP2STR(&event->ip_info.ip), IP2STR(&event->ip_info.gw),
129 IP2STR(&event->ip_info.netmask));
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define TRACED()
Definition AudioLoggerIDF.h:31
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define assert(T)
Definition avr.h:10
class audio_tools::WiFiESP32 IDF_WIFI