Skip to content

WiFi 模块

模块介绍

Wi-Fi 连接管理类,提供简化的 Wi-Fi 连接功能,支持超时控制、重试机制、主机名设置和网络信息获取。适用于需要网络连接的物联网项目。

初始化参数

参数类型默认值说明
ssidstr'stemstaroffice'Wi-Fi 名称(SSID)
passwordstr'ilovestem'Wi-Fi 密码(开放网络则为空字符串)
timeoutint10单次连接等待时间(秒)
retryint1重试次数(默认不重试)
hostnamestrNone本地主机名(可选)

导入和实例创建

python
from wifi import WiFi

# 使用默认配置(连接斯坦星球办公网络)
wifi = WiFi()

# 自定义配置
wifi = WiFi(ssid='your_ssid', password='your_password', timeout=10, retry=1, hostname='mydevice')

核心属性方法

属性或方法参数返回类型说明
ipstr获取分配的 IP 地址
subnetstr获取子网掩码
gatewaystr获取网关地址
dnsstr获取 DNS 服务器地址
local_hostnamestr获取本地主机名(如果设置了 hostname)
is_connectedbool当前是否已连接到 Wi-Fi 网络
connect()bool连接到指定的 Wi-Fi 网络,返回 True/False
disconnect()None断开当前的 Wi-Fi 连接
scan()list类方法:扫描并打印可用的 Wi-Fi 网络列表,返回网络列表

使用示例

基本连接

python
from wifi import WiFi

# 自定义连接配置
wifi = WiFi(ssid='your_ssid', password='your_password', hostname='mydevice')

# 连接 Wi-Fi
success = wifi.connect()
if success:
    print("连接成功!")
else:
    print("连接失败")

获取网络信息

python
from wifi import WiFi

wifi = WiFi(ssid='your_ssid', password='your_password')

if wifi.connect():
    # 获取网络信息
    print(f"IP 地址: {wifi.ip}")
    print(f"子网掩码: {wifi.subnet}")
    print(f"网关地址: {wifi.gateway}")
    print(f"DNS 服务器: {wifi.dns}")
    if wifi.local_hostname:
        print(f"本地主机名: {wifi.local_hostname}")

扫描可用网络

python
from wifi import WiFi

# 扫描可用 Wi-Fi 网络
networks = WiFi.scan()

# 查看扫描结果
for network in networks:
    print(f"SSID: {network['ssid']}, 信号强度: {network['rssi']} dBm")

断开连接

python
from wifi import WiFi

wifi = WiFi(ssid='your_ssid', password='your_password')

# 连接网络
wifi.connect()

# 执行一些网络操作...

# 断开连接
wifi.disconnect()
print(f"是否已断开: {'是' if not wifi.is_connected else '否'}")

注意事项

网络环境

确保设备在 Wi-Fi 信号覆盖范围内,信号强度应在 -80 dBm 以上以获得稳定连接

密码设置

  • 请确保 SSID 和密码正确,区分大小写
  • 开放网络(无密码)请将 password 参数设置为空字符串 ''

连接优化

  • timeout 参数:单次连接等待时间(秒),可根据网络环境调整
  • retry 参数:连接失败后的重试次数,建议根据实际需求设置

主机名使用

设置 hostname 后可通过 hostname.local 访问设备(需网络支持 mDNS 协议)