第一步:找到课程,理解整体思路
电脑(发送指令) → 路由器(转发数据) → ESP32(接收并执行)
第二步:一键打开代码,改个WiFi信息就行
# 整体流程# 1. 链接wifi# 2. 启动网络功能(UDP)# 3. 接收网络数据# 4. 处理接收的数据import socketimport timeimport networkimport machinedef do_connect():wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected():print('connecting to network...')wlan.connect('dongfeiqiu', 'wangmingdong1225')i = 1while not wlan.isconnected():print("正在链接...{}".format(i))i += 1time.sleep(1)print('network config:', wlan.ifconfig())def start_udp():# 2. 启动网络功能(UDP)# 2.1. 创建udp套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2.2. 绑定本地信息udp_socket.bind(("0.0.0.0", 7788))return udp_socketdef main():# 1. 链接wifido_connect()# 2. 创建UDPudp_socket = start_udp()# 3. 创建灯对象led = machine.Pin(2, machine.Pin.OUT)# 4. 接收网络数据while True:recv_data, sender_info = udp_socket.recvfrom(1024)print("{}发送{}".format(sender_info, recv_data))recv_data_str = recv_data.decode("utf-8")try:print(recv_data_str)except Exception as ret:print("error:", ret)# 5. 处理接收的数据if recv_data_str == "light on":print("这里是要灯亮的代码...")led.value(1)elif recv_data_str == "light off":print("这里是要灯灭的代码...")led.value(0)if __name__ == "__main__":main()
第三步:保存到开发板,启动服务
正在连接WiFi...正在连接...第1次正在连接...第2次连接成功!IP地址: ('192.168.1.103', '255.255.255.0', ...)
第四步:电脑端准备——打开网络调试助手
注意! 网络调试助手默认的字符编码可能不是UTF-8,需要修改一下,否则中文或特殊字符可能乱码。在软件设置里把字符编码改为 UTF-8。
这个模型能做什么?
|
|
|
|
|---|---|---|
light on |
|
|
light off |
|
|
fan on |
|
|
open |
|
|
read temp |
|
|
全程回顾
|
|
|
|
|---|---|---|
|
找到课程 |
|
|
|
打开代码 |
|
|
|
修改WiFi信息 |
|
|
|
保存到开发板 |
|
|
|
点击运行 |
|
|
|
配置调试工具 |
|
|
|
发送开灯指令 |
light on点击发送
|
|
|
发送关灯指令 |
light off点击发送
|
|
课程体系一览
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|