林鱼 发表于 2025-6-7 09:33:29

ESP32 wifi 串口转发数据 UART micropython

最近有个项目需要远距离读uart 串口打印出来的数据, 但是淘宝的调试助手太贵了, 开源平台找了圈也许是因为功能太简单, 好像没怎么找到或者说连接配置的方式很麻烦,
所以我花了半天时间写了一个.
如果有同样需求的小白可以直接用这个程序跑
本方案主要是 把esp32配置成AP模式. 并且通过TCP/UDP 调试助手连接 ESP32的 wifi, 然后输入对应的地址和端口即可在调试助手上显示了.
我查到了两个能用的:
window端:
https://gitee.com/TsingFon/NetDebugger
安卓端:
 https://www.pgyer.com/FSHP
 
socket相关文档:
http://wiki.1zlab.deepsenserobot.com/wiki/micropython-esp32/sockets/
 
基于micropython 直接把下面的代码运行就能用其实,
ap地址会打印到窗口, 自己配置就好了.
接受数据部分逻辑我没写, 即注释掉的那部分, 如果有需求的开发者可以自己基于这个文件改就是了.
from machine import UART
import network
import socket
import time

port = 100#端口号
wlan = None#wlan
listenSocket = None#套接字

# 定义UART引脚为GPIO1和GPIO3,波特率为115200
uart = UART(2, baudrate=115200,bits=8,parity=1,rx=2,tx=3,stop=1,timeout=10)
#创建WiFi
def createWifi():   
global ap
ap = network.WLAN(network.AP_IF)   #创建接入点界面
ap.active(True)                      #激活界面
ap.config(essid='111 ', authmode=network.AUTH_WPA_WPA2_PSK, password='12345678') #设置接入点的ESSID,和WiFi 通道
#   while(ap.ifconfig() == '0.0.0.0'):   #等待连接
#   time.sleep(1)
#   return True

#Catch exceptions,stop program if interrupted accidentally in the 'try'
try:
createWifi()
ip = ap.ifconfig()   #获取IP地址
print(ip)
listenSocket = socket.socket()   #创建套接字
listenSocket.bind((ip, port))   #绑定地址和端口号
listenSocket.listen(1)   #监听套接字
listenSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)   #设置套接字
print ('tcp waiting...')

while True:
    print("accepting.....")
    conn, addr = listenSocket.accept()   #接收连接请求,返回收发数据的套接字对象和客户端地址
    print(addr, "connected")

    while True:
#       data = conn.recv(1024)   #接收数据(1024字节大小)
#       if(len(data) == 0):   #判断客户端是否断开连接
#         print("close socket")
#         conn.close()   #关闭套接字
#         data = uart.read()
#         break
      if uart.any():
      data = uart.read()
      print(data)
      ret = conn.send(data)   #发送数据
except:
if(listenSocket):   #判断套接字是否为空
    listenSocket.close()   #关闭套接字 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: ESP32 wifi 串口转发数据 UART micropython