ESP32使用UDP连接到匿名助手并发送数据
ESP32使用UDP连接到匿名助手并发送数据
环境准备
代码参考如下:
# 整体流程
# 1. 链接wifi
# 2. 启动网络功能(UDP)
# 3. 接收网络数据
# 4. 处理接收的数据
import socket
import time
import network
import machine
def do_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('lhc', '12345678')
i = 1
while not wlan.isconnected():
print("正在链接...{}".format(i))
i += 1
time.sleep(1)
print('network config:', wlan.ifconfig())
def start_udp():
# 2. 启动网络功能(UDP)
# 获取设备的IP地址
ip_address = network.WLAN(network.STA_IF).ifconfig()[0]
# 2.1. 创建udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2.2. 绑定本地信息
udp_socket.bind((ip_address, 7788))
return udp_socket
def send_data():
target_ip = "192.168.128.118" # 目标设备的IP地址
target_port = 7789 # 目标设备的UDP端口
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
message = input("Enter message: ")
udp_socket.sendto(message.encode("utf-8"), (target_ip, target_port))
MAX_PACKET_SIZE = 1024
def main():
# 1. 链接wifi
do_connect()
# 2. 发送数据到上位机
while True:
send_data()
if __name__ == "__main__":
main()
代码需要注意的事项
修改局域网热点IP和密码
在do_connect函数中,wlan.connect(‘lhc’, ‘12345678’)中的热点名称和密码进行修改。
修改目标设备的ip地址和端口
在send_data函数中的
target_ip = "192.168.128.118" # 目标设备的IP地址
target_port = 7789 # 目标设备的UDP端口
目标设备的ip就是电脑的IP地址(电脑要和ESP在同一个局域网中),电脑IP可以通过cmd命令ipconfig查看。
目标设备端口任意,可以填7789,不和电脑其他设备用的冲突即可,一般可以直接无脑用。
匿名助手的配置
修改本地端口为我们刚刚在send_data函数中写的目标设备的UDP端口即可。
实验现象
在Thonny控制台输入任意字符:
匿名助手中显示如下结果:
至此,实验结束。