pico w通过network模块实现wifi的连接功能,然后通过socket模块实现TCP/UDP的服务。
network模块
通过wifi连接的代码如下:
import network
import time
ssid = '505'
password = '75057505'
nic = network.WLAN(network.STA_IF)
nic.active(True) #使能WLAN模块
nic.connect(ssid,password) #连接wifi
while nic.isconnected() != True: #判断是否连接成功
print('.')
time.sleep(1)
print(nic.ifconfig()) #输出ip地址
上面代码的network.WLAN类,是MicroPython提供的内置wifi模块控制类。提供了多个方法连接和设置WIFI,可以参考下面的链接。
class WLAN – control built-in WiFi interfaces — MicroPython latest documentation
socket模块
WiFi连接成功后,就可以调用socket模块实现TCP/UDP服务,下面的例子是建立一个TCP服务器,绑定在80端口,等待连接,当收到"led=1"时点亮板载的LED,当收到"led=0"时熄灭板载的LED。代码如下:
import socket
from machine import Pin
pin = Pin("LED",Pin.OUT)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('',80))
s.listen()
print("wait connecting ...")
while True:
conn,addr = s.accept()
print("from {}".format(addr))
while True:
data = conn.recv(1024)
if not data:
break
info = data.decode()
print(f'recv:{info}')
if info.find('led=1') != -1:
pin.value(1)
elif info.find('led=0') != -1:
pin.value(0)
conn.send(f'recv:{info}'.encode())
conn.close()
s.close
socket模块见链接:socket – socket module — MicroPython latest documentation