network- 网络配置
2022-11-18
该模块提供网络驱动程序和路由配置。要使用此模块,必须烧录具有网络功能的MicroPython固件版本。
此模块中提供了特定硬件的网络驱动程序,用于配置硬件网络接口。然后,可以通过 usocket
模块使用已配置接口提供的网络服务。
构建对象
class: WLAN(interface_id)
创建WLAN对象。
interface_id
network.STA_IF
客户端,连接到上游WiFi接入点。network.AP_IF
接入点,允许其他WiFi客户端连接。
方法
WLAN.active(is_active)
带有参数时,为是否激活,不带参数为查询当前状态。当激活WiFi功能后,功耗会增加。当不使用WiFi功能可使用 active
来真正关闭物理层的无线。
is_active
True
激活(“up”)网络接口。False
停用(“down”)网络接口。
WLAN.scan([ssid,bssid,channel,RSSI,authmode,hidden])
扫描可用的无线网络(仅在STA接口上进行扫描),返回有关WiFi接入点信息的元组列表。
ssid
服务集标识。bssid
接入点的硬件地址,以二进制形式返回为字节对象。您可以使用ubinascii.hexlify()将其转换为ASCII格式。authmode
AUTH_OPEN
= 0AUTH_WEP
= 1AUTH_WPA_PSK
= 2AUTH_WPA2_PSK
= 3AUTH_WPA_WPA2_PSK
= 4AUTH_MAX
= 6
hidden
False
可见True
隐藏
WLAN.isconnected()
检查站点是否连接到AP。
- 在STA模式下,如果连接到WiFi接入点并具有有效的IP地址则返回True,否则返回False。
- 在AP模式下,当站点连接时返回True,否则返回False。
WLAN.connect(ssid, password)
连接到无线网络。
ssid
:WiFi名称password
:WiFi密码
WLAN.config(essid, channel)
获取接口的MAC adddress或者设置WiFi接入点名称和WiFi通道。
ssid
:WiFi账户名channel
:WiFi通道
WLAN.ifconfig([(ip, subnet, gateway, dns)])
不带参数时,返回一个4元组(ip, subnet_mask, gateway, DNS_server)。
ip
:IP地址subnet_mask
:子网掩码gateway
:网关DNS_server
:DNS服务器
带参数时,配置静态IP。例如:
wlan.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
WLAN.disconnect()
断开与当前连接的无线网络的连接。
WLAN.status()
返回无线连接的当前状态。
示例
作为客户端连接WiFi:
import network
SSID = "yourSSID" #WiFi名称
PASSWORD = "yourPASSWD" #WiFi密码
wlan = network.WLAN(network.STA_IF) #创建WLAN对象
wlan.active(True) #激活界面
wlan.scan() #扫描接入点
wlan.isconnected() #检查站点是否连接到AP
wlan.connect(SSID, PASSWORD) #连接到AP
wlan.config('mac') #获取接口的MAC adddress
wlan.ifconfig() #获取接口的IP/netmask/gw/DNS地址
作为接入开启WiFi:
import network
ap = network.WLAN(network.AP_IF) #创建接入点界面
ap.active(True) #激活界面
ap.config(essid='ESP-AP',channel=1) #设置接入点的ESSID,和WiFi 通道
WiFi连接实例:
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('SSID', 'PASSWORD') #连接到AP
#'SSID': WiFi账号名
#'PASSWORD':WiFi密码
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig())