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():passprint('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_socketdef main():do_connect() #让esp32连接到wifiudp_socket=creat_udp_socket() #创建udp socketwhile 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灯!