-
福利一海量deepseek资料包(持续更新)
-
福利二ComfyUI工作流&模型&插件
-
福利三AI工具集合包以及AI绘画解决方案
Wi-Fi是基于IEEE 802.11标准的无线网络技术 让联网设备以无线电波的形式,加入采用TCP/IP通信协议的网络
Wi-Fi网络环境通常有两种设备
BSSID
就是无线路由器的MAC地址(本质是一个MAC地址)SSID
就是手机上搜索到的wifi名字(本质是一串字符)ESSID
是一个比较抽象的概念,它实际上就和ssid相同(本质也是一串字符)。如果有好几个无线路由器都叫这个名字,那么我们就相当于把这个ssid扩大了,所以这几个无线路由器共同的这个名字就叫ESSID# 导入 network 模块
import network
# 创建 WIFI 连接对象
wlan = network.WLAN(network.STA_IF)
# 激活 wlan 接口。True 是激活,False 关闭
wlan.active(True)
# 扫描允许访问的 SSID
wlan.scan()
# 检查设备是否已经连接成功
wlan.isconnected()
# WIFI 连接,ssid 是账号,password 是密码
wlan.connect('ssid', 'key')
# 获取接口的 mac 地址,也就是物理地址
wlan.config('mac')
# 获取接口的 IP、子网掩码(netmask)、网关(gw)、DNS 地址
wlan.ifconfig()
热点模式允许用户将自己的ESP32配置为热点,这让多个 ESP32 芯片之间的无线连接在不借助外部路由器网络的情况下成为可能。
import network
ap = network.WLAN(network.AP_IF) # 创建一个热点
ap.active(True) # 激活热点
ap.config(essid='ESP32') # 为热点配置essid(即热点名称)
运行之后,我们就可以使用电脑在 WiFi 列表中找到 ESP32 热点。
更多的情况下,我们会想要将 ESP32 连接到 WiFi 网络。因此,我们的代码可以这么写:
import time
import network
# 设置路由器 WiFi 账号与密码
ssid = '要连接的 Wifi 名'
password = 'Wifi 密码'
# 创建 WIFI 连接对象
wlan = network.WLAN(network.STA_IF)
# 激活 wlan 接口
wlan.active(True)
# 扫描允许访问的 WiFi
print('扫描周围信号源:', wlan.scan())
print("正在连接 WiFi 中", end="")
#
wlan.connect(ssid, password)
# 如果一直没有连接成功,则每隔 0.1s 在命令号中打印一个 .
while not wlan.isconnected():
print(".", end="")
time.sleep(0.1)
# 连接成功之后,打印出 IP、子网掩码(netmask)、网关(gw)、DNS 地址
print(f"\n{wlan.ifconfig()}")
我们对以上代码稍作改动,将其封装为一个函数,并把 WIFI 名字和密码改为 wifi_connect 的参数,并把代码放置在 MicroPython 设备中的 common
目录下的 wifi.py
中,代码如下:
# common/wifi.py
import time
import network
def wifi_connect(ssid, password):
# 创建 WIFI 连接对象
wlan = network.WLAN(network.STA_IF)
# 激活 wlan 接口
wlan.active(True)
# 断开之前的链接
wlan.disconnect()
# 扫描允许访问的 WiFi
print('扫描周围信号源:', wlan.scan())
print("正在连接 WiFi 中", end="")
# 连接 wifi
wlan.connect(ssid, password)
# 如果一直没有连接成功,则每隔 0.1s 在命令号中打印一个 .
while not wlan.isconnected():
print(".", end="")
time.sleep(0.1)
# 连接成功之后,打印出 IP、子网掩码(netmask)、网关(gw)、DNS 地址
print(f"\n{wlan.ifconfig()}")
如果我们想要实现他的开机自启动,你需要在 MicroPython 设备的根目录下,创建一个 main.py 文件,并写入以下代码:
# main.py
from common.wifi import wifi_connect
# 连接 wifi
wifi_connect('ssid', 'password')
如果上述代码放到 boot.py 中也是可以执行的。boot.py
是开机最先执行的文件,最后会由它加载 main.py。main.py
文件开机会被 boot.py 文件引导,可以将自己的代码放在里面。boot.py 文件里面可以声明包含自己要用到的模块,里面可以定制自己开机程序(也就是在运行 main.py 文件前的程序),但是官方建议该文件里面的程序越小越好。