1.思路梳理
首先需要让ESP32连接上WIFI
然后创建udp socket
接着接收udp数据
最后解析数据,控制LED
2.代码实现
import network
from socket import *
from machine import Pin
p2=Pin(2,Pin.OUT)
def do_connect(): #连接wifi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('lig', '152601') //这里填你自己的wifi名称和密码
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig()) //打印出网络相关信息,第一个信息很重要
def creat_udp_socket():
udp_socket=socket(AF_INET,SOCK_DGRAM)
udp_socket.bind(("0.0.0.0",7788)) #绑定一个固定的端口
return udp_socket
def main():
do_connect() #让esp32连接到wifi
udp_socket=creat_udp_socket() #创建udp socket
while True: #接收udp数据
recv_data,send_info=udp_socket.recvfrom(1024) #最大收取1024个字节
print("{}发送的数据,{}".format(send_info,recv_data))
recv_data_str=recv_data.decode("utf-8") #解码
print("解码后的数据{}".format(recv_data_str)) #打印解码后的数据
if recv_data_str=="light on": #解析数据 控制LED灯
p2.value(1)
elif recv_data_str=="light off":
p2.value(0)
if __name__=='__main__':
main()
print('network config:', wlan.ifconfig())打印的信息为一个元组,里面有四个元素,第一个是ESP32的IP地址,这个比较重要,待会要填在网络调试助手中!
3.实操演示
运行程序后打开网络调试助手
可以看到试验现象:
成功使用PC控制LED灯!