ESP32S3 链接到 WiFi

以下是关于如何让 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 连接代码示例:

python 复制代码
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 客户端代码,用于测试网络连接:

python 复制代码
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 的官方文档或相关教程。

完整代码:

python 复制代码
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()
相关推荐
DIY机器人工房3 小时前
【科普】STM32CubeMX是配置工具,STM32CubeIDE是集成开发环境,二者互补但定位不同,前者负责初始化配置,后者专注代码开发调试。
单片机·嵌入式硬件·嵌入式·diy机器人工房
努力做小白4 小时前
Linux驱动20 --- FFMPEG视频API
linux·驱动开发·单片机·嵌入式硬件·ffmpeg·lvgl
得单片机的运12 小时前
STM32的蓝牙通讯(HAL库)
stm32·单片机·嵌入式硬件·蓝牙
weixin_4526006914 小时前
GC8872刷式直流电机驱动器详解:3.6A驱动能力与PWM控制
stm32·单片机·嵌入式硬件·智能家居·音响·电动工具
Despacito0o17 小时前
STM32 I2C通信完整教程:从协议原理到硬件实现
stm32·单片机·嵌入式硬件
你好,奋斗者!17 小时前
小电流驱动大电流:原理、实现方式与应用前景
stm32·单片机·嵌入式硬件·电路设计
XINVRY-FPGA21 小时前
XCZU4EV-1FBVB900E Xilinx FPGA AMD Zynq UltraScale+ MPSoC EV(Embedded Vision)
arm开发·嵌入式硬件·计算机视觉·fpga开发·硬件架构·硬件工程·fpga
猫猫的小茶馆21 小时前
【STM32】FreeRTOS 任务的删除(三)
java·linux·stm32·单片机·嵌入式硬件·mcu·51单片机
学不动CV了21 小时前
单片机ADC采集机理层面详细分析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·开源·51单片机
学不动CV了21 小时前
51核和ARM核单片机OTA实战解析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·51单片机