ESP32+idf开发之WIFI通信入门(2)station网络连接

您所在的位置:网站首页 手机如何无密码连wifi ESP32+idf开发之WIFI通信入门(2)station网络连接

ESP32+idf开发之WIFI通信入门(2)station网络连接

2024-07-16 08:03:08| 来源: 网络整理| 查看: 265

ESP32+idf开发之WIFI通信入门(2)station网络连接

1、新建工程项目ctrl+shift+p,选择new project,输入项目名,选择合适项目路径,选择对应的开发板,此处选择自定义,target选择ESP32 moudule,点击选择模板。

image-20230313212949442

2、选择idf的模板example,选择其中空白的样例工程,点击创建项目用此模板,并在新的窗口打开,旧窗口就可以关闭了。

image-20230313213413882

3、在vscode中项目路径下找到main.c文件,输入以下代码实现以下功能:

​ (1)能连接到你的热点(用户名ssid,密码password);

​ (2)能够实现断线重连;

​ (3)信号量完成事件处理函数和主任务的同步,当连接成功后,主任务能够输出“connected to ap!”

#include #include #include #include #include #include #include static char *TAG = "wifi station"; SemaphoreHandle_t sem; // 状态机事件处理:static void event_handler(void * arg, esp_event_base_t event_base, // int32_t event_id, void * event_data) static void event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) { if ((event_base == WIFI_EVENT) && (event_id == WIFI_EVENT_STA_START || event_id == WIFI_EVENT_STA_DISCONNECTED)) { ESP_LOGI(TAG, "begin to connect the AP"); esp_wifi_connect(); } 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)); xSemaphoreGive(sem); } } void app_main(void) { sem = xSemaphoreCreateBinary(); // nvs初始化:nvs_flash_init() ESP_ERROR_CHECK(nvs_flash_init()); // 事件循环初始化:sp_event_loop_create_default(); ESP_ERROR_CHECK(esp_event_loop_create_default()); // 事件处理函数注册 // esp_err_t esp_event_handler_register(esp_event_base_t event_base, int32_t event_id, // esp_event_handler_t event_handler, void * event_handler_arg) ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, event_handler, NULL)); ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, event_handler, NULL)); // 初始化阶段:esp_netif_init();sp_netif_create_default_wifi_sta();esp_wifi_init(); ESP_ERROR_CHECK(esp_netif_init()); esp_netif_create_default_wifi_sta(); wifi_init_config_t wifi_cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&wifi_cfg)); // 配置阶段:esp_wifi_set_mode();esp_wifi_set_config(); ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); wifi_config_t cfg = { .sta = { //用户名和密码根据实际情况修改 .ssid = "ssid", .password = "password", }}; ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &cfg)); // 启动阶段:esp_wifi_start() ESP_ERROR_CHECK(esp_wifi_start()); while (1) { if (xSemaphoreTake(sem, portMAX_DELAY) == pdPASS) { ESP_LOGI(TAG, "connected to ap!"); } } }

4、编译(build)、烧写(flash)和监控(monitor),成功连接ap,断开后不断重连并打印begin to connect the AP,直到再次连接成功。

image-20230313215700736



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