いくつかのことをテストするために Arduino で簡単な Web サーバーを作成しようとしていますが、イーサネットを搭載した 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 とシリアル性がめちゃくちゃです。
誰でも私を助けることができますか?