ESP32 wifi 串口转发数据 UART micropython

cnblogs 2024-07-03 13:45:00 阅读 58

最近有个项目需要远距离读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.0'): #等待连接

# time.sleep(1)

# return True

#Catch exceptions,stop program if interrupted accidentally in the 'try'

try:

createWifi()

ip = ap.ifconfig()[0] #获取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() #关闭套接字



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。