范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

ESPC3入门13。SoftAP模式

  一、 ESP32-C3 WIFI的工作模式
  ESP32 的 Wi-Fi 可以工作在以下几种工作状态: Station 模式(STA):在这种模式下,ESP32 连接到一个已经存在的无线网络,类似于一台普通的 Wi-Fi 客户端设备。 Access Point 模式(AP):在这种模式下,ESP32 自己作为一个 Wi-Fi 热点,并接受其他 Wi-Fi 客户端设备的连接,类似于一个路由器。 Station + Access Point 模式(STA+AP):在这种模式下,ESP32 同时工作在 Station 和 Access Point 两种模式下,既可以连接到已有的 Wi-Fi 网络,也可以提供 Wi-Fi 热点。 Wi-Fi Direct 模式(P2P):在这种模式下,ESP32 作为 Wi-Fi Direct 设备,可以直接和其他 Wi-Fi Direct 设备进行通信,不需要使用路由器。 Promiscuous 模式:在这种模式下,ESP32 可以在监听所有 Wi-Fi 数据包,而不仅仅是与它连接的 AP 或者 P2P 设备相关的数据包。
  前面文章介绍了ESP32作为 Station的工作模式,今天使用其Access Point模式。 二、SoftAP配置1.wifi_config_t结构体
  示例代码设置 ESP32 的 Wi-Fi 模块工作在 AP 模式下,同时配置 Wi-Fi AP 热点的一些参数,方便客户端连接:     // 设置为AP模式,配置名称,密码,频道,最大连接数,认证模式     wifi_config_t wifi_config = {             .ap = {                     .ssid = EXAMPLE_ESP_WIFI_SSID,                     .ssid_len = strlen(EXAMPLE_ESP_WIFI_SSID),                     .channel = EXAMPLE_ESP_WIFI_CHANNEL,                     .password = EXAMPLE_ESP_WIFI_PASS,                     .max_connection = EXAMPLE_MAX_STA_CONN,                     .authmode = WIFI_AUTH_WPA_WPA2_PSK             },     };     ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config)); 2.wifi_event_handler事件(1)esp_event_handler_instance_register注册事件
  示例:     //wifi相关设置初始化     ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,             //检查                                                         ESP_EVENT_ANY_ID,                                                         &wifi_event_handler,                                                         NULL,                                                         NULL));
  esp_event_handler_instance_register  用于在事件循环中注册事件处理程序,其参数解释:WIFI_EVENT:事件的基础类型,该函数将向WiFi事件注册处理程序。 ESP_EVENT_ANY_ID:这是事件ID,这里使用ESP_EVENT_ANY_ID表示注册所有WiFi事件。 &wifi_event_handler:这是事件处理程序的指针,它将在WiFi事件发生时被调用。 NULL:这是事件处理程序的参数,这里没有使用参数,因此将其设置为NULL。 NULL:这是事件处理程序的实例,这里没有使用多个实例,因此将其设置为NULL。 (2)system_event_sta_connected_t结构体
  在ESP-IDF中,当一个设备通过WiFi连接到ESP32的WiFi热点时,ESP32会触发一个连接事件。这个事件会包含一个结构体system_event_sta_connected_t,其中包含连接设备的MAC地址(event->mac)和连接设备在该AP热点下的AID(event->aid)。
  其中,event->aid代表的是连接设备在AP热点下的AID(Association ID),AID是一个整数值,表示AP热点中连接的设备的编号。
  在802.11标准中,AID是一个由AP热点指派的,可以被用来唯一标识一个STA(Station)设备的值。在ESP-IDF中,AID的范围是1~16,代表连接的设备数量。 3. 关闭SoftAP  ESP_LOGI(TAG, "Max clients reached, shutting down AP");     // 关闭 softAP     esp_wifi_stop();     esp_wifi_deinit();     esp_netif_deinit();     vTaskDelete(NULL); 三、示例
  ESP32可以通过Wi-Fi芯片在AP(接入点)模式下运行,充当热点。下面是开启ESP32热点的步骤: 1. main.c#include   #include "freertos/FreeRTOS.h" #include "freertos/task.h"  #include  #include "network/include/wifi.h" #include "network/include/wifi_sta.h" #include "network/include/wifi_ap.h"  static const char *TAG = "wifi connection";   void app_main() {     ESP_LOGE(TAG, "app_main");     // 初始化NVS存储区     esp_err_t ret = nvs_flash_init();     if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {         ESP_ERROR_CHECK(nvs_flash_erase());         ret = nvs_flash_init();     }     ESP_ERROR_CHECK(ret);      // Wi-Fi初始化     ESP_LOGI(TAG, "Wi-Fi initialization");     wifi_initialize();      // ---------- WiFi SoftAp -----------------     wifi_init_softap();      while (1) {         vTaskDelay(pdMS_TO_TICKS(500));     } }  2. wifi_ap.h// // Created by hs26661 on 2023/2/25. //  #ifndef ESP32_LEARN_WIFI_AP_H #define ESP32_LEARN_WIFI_AP_H void wifi_init_softap(void); #endif //ESP32_LEARN_WIFI_AP_H  3. wifi_ap.c#include "string.h" #include "esp_wifi.h" #include "esp_wifi_types.h" #include "esp_event.h" #include "esp_log.h" #include "esp_wifi_default.h" #include "freertos/event_groups.h"  EventGroupHandle_t s_wifi_event_group;  #define EXAMPLE_ESP_WIFI_SSID "ESP32"                   // wifi名称 #define EXAMPLE_ESP_WIFI_PASS "12345678"               // wifi密码 #define EXAMPLE_ESP_WIFI_CHANNEL   1                    // wifi频道 1 #define EXAMPLE_MAX_STA_CONN       4                    // WiFi最大接入数 4  static const char *TAG = "wifi softAP lib";  /*wifi事件处理函数*/ void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) {     if (event_id == WIFI_EVENT_AP_STACONNECTED) {         // 如果有客户端接入wifi         wifi_event_ap_staconnected_t *event = (wifi_event_ap_staconnected_t *) event_data;         // 设备MAC地址,状态(接入/离开),分配到的id号         // MACSTR是一个宏定义,用于将MAC地址以字符串形式打印出来         ESP_LOGI(TAG, "station "MACSTR" join, AID=%d", MAC2STR(event->mac), event->aid);     } else if (event_id == WIFI_EVENT_AP_STADISCONNECTED) {         // 没有客户端连接         wifi_event_ap_stadisconnected_t *event = (wifi_event_ap_stadisconnected_t *) event_data;         ESP_LOGI(TAG, "station "MACSTR" leave, AID=%d", MAC2STR(event->mac), event->aid);     } }  void wifi_init_softap(void) {      esp_netif_create_default_wifi_ap();      //wifi相关设置初始化     wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();     ESP_ERROR_CHECK(esp_wifi_init(&cfg));      //wifi相关设置初始化     ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,             //检查                                                         ESP_EVENT_ANY_ID,                                                         &wifi_event_handler,                                                         NULL,                                                         NULL));     // 设置为AP模式,配置名称,密码,频道,最大连接数,认证模式     wifi_config_t wifi_config = {             .ap = {                     .ssid = EXAMPLE_ESP_WIFI_SSID,                     .ssid_len = strlen(EXAMPLE_ESP_WIFI_SSID),                     .channel = EXAMPLE_ESP_WIFI_CHANNEL,                     .password = EXAMPLE_ESP_WIFI_PASS,                     .max_connection = EXAMPLE_MAX_STA_CONN,                     .authmode = WIFI_AUTH_WPA_WPA2_PSK             },     };     //如果密码长度为0(未设置密码),则认证模式改为开放     if (strlen(EXAMPLE_ESP_WIFI_PASS) == 0) {         wifi_config.ap.authmode = WIFI_AUTH_OPEN;     }      ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP));     ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config));     ESP_ERROR_CHECK(esp_wifi_start());      //WiFi_AP初始化完成,串口输出信息     ESP_LOGI(TAG, "wifi_init_softap finished. SSID:%s password:%s channel:%d",              EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS, EXAMPLE_ESP_WIFI_CHANNEL); }
  运行效果:

