我正在尝试在 Arduino 上编写一个简单的网络服务器来测试一些东西,但我找不到带有以太网的 Arduino。
“不用担心”我想,“我会用 python 编写一个套接字服务器,充当串行连接的代理”。
import socket
import serial
host = ''
port = 8001
buffSize= 1024
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind((host, port))
serverSocket.listen(1)
ser = serial.Serial('COM3', 115200, timeout=None, dsrdtr =False,rtscts =False,xonxoff =False)
print "Listening..."
send = ""
while 1:
conn, remoteAddr = serverSocket.accept()
print "Connection...."
data = conn.recv(buffSize)
print "Recieved"
ser.write("%s\n"%data)
print "Sent"
print "Attempting to get reply"
while ser.inWaiting()>0:
conn.send( ser.read())
conn.close()
serverSocket.close()
但是,无论我尝试什么,浏览器建立的连接似乎都会随机重置,而且我会得到多行数据。每次连接或断开串行端口时,脚本都会重置 Arduino。我尝试使用 RealTerm 并得到了正确的答案,但 python 和序列性只是一团糟。
谁能帮帮我?
最佳答案
使用 tcp_serial_redirect.py PySerial 文档中的脚本。就是您所需要的。
关于python - Arduino、python、pyserial 和套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734740/