【ESP32 手机配网教程】

【ESP32 手机配网教程】

  • 1. 前言
  • 2. 先决条件
    • 2.1 环境配置
    • 2.2 所需零件
    • 3.3 硬件连接步骤
  • 3. Web热点手动配网
    • 3.1. 准备工作
    • 3.2. 编译上传程序
    • 3.3. 进行手动配网
  • 4. BLE无线配网
    • 4.1. 准备工作**
    • 4.2. 编译上传程序
    • 4.3. 使用手机APP进行无线配网
  • 5. 总结

1. 前言

欢迎使用ESP32进行WiFi配网!本教程将带领您轻松掌握两种不同的配网方法:一种是通过Web服务器在浏览器中手动输入WiFi信息;另一种则是利用BLE(低功耗蓝牙)进行无线配网。只需按照以下步骤操作,您就能顺利将ESP32连接到家庭WiFi网络,并且下次启动可以自动连接之前连过的wifi。
在这里插入图片描述

2. 先决条件

这一次还是采用Arduino编程就会轻松许多开发。这样就可以愉快进行【ESP32 配网教程】🤣🤣🤣
在继续此项目之前,请确保检查以下先决条件。我们将使用 Arduino IDE 对 ESP32/ESP8266 开发板进行编程,因此在继续本教程之前,请确保已在 Arduino IDE 中安装这些开发板。此外,为了实现ESP32S3与SNR9816TTS模块的串口通信,请确保您已经安装了WebServerWiFi库。💕💕💕

2.1 环境配置

  1. Arduino IDE:下载并安装 Arduino IDE;
  2. ESP32 开发板库:在 Arduino IDE 中添加 ESP32 支持;
    参考博客:【esp32c3配置arduino IDE教程】
    为安装过程留出一些时间,具体时间可能因您的互联网连接而异。

2.2 所需零件

要学习本教程,您需要1个ESP32S3 Sense,或者随便一个esp32。

名称端口功能购买地址
ESP32S3 SenseTXGPIO01 RXGPIO02主控官方地址
中文版 SNR9816TTSTXRX RXTXTTS模块淘宝地址

3.3 硬件连接步骤

目前这是我使用的ESP32S3官方硬件👍👍👍(小小的身材有大大的力量)只需要35元加摄像头麦克风79元,后期我会整理相关专栏进行Arduino系统学习😘😘😘。有需要可以购买xiao开发板💕💕💕,SeeedXIAO ESP32S3 Sense硬件购买地址:https://s.click.taobao.com/lekazrt,ESP32S3 Sense直接连接电脑
在这里插入图片描述

3. Web热点手动配网

Web热点手动配网是通过esp32生成一个热点AP,用户连接后在配网网页中输入要连接的热点信息,检查无误后发送连接,下次启动可以自动连接之前连过的wifi。

3.1. 准备工作

首先,确保您的ESP32开发板已正确连接至电脑,并在Arduino IDE中安装好所需的库(如WiFi.hWebServer.h)。将教程提供的第一份代码复制粘贴到IDE中。

main.c

#include <WiFi.h>
#include <WebServer.h>
#include "smartconfig.h"void setup() {Serial.begin(115200);if (!AutoConfig()) {smartConfig();}
}void loop() {WiFiClient client;const char* host = "www.baidu.com";const int httpPort = 80;Serial.print("Connecting to ");Serial.println(host);if (!client.connect(host, httpPort)) {Serial.println("Connection failed");return;}Serial.println("Connected to server successfully");client.stop();delay(5000);
}

smartconfig.h