山区茶园忙春管来源中国农网春节过后,地处秦巴山区的湖北省十堰市竹溪县水坪镇船形寨村茶园里,一垄垄茶苗含翠吐绿,摇曳生姿,把原本赤黄的山地装点得生机盎然。20余名茶园管护工人,一字排开,手拿锄头,零下53度的东北游,能火多久?来源深燃(shenrancaijing)原标题零下53度的东北游,能火多久?千里冰封,万里雪飘。关于东北的想象,可以在冬天落地了。春节期间,有抵达哈尔滨机场的游客发文表示,因零下3兹维列夫家暴案ATP调查结果公布证据不足不做处分北京时间2月1日消息。ATP近日公布了兹维列夫家暴案独立调查结果。ATP方面表示,没有足够的证据来证明对兹维列夫的家暴指控。因此,ATP并不会采取对德国人的任何纪律处分。2021年阿努诺比驳斥传闻我并没有想离开猛龙北京时间2月1日,据Sportsnet报道,猛龙球员OG阿努诺比驳斥了他想要加盟其他球队的传闻。不,并不是这样,在被问及是否像传闻那样想要离开猛龙时,阿努诺比说道,但他也直言并不满曝萨克拉门托国王有意得到马蒂斯塞布尔北京时间2月1日,据知名记者马克斯坦因报道,萨克拉门托国王有意得到76人前锋马蒂斯塞布尔。据悉国王正在关注费城76人的马蒂斯塞布尔,由于国王在创纪录连续16个赛季无缘季后赛之后,本早知道恩佐1。2亿欧元成冬窗标王北京时间2月1日凌晨,切尔西官方宣布,与本菲卡就22岁的阿根廷中场恩佐费尔南德斯的转会达成一致,球员即将飞往伦敦。切尔西为恩佐支付了1。2亿欧元的解约金,这也创下了英超转会费纪录和亚足联换届选举萨尔曼连任主席,杜兆才无缘连任FIFA亚洲理事(资料图)北京时间2月1日,第33届亚足联代表大会在巴林举行,此次会议的重要议题就是换届选举,中国体育总局副局长中国足协党委书记杜兆才参与FIFA亚洲理事的竞选,但杜兆才无缘连任,太阳2换1交易方案,保罗被第三次抛弃,第一控卫要终身无冠了名记EricPincus报道,太阳队已经接受了保罗状态开始走下坡路的可能。即使他能够将球队带到季后赛,他们也需要找一个长期的替代者。本赛季代表太阳出战的比赛,保罗场均14。5分4。绝杀抢断!小卡334552打爆公牛!24分大逆转,快船新巨头诞生今天芝加哥公牛坐镇主场迎战快船,本场比赛公牛三巨头和快船双锋线全都出席。首节比赛快船除了卡乔两人之外,其他人都无法得分,公牛则是武切维奇为主,首发多点开花,很快建立起了10分的领先亚马逊禁用PowerPoint简报内部文件改以说故事达成5目的亚马逊社内简报禁用PowerPoint一事,早已传遍业界。事实上,发出PowerPoint禁令的不是别人,正是贝佐斯。关于贝佐斯禁用PowerPoint的原因,公司内部流传着好几个教育互联网的发展会让教育失去了意义,除非自我改变!(三)随着互联网和科技的发展,现在的教育模式将会失去意义,而大学则会倒闭。为何这样说?首先,我们的教育到底是培养头脑还是保持人的天性的智慧并壮大发展?既然我们已经知道人体有一个超越头脑的
优衣库创始人50年的经营笔记只关注自己的事业,视野会变得狭窄优衣库创始人,74岁的日本首富柳井正有每天读书的习惯。作为一个实干型的企业家,在众多的书中,他最推荐的是企业经营者基于自己的实际经营活动而写成的书。这类书中关于行动以及思维方式等的走进区域看发展智慧赋能里的双城新机遇来源新华网新华网重庆2月19日电(李华曾刘文静)在重庆一家新能源汽车的智能化组装线上,生产线上的机器人正挥舞着机械臂,完成焊接组装喷漆等多项作业,一派忙碌的生产景象。这是两江新区抢为什么房价上涨容易,下降困难?供需关系房屋市场中供求关系是决定价格变化的主要因素。当需求大于供应时,房价通常会上涨相反,当供应大于需求时,房价就会下降。由于房屋建设和开发需要时间,供应往往滞后于需求,因此导致房一哥王亚伟时隔六年再出手,与但斌所见略同?抄底大赚2亿!最新还关注了这些本刊编辑部王飞近期,曾被誉为中国最赚钱的基金经理的王亚伟又有了新动作。继今年2月带领千合资本迈入百亿俱乐部之后,王亚伟最新的美股持仓随即披露。结合美股市场整体走势来看,王亚伟的布局欢迎来到星糖宇宙animateanimateanimateanimateanimateanimateanimateanimateanimateanimateanimateanimateanimat正是用工时就业新趋势本周三,今年的春运正式结束了,但是另一种春运却依然在紧锣密鼓地进行着,那就是不少用工企业在用包专车的方式跨省接务工人员返岗,更夸张的甚至包专机,这么做是抢人是开工很着急,这样的做法10万块还买油车?盘点四款纯电车型,强推五菱缤果比亚迪海鸥如今的新能源市场大步发展逐步向主流市场发展,新能源新车的上险量也达到了前所未有的高度,可以说新能源车取代燃油车是迟早的事情,所以买车考虑新能源车型的人越来越多了,但是新能源车型相比武汉经济和城市地位正回归本报记者张家振武汉报道过去的一年,是武汉极为重要极不容易的一年。2月6日,武汉市政府官网对外发布最终版武汉市2023年政府工作报告,并更新了经核定的2022年全年经济发展成绩单全市关注岸勤先锋,闪亮登场!文图李浩张海峰刘世国汪皓洋张耀阳顾懂懂戴鹏臣踔厉奋发新时代建设一流保打赢前不久东部战区海军某基地岸勤部11周岁生日在这个喜庆的日子里他们隆重举行举行岸勤先锋表彰大会请看此次受表彰的学习雷锋好榜样塞拉利昂留学生达拉米积极参与志愿服务视频加载中视频制作陈泓利国际在线辽宁频道消息(杨薇)随着中央网信办主办的团结奋进新征程奋楫扬帆再出发2023年网上重大主题宣传和重大议题设置发布启动仪式举行,2023年打卡中国读懂在不确定性中向本真逼近原载于中国青年杂志2023年第3期编者按认识世界认识自我的方式有很多种,最便捷最纯粹的方式是阅读。因为爱文字爱阅读,我们时时检阅,常常忧心,也自然对阅读本身产生思考。爱读书的人,究