몇 가지를 테스트하기 위해 Arduino에서 간단한 웹 서버를 작성하려고하지만 이더넷으로 내 Arduino를 찾을 수 없습니다.Arduino, python, pyserial and socket
"걱정하지 마라."필자는 "직렬 연결을위한 프록시 역할을하는 소켓 서버를 파이썬으로 작성합니다"라고 생각했습니다.
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을 사용해 보았고 적절한 답을 얻었지만 파이썬과 연속성은 엉망이다.
아무도 도와 줄 수 있습니까?
최선의 설계는 모든 것을 단일 이벤트 루프 또는 반응기에 넣는 것입니다. – Keith