一、官方示例

import network

wlan = network.WLAN(network.STA_IF) # 创建站点接口
wlan.active(True)       # 激活接口
wlan.scan()             # 扫描接入点(wifi)
wlan.isconnected()      # 检查站点是否连接AP
wlan.connect('essid', 'password') # 连接AP(essid为wifi名,password为密码)
wlan.config('mac')      # 获取接口的MAC地址
wlan.ifconfig()         # 获取接口的IP/netmask/gw/DNS地址

这里提到了AP,AP的英文全称是Access Point(无线接入点),它是提供无线接入的设备,家里的光猫就是结合WiFi和internet路由功能的AP。AP和AP之间可以相互连接。

而连接到AP的装置,比如手机、电脑等需要联网的设备都是出于STA模式,STA英文全称是Station(无线终端),这个模式不允许其他设备接入。

二、连接测试

我们可以使用官方示例连接上我们的家庭、公司网络或者手机热点,注意:ESP32不支持5G路由器,所以链接的时候要注意这一点,否则连不上。然后我们可以开始进行连接测试。

这里我们使用Thonny软件和网络调试助手进行测试,网络调试助手的下载链接:NetAssist网络调试助手-软件工具-野人家园

这里我们打开网络调试助手,如图所示:

esp32 无线更新 esp32 wifi连接_esp32 无线更新

然后打开Windows终端,输入ipconfig查看本地主机地址,因为我的电脑安装了虚拟机,连接路由器是使用WIFI连接,所以我在无线网络下的地址。

esp32 无线更新 esp32 wifi连接_字符串_02

然后在网络调试助手中,协议类型选择UDP,本地主机地址选择刚刚查询的地址,再点击打开。

esp32 无线更新 esp32 wifi连接_python_03

然后我们在Thonny软件中依次给ESP32发送如下代码:

from socket import *
# 1. 创建udp套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)
# 2. 准备接收方的地址
dest_addr = ('192.168.37.167', 8080) # 主要这里要输入自己的本地主机地址和端口
# 3. 从键盘获取数据
send_data = "hello world"
# 4. 发送数据到指定的电脑上
udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

输入完成后我们在网络调试助手中就可以看到ESP32发送的字符串“hello world”了

esp32 无线更新 esp32 wifi连接_字符串_04

三、数据接收

我们已经完成了wifi连接的测试,并且成功发送了字符串,现在来接收一个从PC发来的数据。

在Thonny中输入以下代码

recv_daa = udp_socket.recvfrom(1024)

然后我们在网络调试助手中发送数据

esp32 无线更新 esp32 wifi连接_mcu_05

在Thonny中输入recv_daa回车,就可以看到PC发送的数据

esp32 无线更新 esp32 wifi连接_字符串_06

最后可以发送udp_socket.close()关闭关键字