ESPAsync_WiFiManager 使用指南
1. 项目目录结构及介绍
ESPAsync_WiFiManager 是一个专为 ESP32 及 ESP8266 设计的库,简化了在运行时配置Wi-Fi凭据的过程。该库利用AsyncWebServer来创建一个增强型图形界面的配置门户,并带有自动重连功能等高级特性。下面简要介绍其典型目录结构:
ESPAsync_WiFiManager/
├── examples # 示例代码集合,展示如何使用库的不同功能。
│ ├── Basic # 基础使用示例,展示最简单的配置流程。
│ ├── CustomHTML # 自定义HTML配置页面的示例。
│ └── ...
├── src # 核心源码,包含主库文件如 ESPAsync_WiFiManager.h 和 .cpp 文件。
│ ├── ESPAsync_WiFiManager.cpp
│ └── ESPAsync_WiFiManager.h
├── libraries # 如有依赖的第三方库,可能存放于此。
├── README.md # 项目的主要说明文件,包含快速入门和重要信息。
├── docs # 可能包含的文档或自动生成的API参考。
└── LICENSE # 许可证文件,规定了库的使用条件。
2. 项目的启动文件介绍
在ESPAsync_WiFiManager项目中,主要的启动逻辑通常不在单一的“启动文件”内,而是分散在几个关键的地方。对于开发者来说,重点在于理解如何在自己的sketch(Arduino项目)中引入并初始化这个库。
一个典型的启动过程包括以下几个步骤:
-
主Sketch中的包括语句: 在你的Arduino Sketch顶部分别包含必要的头文件,如
#include <ESPAsync_WiFiManager.h>
。 -
实例化对象: 创建ESPAsync_WiFiManager的对象,可以是默认构造函数或指定Web服务器和DNS服务器的构造函数。例如:
AsyncWebServer webServer(80); AsyncDNSServer dnsServer; ESPAsync_WiFiManager wifiMgr(&webServer, &dnsServer);
-
配置与启动配置门户: 可以设置个性化参数,然后调用
startConfigPortal()
来启动配置门户。如果不提供任何参数,它将使用默认值或之前保存的网络信息。wifiMgr.startConfigPortal();
对于更复杂的配置,你可以设定SSID、密码、是否允许切换到静态IP等。
3. 项目的配置文件介绍
虽然ESPAsync_WiFiManager本身不强调外部配置文件的概念,配置主要是通过代码实现的,但用户可以通过以下方式间接进行“配置”:
-
代码内的硬编码配置:初始化ESPAsync_WiFiManager对象时,可以通过参数设置一些配置选项,比如个性化的热点名称、初始SSID和密码等。
-
非易失性存储(NVS):库利用ESP的非易失性存储来保存连接成功的Wi-Fi凭证和其他配置。这意味着,一旦在一个配置周期内设置了Wi-Fi信息,这些信息将会被保存下来,下次启动时尝试自动连接。
-
额外配置选项:库提供了宏定义和函数调用来控制日志级别、是否显示已存储的凭证等,这些往往在代码的预处理阶段进行配置,例如调整
_ESPASYNC_WIFIMGR_LOGLEVEL_
来控制调试信息的多少。
开发者在使用过程中,还需关注具体的示例代码,因为它们详细展示了如何通过代码片段配置ESPAsync_WiFiManager,达成特定需求,而无需传统意义上的独立配置文件。
- CangjieCommunity为仓颉编程语言开发者打造活跃、开放、高质量的社区环境Markdown00
- redis-sdk仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。Cangjie032
- 每日精选项目🔥🔥 推荐每日行业内最新、增长最快的项目,快速了解行业最新热门项目动态~ 🔥🔥02
- qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workersTSX022
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML07
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript085
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- CommunityCangjie-TPC(Third Party Components)仓颉编程语言三方库社区资源汇总05
- Bbrew🍺 The missing package manager for macOS (or Linux)Ruby01
- byzer-langByzer(以前的 MLSQL):一种用于数据管道、分析和人工智能的低代码开源编程语言。Scala04