【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;允…

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

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

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

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

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;该接口的返回包…

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…

C++类和对象 中(六大默认成员函数)

前言 紧接着上一篇文章&#xff0c;接下来我们来认识下类的六大默认成员函数&#xff0c;如下图。之所以叫他默认成员函数&#xff0c;是因为即使我们不写&#xff0c;编译器会默认帮我们写&#xff0c;但只要我们自己显示的写了&#xff0c;编译器就不会帮我们生成对应的成员函…

第十五届蓝桥杯复盘python大学A组——试题C 数字诗意

思路 数字可以分为 有诗意的数字可以写成 (ij)(j-i1)/2 &#xff08; i、j都是正整数 &#xff09; ij 、j-i1 的奇偶性不同&#xff08;因为i、j都是正整数&#xff09; 因此&#xff0c; 如果一个数是奇数就一定有诗意 eg.312 ,523,734,945… 原因&#xff1a;根据上述分…

114 接口中幂等性的保证

前言 同样是 面试问题 如何确保接口的 幂等性 幂等是一个 较为抽象的概念, 多次重复访问, 不会导致业务逻辑的异常 这里从增删改查, 几个方面列一下 一般来说, 我们核心需要关注的就是 新增 和 更新 对于 增加元素, 首先针对唯一约束进行校验, 然后再处理新增的相关业…

Day09 React———— 第九天

ReactRoter 一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候&#xff0c;path 对应的组件会在页面中进行渲染 基础用法 import { createBrowserRouter, RouterProvider } from "react-router-dom"; const router createBrowserRoute…

AI讲师人工智能讲师大模型培训讲师叶梓:突破大型语言模型推理效率的创新方法

大型语言模型&#xff08;LLM&#xff09;在自然语言处理&#xff08;NLP&#xff09;任务中展现出了前所未有的能力&#xff0c;但它们对计算资源的巨大需求限制了其在资源受限环境中的应用。SparQ Attention算法提出了一种创新的方法&#xff0c;通过减少注意力机制中的内存带…

探索Java世界中的七大排序算法(上)

文章目录 排序的概念直接插入排序希尔排序( 缩小增量排序)选择排序堆排序冒泡排序 在计算机科学中&#xff0c;排序算法是一类重要的算法&#xff0c;它们用于将一组元素按照一定的顺序进行排列。在Java编程中&#xff0c;我们经常需要对数组或集合进行排序操作。本文将介绍Jav…

驱动云创建保存自己的环境

驱动云创建保存自己的环境 制作镜像方法一方法二报错 上一篇link介绍了如何在驱动云上部署llama2以及驱动云在训练大模型的方便之处。也说到了可以直接使用驱动云现有的环境&#xff0c;免得自己配置环境。 但是有的时候免不了自己想要安装一些包。 驱动云的环境是这样的&…

电视音频中应用的音频放大器

电视机声音的产生原理是将电视信号转化为声音&#xff0c;然后通过扬声器将声音播放出来。当我们打开电视并选择频道时&#xff0c;电视机首先从天线或有线电视信号中获取声音信号。声音信号经过放大器放大之后&#xff0c;就能够通过扬声器发出声音。电视机声音的产生原理和音…