Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitb7f38d005a130de393e717afae3fa9746e9789b2 (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-05-19 17:23:11 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-05-19 17:23:11 +0300
Files2af84d4f81f9ee31c4093793d2bb3bd787a967e7
uni-projects-b7f38d005a130de393e717afae3fa9746e9789b2.tar
uni-projects-b7f38d005a130de393e717afae3fa9746e9789b2.tar.gz
uni-projects-b7f38d005a130de393e717afae3fa9746e9789b2.zip
Parent2dbead51892e9a9aaddb27ec7b39ab63213b9c8e (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.c84
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");
- }
}