找回密码
 立即注册
首页 业界区 安全 ESP32 wifi 串口转发数据 UART micropython

ESP32 wifi 串口转发数据 UART micropython

林鱼 2025-6-7 09:33:29
最近有个项目需要远距离读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地址会打印到窗口, 自己配置就好了.
接受数据部分逻辑我没写, 即注释掉的那部分, 如果有需求的开发者可以自己基于这个文件改就是了.
  1. from machine import UART
  2. import network
  3. import socket
  4. import time
  5. port = 100  #端口号
  6. wlan = None  #wlan
  7. listenSocket = None  #套接字
  8. # 定义UART引脚为GPIO1和GPIO3,波特率为115200
  9. uart = UART(2, baudrate=115200,bits=8,parity=1,rx=2,tx=3,stop=1,timeout=10)
  10. #创建WiFi
  11. def createWifi():   
  12.   global ap
  13.   ap = network.WLAN(network.AP_IF)     #创建接入点界面
  14.   ap.active(True)                      #激活界面
  15.   ap.config(essid='111 ', authmode=network.AUTH_WPA_WPA2_PSK, password='12345678') #设置接入点的ESSID,和WiFi 通道
  16. #   while(ap.ifconfig()[0] == '0.0.0.0'):   #等待连接
  17. #     time.sleep(1)
  18. #   return True
  19. #Catch exceptions,stop program if interrupted accidentally in the 'try'
  20. try:
  21.   createWifi()
  22.   ip = ap.ifconfig()[0]   #获取IP地址
  23.   print(ip)
  24.   listenSocket = socket.socket()   #创建套接字
  25.   listenSocket.bind((ip, port))   #绑定地址和端口号
  26.   listenSocket.listen(1)   #监听套接字
  27.   listenSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)   #设置套接字
  28.   print ('tcp waiting...')
  29.   while True:
  30.     print("accepting.....")
  31.     conn, addr = listenSocket.accept()   #接收连接请求,返回收发数据的套接字对象和客户端地址
  32.     print(addr, "connected")
  33.     while True:
  34. #       data = conn.recv(1024)   #接收数据(1024字节大小)
  35. #       if(len(data) == 0):   #判断客户端是否断开连接
  36. #         print("close socket")
  37. #         conn.close()   #关闭套接字
  38. #         data = uart.read()
  39. #         break
  40.       if uart.any():
  41.         data = uart.read()
  42.       print(data)
  43.       ret = conn.send(data)   #发送数据
  44. except:
  45.   if(listenSocket):   #判断套接字是否为空
  46.     listenSocket.close()   #关闭套接字
复制代码
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册