ESP32S3 链接到 WiFi

news2025/4/12 23:05:42

以下是关于如何让 ESP32S3 连接到 WiFi 的完整流程和代码示例:

ESP32S3 链接到 WiFi

1. 设置工作模式

ESP32 可以工作在两种模式下:

  1. Station (STA) 模式:作为无线终端连接到无线接入点(AP),类似于手机或电脑。
  2. Access Point (AP) 模式:作为无线接入点,允许其他设备连接到它。

在本例中,我们将使用 Station 模式,让 ESP32 连接到无线路由器。

2. 查看官方文档

官方文档提供了详细的 WiFi 连接方法,文档地址:
Quick reference for the ESP32 — MicroPython latest documentation

3. SSID 和 BSSID
  • SSID:无线路由器的名称(手机上搜索到的 WiFi 名字)。
  • BSSID:无线路由器的 MAC 地址。
  • ESSID:与 SSID 类似,但可以有多个无线路由器共享同一个 ESSID。
4. 链接 WiFi 路由器

以下是官方提供的 WiFi 连接代码示例:

import network

# 创建 Station 模式的 WLAN 接口
wlan = network.WLAN(network.STA_IF)

# 激活接口
wlan.active(True)

# 扫描可用的无线接入点
print("Available networks:", wlan.scan())

# 连接到指定的 WiFi
wlan.connect('your_wifi_ssid', 'your_wifi_password')

# 等待连接成功
while not wlan.isconnected():
    pass

# 打印连接状态和 IP 地址
print('Connected to WiFi!')
print('Network config:', wlan.ifconfig())

注意

  • 当前的 ESP32S3 不支持 5G 路由器,建议使用 2.4G 路由器或手机热点。
  • 如果连接失败,请检查 WiFi 名称和密码是否正确。
5. 测试网络连接

连接成功后,可以使用网络调试助手或简单的 UDP 示例代码测试网络连接。

5.1 网络调试助手

下载地址:
网络调试助手

5.2 UDP 示例代码

以下是一个简单的 UDP 客户端代码,用于测试网络连接:

from socket import *

# 创建 UDP 套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 设置目标地址(替换为你的目标 IP 和端口)
dest_addr = ('目标 IP 地址', 8080)

# 从键盘获取要发送的数据
send_data = "Hello from ESP32!"

# 发送数据
udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

# 关闭套接字
udp_socket.close()
6. 调试和注意事项
  • 检查 WiFi 名称和密码:确保输入的 SSID 和密码正确。
  • 检查路由器支持的频段:ESP32S3 不支持 5G 路由器,建议使用 2.4G。
  • 查看 IP 地址:连接成功后,可以通过 wlan.ifconfig() 查看 ESP32S3的 IP 地址。
  • 网络调试助手:使用网络调试助手可以快速验证网络连接是否正常。

通过以上步骤,你可以成功让 ESP32S3 连接到 WiFi 并进行网络通信。如果需要更复杂的网络功能(如 HTTP 请求或 TCP 通信),可以参考 MicroPython 的官方文档或相关教程。

完整代码:

import network
import time
from socket import *

# 创建 Station 模式的 WLAN 接口
wlan = network.WLAN(network.STA_IF)

# 激活接口
wlan.active(True)

# 扫描可用的无线接入点
print("Available networks:", wlan.scan())

# 连接到指定的 WiFi
wlan.connect('CMCC-imYC', 'xkq6jrnd')

# 等待连接成功
while not wlan.isconnected():
    print('.',end = '')
    pass

# 打印连接状态和 IP 地址
print('Connected to WiFi!')
print('Network config:', wlan.ifconfig())

# 创建 UDP 套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 设置目标地址(替换为你的目标 IP 和端口)
dest_addr = ('192.168.1.28', 8080)

# 从键盘获取要发送的数据
send_data = "Hello from ESP32!"

# 发送数据
while True:
    time.sleep(0.5)  # 等待0.5秒
    udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

# 关闭套接字
udp_socket.close()

在这里插入图片描述

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

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

相关文章

2024年博客之星的省域空间分布展示-以全网Top300为例

目录 前言 一、2024博客之星 1、所有排名数据 2、空间属性管理 二、数据抓取与处理 1、相关业务表的设计 2、数据抓取处理 3、空间查询分析实践 三、数据成果挖掘 1、省域分布解读 2、技术开发活跃 四、总结 前言 2024年博客之星的评选活动已经过去了一个月&#xf…

蓝桥赛前复习2:一维差分二维差分

一维差分 问题描述 给定一个长度为 nn 的序列 aa。 再给定 mm 组操作,每次操作给定 33 个正整数 l,r,dl,r,d,表示对 al∼ral∼r​ 中的所有数增加 dd。 最终输出操作结束后的序列 aa。 Update:由于评测机过快,n,mn,m 于 2024…

算法---子序列[动态规划解决](最长递增子序列)

最长递增子序列 子序列包含子数组&#xff01; 说白了&#xff0c;要用到双层循环&#xff01; 用双层循环中的dp[i]和dp[j]把所有子序列情况考虑到位 class Solution { public:int lengthOfLIS(vector<int>& nums) {vector<int> dp(nums.size(),1);for(int i …

100道C#高频经典面试题带解析答案——全面C#知识点总结

100道C#高频经典面试题带解析答案 以下是100道C#高频经典面试题及其详细解析&#xff0c;涵盖基础语法、面向对象编程、集合、异步编程、LINQ等多个方面&#xff0c;旨在帮助初学者和有经验的开发者全面准备C#相关面试。 &#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSD…

MQTT的构成、使用场景、工作原理介绍

一、MQTT内容简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议【适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境】它在物联网应用中广受欢迎&#xff0c;能够实现传感器、执行器和其它设备之间的…