#include <WebServer.h>
#include <WiFi.h>
const char *ssid = "ESP32-AP";
const char *password = "";  // 设置为空字符串表示没有密码
WebServer server(2024);void handleRoot() {server.send(200, "text/html", "<h1>ESP32 WiFi配网</h1><p>请输入您的WiFi名称和密码</p><form action='/connect' method='post'><label for='ssid'>WiFi名称:</label><input type='text' id='ssid' name='ssid'><br><label for='password'>WiFi密码:</label><input type='password' id='password' name='password'><br><input type='submit' value='连接'></form>");
}void handleConnect() {String ssid = server.arg("ssid");String password = server.arg("password");if (ssid != "" && password != "") {uint8_t count = 0;WiFi.begin(ssid.c_str(), password.c_str());while (WiFi.status() != WL_CONNECTED) {count++;Serial.println("Connecting to WiFi...");server.send(200, "text/html", "<h1>连接中...</h1><p>请稍候,ESP32 正在连接到您的WiFi网络。</p>");if (count >= 60) {Serial.printf("\r\n-- wifi connect fail! --");server.send(400, "text/html", "<h1>错误</h1><p>请输入WiFi名称和密码。</p>");ESP.restart();  // 执行软件重启}delay(200);}Serial.println("Connected to WiFi");server.send(200, "text/html", "<h1>连接成功</h1><p>请断开网络。</p>");}
}void smartConfig() {// WiFi.mode(WIFI_AP);WiFi.softAP(ssid, password);IPAddress IP = IPAddress(192, 168, 33, 33);IPAddress gateway(192, 168, 33, 1);IPAddress subnet(255, 255, 255, 0);WiFi.softAPConfig(IP, gateway, subnet);server.on("/", HTTP_GET, handleRoot);server.on("/connect", HTTP_POST, handleConnect);server.begin();Serial.println("WiFi热点已启动");while (WiFi.status() != WL_CONNECTED) {server.handleClient();}
}//自动配网函数,成功配对以后设备会记忆密码,通电自动连接
bool AutoConfig() {WiFi.mode(WIFI_AP_STA);WiFi.begin();//如果觉得时间太长可改for (int i = 0; i < 20; i++) {int wstatus = WiFi.status();if (wstatus == WL_CONNECTED) {Serial.println("WIFI SmartConfig Success");Serial.printf("SSID:%s", WiFi.SSID().c_str());Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str());Serial.print("LocalIP:");Serial.print(WiFi.localIP());Serial.print(" ,GateIP:");Serial.println(WiFi.gatewayIP());return true;} else {Serial.print("WIFI AutoConfig Waiting......");Serial.println(wstatus);delay(1000);}}Serial.println("WIFI AutoConfig Faild!");return false;
}

3.2. 编译上传程序

在Arduino IDE中选择正确的ESP32开发板型号和端口,点击“上传”按钮将程序烧录至ESP32。

3.3. 进行手动配网

  • 连接ESP32热点:打开手机或电脑的WiFi设置,找到名为“ESP32-AP”的热点并连接(初始密码通常为空)。

  • 访问配网页面:在浏览器中输入http://192.168.33.33:2024,访问ESP32提供的配网页面。
    在这里插入图片描述

  • 填写WiFi信息:在页面上分别输入您家庭WiFi的名称(SSID)和密码,然后点击“连接”按钮。

  • 确认配网结果:如果配网成功,浏览器将显示“连接成功,请断开网络”。这时,请断开与ESP32热点的连接,让ESP32自动连接到您的家庭WiFi。

注意:wifi和密码不能是中文并且不能太长,合起来不能超过20字符

4. BLE无线配网

BLE无线配网是通过esp32通过开启一个低功耗蓝牙模式,用户采用蓝牙调试app连接后输入要连接的热点信息,检查无误后发送连接,下次启动可以自动连接之前连过的wifi。

4.1. 准备工作**

确保ESP32开发板已连接至电脑,且Arduino IDE已安装所需库(如WiFi.hWebServer.hBLEDevice.h等)。将教程提供的第二份代码复制粘贴到IDE中。

4.2. 编译上传程序

在Arduino IDE中选择正确的ESP32开发板型号和端口,点击“上传”按钮将程序烧录至ESP32。

4.3. 使用手机APP进行无线配网

  • 连接ESP32 BLE设备:打开支持BLE功能的手机,安装并打开一个蓝牙调试的APP(如自开发APP或第三方智能家居APP)。在APP中搜索并连接名为“ESP32 BLE”的设备。
  • 输入WiFi信息:在APP中依次填入您家庭WiFi的名称(SSID)和密码iQOO:12345678,然后点击“发送”或类似按钮,将信息通过BLE发送至ESP32。
  • 确认配网结果:ESP32接收到WiFi信息后,将尝试连接指定的WiFi网络。连接成功后,ESP32会通过BLE发送“ success”消息给APP。
    在这里插入图片描述

5. 总结

🥳🥳🥳现在,我们在本教程中,您已学会如何使用Web服务器手动配网或利用BLE无线配网为ESP32连接家庭WiFi。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣

如果你有任何问题,可以通过下面的二维码加入鹏鹏小分队,期待与你思维的碰撞😘😘😘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python将xml格式文件转成png或者pdf格式

本文主要介绍运行NCCL代码时输出的xml文件该如何转成更加容易观看的图格式 如下是举例&#xff0c;服务器上的PCIE相关的topo xml 文件 <system version"1"><cpu numaid"1" affinity"ffffff00,0000ffff,ff000000" arch"x86_64&q…

Next.js多页布局getLayout使用方法

目录 官网解释 直接上代码使用方法展示 1.page页面​编辑 2._app.js页面,也放在pages中​编辑 效果展示 有getLayout展示getLayout返回的页面布局 无getLayout展示默认布局 官网解释 如果需要多个布局&#xff0c;可以添加一个属性getLayout添加到您的页面&#xff0c;允…

判断任意输入年份是闰年还是普通闰年还是平年

判断任意输入年份是闰年还是普通闰年还是平年 判断输入年份是否为世纪闰年&#xff08;能被100整除但不能被400整除&#xff09;或普通闰年&#xff08;能被4整除但不能被100整除&#xff0c;或者能被400整除&#xff09;。用户输入一个年份后&#xff0c;程序会判断该年份是世…

第五届上海市青少年算法竞赛 T4 夹心饼干(思维、数学)

第四题&#xff1a;T4夹心饼干 标签&#xff1a;思维、数学题意&#xff1a;给定一个数列 a 1 , a 2 , a 3 . . . , a n a_1,a_2,a_3...,a_n a1​,a2​,a3​...,an​&#xff0c;请求出在这个序列中&#xff0c;能挑出多少个三个数 a i , a j , a k a_i,a_j,a_k ai​,aj​,ak​…

Python数据可视化和处理常用库(如Matplotlib、Seaborn)

Python是一种功能强大的编程语言&#xff0c;拥有许多用于数据可视化和处理的常用库。其中&#xff0c;Matplotlib和Seaborn是两个非常受欢迎的库&#xff0c;它们提供了丰富的功能和灵活的绘图选项。下面是一些关于这两个库的博文&#xff0c;可以帮助你更好地了解它们的使用方…

深入理解单实例设计模式:构建高效且可靠的应用

在软件工程领域&#xff0c;单实例&#xff08;Singleton&#xff09;设计模式是一种确保类只有一个实例并提供一个全局访问点的设计模式。这个概念在需要控制访问共享资源或者在整个应用中维护一致状态的场景下特别有用。本文将详细探讨单实例模式的实现、应用及其优缺点。 目…

2024华中杯数学建模挑战赛选题建议及各题思路来啦!

大家好呀&#xff0c;华中杯数学建模开始了&#xff0c;来说一下初步的选题建议吧&#xff1a; 首先定下主基调&#xff0c; 本次华中杯推荐选择C题目。难度方面A&#xff1e;B&#xff1e;C&#xff0c;A是优化类题目&#xff0c;难度较高&#xff0c;建议参考23国赛A优秀论…

【方案探讨】 出现java.io.IOException解决方法

出现java.io.IOException解决方法 解决问题的博客&#xff1a;探索新思路&#xff0c;共同成长 &#x1f331;壹、出现背景贰、排查方向叁、场景复现1、放单个大文件2、修改后端请求其他服务器时间3、多次请求多个文件4、单词请求多个文件 肆、解决方案谢谢您的阅读和支持&…

深入探索:Facebook如何重塑社交互动

在当代社会中&#xff0c;社交互动已成为日常生活的核心组成部分。而在众多的社交媒体平台中&#xff0c;Facebook凭借其卓越的用户基础和创新的功能&#xff0c;已经成为了全球最大的社交媒体平台。本文将深入探讨Facebook如何通过其独特的特性和功能&#xff0c;重塑了人们的…

Elasticsearch:使用向量化和 FFI/madvise 加速 Lucene

作者&#xff1a;来自 Elastic Chris Hegarty 在 Lucene 领域&#xff0c;我们一直热切地采用新版本 Java 的功能。这些功能使 Lucene 更接近 JVM 和底层硬件&#xff0c;从而提高了性能和稳定性。这使得 Lucene 保持现代化和具有竞争力。 Lucene 的下一个主要版本&#xff0…

Springboot+Vue线上教学平台赠送配套文档1w字

SpringbootVue线上教学平台赠送配套文档1w字 项目描述 线上教学平台是一个功能丰富的在线教育工具&#xff0c;它为学生、教师和管理员提供了一个集成的学习、交流和管理环境。以下是关于该平台各项功能的简要介绍&#xff1a; 前台门户&#xff1a;前台门户是平台的门面&#…

实战|哈尔滨等保2.0 Linux主机测评过程之身份鉴别

一、身份鉴别 a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换。 输入 more /etc/shadow,得知系统所有用户&#xff0c;此语句字段格式有九段。 第一字段&#xff1a;用户名&#xff08;也被称为登录名…

jmeter-while控制器用法

condition中添加while结束循环的条件&#xff0c;以下语句的意思是&#xff0c;当percent等于100时&#xff0c;就跳出while循环继续执行 ${__javaScript("${percent}" ! 100)} 举例&#xff0c;以下方法是getPercent为一个引出的异步接口&#xff0c;该接口的返回包…

java如何实现rabbitmq的消息确认机制和消息持久化机制配置和示例

在Java中&#xff0c;使用RabbitMQ的客户端库&#xff08;通常是AMQP客户端库&#xff0c;如RabbitMQ的Java客户端&#xff09;可以方便地实现消息确认机制和消息持久化机制。以下是如何实现这两个机制的示例。 1、消息确认机制 RabbitMQ支持两种类型的确认&#xff1a;生产者…

Python编程小例子—石头、剪子、布游戏

random库的应用—石头、剪子、布游戏 Random标准库的用法 在Python中&#xff0c;random是一个标准库&#xff0c;提供了生成随机数的功能。以下是一些常见用法&#xff1a; 生成随机整数: import random# 生成指定范围内的随机整数 random_int random.randint(1, 100)生成…

HiveSql中的函数家族(二)

一、窗口函数 1、什么是窗口函数 在 SQL 中&#xff0c;窗口函数&#xff08;Window Functions&#xff09;是一种特殊的函数&#xff0c;它允许在查询结果集的特定窗口&#xff08;通常是一组行&#xff09;上执行聚合、分析和计算操作&#xff0c;而无需聚合整个结果集。窗口…

FTP客户端Transmit 5 for Mac中文激活版

Transmit 5是一款功能强大的Mac FTP客户端软件&#xff0c;它由Panic公司开发&#xff0c;为用户提供简单、高效的文件传输体验。 Transmit 5 for Mac中文激活版下载 Transmit 5支持多种传输协议&#xff0c;如FTP、SFTP、WebDAV和Amazon S3等&#xff0c;满足用户不同的文件传…

【公司UI自动化学习】

公司课程链接&#xff1a;https://l.jd.com/student/project/project.du?project_id697509403 公司的课程&#xff0c;是给一个学习方向。 一、 PC自动化 1&#xff09;什么项目适合 2&#xff09;PC自动化介入时间点 3&#xff09;自动化率&#xff1a; 频繁改动的&…

不需要GPU就可以玩转模型,同时支持本地化部署

简单一款不需要GPU就可以在Win 机器跑的模型&#xff1a;Ollama&#xff1b;用于本地运行和部署大型语言模型&#xff08;LLMs&#xff09;的开源工具 关于Ollama的简要介绍 平台兼容性&#xff1a;Ollama支持多种操作系统&#xff0c;包括macOS、Linux和Windows&#xff0c;…

华为手机无法弹出wifi上网认证页面处理

华为手机无法弹出wifi上网认证页面 连wifi后跳到上图界面卡住&#xff0c;不跳转到单位的上网认证界面。 打开手机的设置应用&#xff0c;点击上面的WLAN选项。 点击上面的更多WLAN设置选项。 关闭WLAN安全检测就可以正常弹出上网认证界面&#xff0c; 正常弹出上网认证界面&a…