Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <sys/socket.h>
- #include <netdb.h>
- #include <math.h>
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
- #include "freertos/queue.h"
- #include "freertos/event_groups.h"
- #include "driver/gpio.h"
- #include "driver/i2c.h"
- #include "driver/hw_timer.h"
- #include "esp_log.h"
- #include "esp_system.h"
- #include "esp_wifi.h"
- #include "esp_event_loop.h"
- #include "esp_err.h"
- #define CONF_ESP_WIFI_SSID "<AP name>"
- #define CONF_ESP_WIFI_PASS "<AP password>"
- //**********************************************************************
- static EventGroupHandle_t wifi_event_group;
- const int WIFI_CONNECTED_BIT = BIT0;
- static const char *TAG = "WIFI";
- //**********************************************************************
- static void __attribute__((noreturn)) task_fatal_error()
- {
- ESP_LOGE(TAG, "Exiting task due to fatal error...");
- (void)vTaskDelete(NULL);
- while (1) {
- ;
- }
- }
- static esp_err_t event_handler(void *ctx, system_event_t *event)
- {
- switch(event->event_id) {
- case SYSTEM_EVENT_STA_START:
- esp_wifi_connect();
- break;
- case SYSTEM_EVENT_STA_GOT_IP:
- ESP_LOGI(TAG, "got ip:%s",
- ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip));
- xEventGroupSetBits(wifi_event_group, WIFI_CONNECTED_BIT);
- break;
- case SYSTEM_EVENT_STA_DISCONNECTED:
- esp_wifi_connect();
- xEventGroupClearBits(wifi_event_group, WIFI_CONNECTED_BIT);
- break;
- default:
- break;
- }
- return ESP_OK;
- }
- void wifi_init_sta()
- {
- wifi_event_group = xEventGroupCreate();
- tcpip_adapter_init();
- ESP_ERROR_CHECK(esp_event_loop_init(event_handler, NULL) );
- wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
- ESP_ERROR_CHECK(esp_wifi_init(&cfg));
- wifi_config_t wifi_config = {
- .sta = {
- .ssid = CONF_ESP_WIFI_SSID,
- .password = CONF_ESP_WIFI_PASS
- },
- };
- ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
- ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
- ESP_ERROR_CHECK(esp_wifi_start() );
- ESP_LOGI(TAG, "wifi_init_sta finished.");
- ESP_LOGI(TAG, "connect to ap SSID:%s password:%s",
- CONF_ESP_WIFI_SSID, CONF_ESP_WIFI_PASS);
- }
- //**********************************************************************
- void app_main(void)
- {
- wifi_init_sta();
- while (1) {
- vTaskDelay(1000 / portTICK_RATE_MS);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement