入门MicroPython+ESP32:ESP32链接WIFI全攻略
在科技飞速发展的今天,物联网设备越来越普及。MicroPython与ESP32的组合为物联网开发提供了便捷的途径。本文将详细介绍ESP32如何连接WIFI,帮助大家更好地入门相关开发。
一、设置工作模式
Wi-Fi
是基于 IEEE 802.11
标准的无线网络技术,它能让联网设备以无线电波的形式,加入采用 TCP/IP
通信协议的网络。Wi-Fi
网络环境通常有两种设备:
- Access Point(
AP
):无线接入点,是提供无线接入的设备。家里的光猫就是结合WiFi和internet路由功能的AP,而且AP和AP之间可以相互连接。 - Station(
STA
):无线终端,是连接到AP的装置。像手机、电脑等需要联网的设备都是处于STA模式,不过这个模式不允许其他设备接入。
二、查看官方文档
官方文档是我们学习的重要参考资料。文档地址为:http://docs.micropython.org/en/latest/esp32/quickref.html
三、SSID相关概念
在连接WIFI之前,我们需要了解几个重要概念:
- BSSID:就是无线路由器的MAC地址(本质是一个MAC地址)。
- SSID:就是手机上搜索到的wifi名字(本质是一串字符)。
- ESSID:是一个比较抽象的概念,它实际上和ssid相同(本质也是一串字符)。如果有好几个无线路由器都叫这个名字,那么我们就相当于把这个ssid扩大了,所以这几个无线路由器共同的这个名字就叫ESSID。
打个比方:
- SSID就好比是每个连锁店的门口招牌上写的字(例如:阿迪达斯)。
- ESSID就是连锁店的牌子(例如:阿迪达斯)。
- BSSID就是每个连锁店的地址(比如万达广场店,襄阳路店)。
连锁店的品牌名与写到招牌上的名就相当于ESSID和SSID。
四、链接WIFI路由器
官方给出了连接WIFI的示例代码:
import networkwlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(True) # activate the interface
wlan.scan() # scan for access points
wlan.isconnected() # check if the station is connected to an AP
wlan.connect('essid', 'password') # connect to an AP
wlan.config('mac') # get the interface's MAC address
wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses
我们需要将 essid
修改为 WiFi
的账号,password
修改为 WiFi
的密码。为了更直观地看到网络是否连接,我们可以用手机开热点进行测试。
注意:当前的 ESP32
不支持 5G
路由器,所以连接的时候要注意这一点,否则连不上。可以将自己的手机开热点让 ESP32
连接,并且热点需要设置为2.4频段G的。
五、测试
1. 工具下载
网络调试助手下载地址:https://doc.itprojects.cn/A0001.micropython.esp32/02.download/05.software/NetAssist5.0.8.zip
2. 学习资料
Python网络开发课件地址(不会网络编程的同学,建议先看,了解什么是socket、udp、tcp、ip等等):https://doc.itprojects.cn/0001.zhishi/python.0006.networkprogram/index.html
3. 测试代码
import socket
import network
import time# 连接到Wi-Fi网络
def connect_wifi(ssid, password):wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected():wlan.connect(ssid, password)while not wlan.isconnected():time.sleep(1) # 等待连接print("Wi-Fi连接成功")# 发送UDP消息
def send_udp_message(udp_socket, dest_ip, dest_port, message):udp_socket.sendto(message.encode('utf-8'), (dest_ip, dest_port))print(f"消息 '{message}' 已发送到 {dest_ip}:{dest_port}")# 主程序
if __name__ == "__main__":# 配置Wi-Fi和目标地址connect_wifi('haohuadianzi', 'wangmingdong1225') # 替换Wi-Fi名称和密码dest_ip = '192.168.0.115'dest_port = 8080# 创建UDP套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)send_data = "hello world"send_udp_message(udp_socket, dest_ip, dest_port, send_data)time.sleep(1) # 控制发送间隔# 5. 关闭套接字udp_socket.close()
4. 注意事项
5. 网络调试注释选择
更多学习内容可参考:https://www.itprojects.cn/study/detail/47.html?chapter=9
通过以上步骤,大家就可以让ESP32成功连接WIFI,开启MicroPython+ESP32的开发之旅啦!希望本文对大家有所帮助。