diff options
| Commit | b7f38d005a130de393e717afae3fa9746e9789b2 (patch) | |
|---|---|---|
| Author | 2024-05-19 17:23:11 +0300 | |
| Committer | 2024-05-19 17:23:11 +0300 | |
| Files | 2af84d4f81f9ee31c4093793d2bb3bd787a967e7 | |
| uni-projects-b7f38d005a130de393e717afae3fa9746e9789b2.tar uni-projects-b7f38d005a130de393e717afae3fa9746e9789b2.tar.gz uni-projects-b7f38d005a130de393e717afae3fa9746e9789b2.zip | ||
| Parent | 2dbead51892e9a9aaddb27ec7b39ab63213b9c8e (diff) | |
[iot/goam] Further simplified and separated out wifi config
1 files changed, 27 insertions, 57 deletions
| -rw-r--r-- | Year 3/Internet of things/goam/main/wifi.c | 84 |
diff --git a/Year 3/Internet of things/goam/main/wifi.c b/Year 3/Internet of things/goam/main/wifi.c index cf60a29..655bd77 100644 --- a/Year 3/Internet of things/goam/main/wifi.c +++ b/Year 3/Internet of things/goam/main/wifi.c @@ -7,25 +7,14 @@ #include "esp_wifi.h" #include "esp_event.h" #include "esp_log.h" +#include "freertos/task.h" #include "nvs_flash.h" #define EXAMPLE_ESP_MAXIMUM_RETRY 3 -#define ESP_WIFI_SAE_MODE WPA3_SAE_PWE_HUNT_AND_PECK -#define EXAMPLE_H2E_IDENTIFIER "" #define ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_PSK - -/* FreeRTOS event group to signal when we are connected*/ -static EventGroupHandle_t s_wifi_event_group; - -/* The event group allows multiple bits for each event, but we only care about two events: - * - we are connected to the AP with an IP - * - we failed to connect after the maximum amount of retries */ -#define WIFI_CONNECTED_BIT BIT0 -#define WIFI_FAIL_BIT BIT1 - -static const char *TAG = "wifi station"; +static const char *TAG = "wifi_station"; static int s_retry_num = 0; @@ -40,14 +29,16 @@ static void event_handler(void* arg, esp_event_base_t event_base, s_retry_num++; ESP_LOGI(TAG, "retry to connect to the AP"); } else { - xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); + ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", + EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); } ESP_LOGI(TAG,"connect to the AP fail"); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); s_retry_num = 0; - xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + ESP_LOGI(TAG, "connected to ap SSID:%s password:%s", + EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); } } @@ -65,30 +56,9 @@ static void nvs_init() { static void netif_init() { ESP_ERROR_CHECK(esp_netif_init()); - ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_create_default_wifi_sta(); } -static void wifi_init_staic_station() { - ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); - - wifi_config_t wifi_config = { - .sta = { - .ssid = EXAMPLE_ESP_WIFI_SSID, - .password = EXAMPLE_ESP_WIFI_PASS, - /* Authmode threshold resets to WPA2 as default if password matches WPA2 standards (pasword len => 8). - * If you want to connect the device to deprecated WEP/WPA networks, Please set the threshold value - * to WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK and set the password with length and format matching to - * WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards. - */ - .threshold.authmode = ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD, - .sae_pwe_h2e = ESP_WIFI_SAE_MODE, - .sae_h2e_identifier = EXAMPLE_H2E_IDENTIFIER, - }, - }; - ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config)); -} - static esp_event_handler_instance_t instance_any_id; static esp_event_handler_instance_t instance_got_ip; @@ -105,37 +75,37 @@ static void wifi_init_events() { &instance_got_ip)); } +static void wifi_init_static_station() { + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + + wifi_config_t wifi_config = { + .sta = { + .ssid = EXAMPLE_ESP_WIFI_SSID, + .password = EXAMPLE_ESP_WIFI_PASS, + /* Authmode threshold resets to WPA2 as default if password matches WPA2 standards (pasword len => 8). + * If you want to connect the device to deprecated WEP/WPA networks, Please set the threshold value + * to WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK and set the password with length and format matching to + * WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards. + */ + .threshold.authmode = ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD, + }, + }; + ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config)); +} + void wifi_init() { nvs_init(); + + ESP_ERROR_CHECK(esp_event_loop_create_default()); + netif_init(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); - s_wifi_event_group = xEventGroupCreate(); wifi_init_events(); wifi_init_static_station(); ESP_ERROR_CHECK(esp_wifi_start()); - - /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum - * number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) */ - EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group, - WIFI_CONNECTED_BIT | WIFI_FAIL_BIT, - pdFALSE, - pdFALSE, - portMAX_DELAY); - - /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually - * happened. */ - if (bits & WIFI_CONNECTED_BIT) { - ESP_LOGI(TAG, "connected to ap SSID:%s password:%s", - EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); - } else if (bits & WIFI_FAIL_BIT) { - ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", - EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); - } else { - ESP_LOGE(TAG, "UNEXPECTED EVENT"); - } } |
