我想在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