我想在Arduino上编写一个简单的网络服务器来测试一些东西,但是我找不到带有以太网的Arduino。Arduino,python,pyserial和socket
“不用担心”我想,“我只需在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和连续性只是一团糟。
任何人都可以帮助我吗?
最好的设计是将整个事件放入单个事件循环或反应器中。 – Keith