Vanna + qwq32b 实现 text2SQL

Vanna 是一个开源的 Text-2-SQL 框架&#xff0c;主要用于通过自然语言生成 SQL 查询&#xff0c;它基于 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;技术。Vanna 的核心功能是通过训练一个模型&#xff08;基于数据库的元数据和用户提…

电脑知识 | TCP通俗易懂详解 <一>

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f68d;什么是TCP/TCP协议 三、&#x1f9cd;‍♂为什么TCP可靠 1.&#x1f970;关于可靠 2.&#x1f920;哪里可靠 3.&#x1f393;️图片的三次握手&#xff0c;四次挥手 4.&#x1f4da;️知识点总结 四、&…

精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip

精品推荐-最新大模型MCP核心架构及最佳实践资料合集&#xff0c;共18份。 1、2025年程序员必学技能&#xff1a;大模型MCP核心技术.pdf 2、MCP 架构设计剖析&#xff1a;从 Service Mesh 演进到 Agentic Mesh.pdf 3、MCP 架构设计深度剖析&#xff1a;使用 Spring AI MCP 四步…

Linux 线程:从零构建多线程应用:系统化解析线程API与底层设计逻辑

线程 线程的概述 在之前&#xff0c;我们常把进程定义为 程序执行的实例&#xff0c;实际不然&#xff0c;进程实际上只是维护应用程序的各种资源&#xff0c;并不执行什么。真正执行具体任务的是线程。 那为什么之前直接执行a.out的时候&#xff0c;没有这种感受呢&#xf…

VMware虚拟机Ubuntu磁盘扩容

VMware中操作&#xff1a; 选择要扩容的虚拟机&#xff0c;点击编辑虚拟机设置 打开后点击磁盘——>点击扩展&#xff08;注意&#xff1a;如果想要扩容的话需要删除快照&#xff09; 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…

游戏引擎学习第217天

运行游戏并在 FreeVariableGroup 中遇到我们的断言 其实在美国&#xff0c;某些特定的小糖果&#xff08;例如小糖蛋&#xff09;只在圣诞节和复活节期间出售&#xff0c;导致有些人像我一样在这段时间吃得过多&#xff0c;进而增加体重。虽然这种情况每年都会发生&#xff0c…

Day 8 上篇:深入理解 Linux 驱动模型中的平台驱动与总线驱动

B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 总线驱动模型实战全解析 —— 以 PCA9450 PMIC 为例 敬请关注&#xff0c;记得标为原始粉丝。 在 Linux 内核驱动模型中&#xff0c;设备与驱动的组织方式不是随意堆砌&#xff0c;而是基于清晰的分类…

全新突破 | 更全面 · 更安全 · 更灵活

xFile 高可用存储网关 2.0 重磅推出&#xff0c;新增多空间隔离功能从根源上防止数据冲突&#xff0c;保障各业务数据的安全性与独立性。同时支持 NFS、CIFS、FTP 等多种主流文件协议&#xff0c;无需繁琐的数据拷贝转换&#xff0c;即可与现有系统无缝对接&#xff0c;降低集成…

T-Box车载系统介绍及其应用

定义 T-Box汽车系统&#xff0c;全称为Telematics - BOX&#xff0c;也常简称为车载T - BOX&#xff0c;是汽车智能系统及车联网系统中的核心组成部分&#xff0c;是安装在车辆上的一种高科技远程信息处理器。 工作原理 T-Box的核心功能主要通过MPU和MCU实现。MPU负责应用程序功…

SQLyog使用教程

准备工作 链接本地数据库 准备 1&#xff1a;安装mySQL数据库 2&#xff1a;安装SQLyong 连接本地数据库 打开SQLyong应用&#xff0c;将会出现下面的页面 点击新建&#xff0c;输入链接名 输入密码&#xff0c;点击 连接 按钮 如果出现连接错误&#xff0c;且错误号为2058…

for循环的优化方式、循环的种类、使用及平替方案。

本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。 作者:任聪聪 日期:2025年4月11日 一、循环的种类 1.1 默认有以下类型 原始 for 循环 for(i = 0;i<10;i++){…

使用 Python 扫描 Windows 下的 Wi-Fi 网络实例演示

使用 Python 扫描 Windows 下的 Wi-Fi 网络 代码实现代码解析 1. 导入库2. 解码混合编码3. 扫描 Wi-Fi 网络4. 运行函数 这是我当前电脑的 wifi 连接界面。 这个是运行的效果图&#xff1a; 代码实现 我们使用了 Python 的 subprocess 模块来调用 Windows 的内置命令 netsh…

python manimgl数学动画演示_微积分_线性代数原理_ubuntu安装问题[已解决]

1.背景 最近调研python opencv, cuda加速矩阵/向量运算, 对于矩阵的线性变换, 秩, 转秩, 行列式变化等概概念模糊不清. 大概课本依旧是天书, 于是上B站搜索线性代数, 看到 3Blue1Brown 线性变换本质 视频, 点击观看. 惊为天人 --> 豁然开朗 --> 突然顿悟 --> 开心不已…

用matplotlib生成一个炫酷的爱心

下面是结合数学方程和可视化技巧&#xff0c;生成一个炫酷的爱心效果&#xff1a; import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation # 创建画布 fig plt.figure(figsize(8, 8)) ax plt.axes(xlim(-2.5, 2.5), ylim(-3,…

【leetcode hot 100 300】最长递增子序列

错误解法&#xff1a;在每次更新db[i]时&#xff0c;如果当前nums[i]>nums[i-1]就db[i-1]1&#xff0c;否则db[i-1] class Solution {public int lengthOfLIS(int[] nums) {int n nums.length;int[] db new int[n]; // db[i]表示到i的最长严格递增子序列的长度db[0] 1;f…