当前位置: 首页 > news >正文

桌面小屏幕实战课程: DesktopScreen 12 WiFi AP

飞书文档https://x509p6c8to.feishu.cn/docx/doxcnHiSJiQzVvohPGFv8J0E1ab

源码参考:

/home/kemp/work/esp/esp-idf/examples/wifi/getting_started/softAP

源码下载方式参考:

源码下载方式

AP模式参数设置:

# Wifi AP

CONFIG_ESP_AP_WIFI_SSID="桌面屏幕"

CONFIG_ESP_AP_WIFI_PASSWORD="12345678"

/*  WiFi softAP ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES ORCONDITIONS OF ANY KIND, either express or implied.
*/
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_wifi.h"
#include "esp_event.h"
#include "esp_log.h"
#include "nvs_flash.h"#include "lwip/err.h"
#include "lwip/sys.h"/* The examples use WiFi configuration that you can set via project configuration menu.If you'd rather not, just change the below entries to strings withthe config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid"
*/
#define EXAMPLE_ESP_WIFI_SSID      CONFIG_ESP_AP_WIFI_SSID
#define EXAMPLE_ESP_WIFI_PASS      CONFIG_ESP_AP_WIFI_PASSWORD
#define EXAMPLE_ESP_WIFI_CHANNEL   CONFIG_ESP_AP_WIFI_CHANNEL
#define EXAMPLE_MAX_STA_CONN       CONFIG_ESP_AP_MAX_STA_CONNstatic const char *TAG = "wifi softAP";static uint8_t start_status = 0;//事件回调
static 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_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data;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)
{//初始化netif 事件处理模块ESP_ERROR_CHECK(esp_netif_init());ESP_ERROR_CHECK(esp_event_loop_create_default());esp_netif_create_default_wifi_ap();wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();//初始化wifi模块ESP_ERROR_CHECK(esp_wifi_init(&cfg));//注册回调ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, 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},};if (strlen(EXAMPLE_ESP_WIFI_PASS) == 0) {wifi_config.ap.authmode = WIFI_AUTH_OPEN;}//设置AP模式ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP));ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config));//开启wifiESP_ERROR_CHECK(esp_wifi_start());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);
}void ds_wifi_ap_start(void)
{if(start_status == 0){start_status = 1;ESP_LOGI(TAG, "ESP_WIFI_MODE_AP");wifi_init_softap();}else{ESP_LOGI(TAG, "ESP_WIFI_MODE_AP IS STARTING");}
}void ds_wifi_ap_stop(){if(start_status == 1){start_status = 0;ESP_LOGI(TAG, "ESP_WIFI_MODE_AP STOP");ESP_ERROR_CHECK(esp_wifi_stop() );ESP_ERROR_CHECK(esp_wifi_deinit() );}else{ESP_LOGI(TAG, "ESP_WIFI_MODE_AP IS STOPING");}
}

相关文章:

  • RPC(Remote Procedure Call)技术解析
  • 面试破局:告别流水账,用“故事思维”重塑自我介绍
  • 视频关键帧提取
  • recipes的版本比较老如何更新到新版本?
  • 【计网】期末复习知识总结
  • 基于STM32的智能书房系统的设计
  • 49-有效的字母异位词
  • chili3d笔记23 正交投影3d重建笔记4 点到线2
  • QT实现一个三轴位移台的控制界面
  • WinAppDriver 自动化测试:C#篇
  • Nginx配置文件介绍和基本使用
  • Instagram和facebook广告对比解析
  • unibest+uniapp+vue3+TS+Wot UI分包
  • [特殊字符]推客带货小程序解决方案——0门槛裂变营销,佣金赚不停!
  • 板凳-------Mysql cookbook学习 (十--11)
  • MIT 6.S081—环境配置和初步学习day01(VMware和Ubuntu安装)
  • c++17标准std::filesystem常用函数
  • uni-app的UTS插件开发,调用鸿蒙原生API
  • 网络安全 vs 信息安全的本质解析:数据盾牌与网络防线的辩证关系关系
  • 专线服务器具体是指什么?