4

いくつかのことをテストするために 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 とシリアル性がめちゃくちゃです。

誰でも私を助けることができますか?

4

1 に答える 1

-1

PySerial ドキュメントのtcp_serial_redirect.pyスクリプトを使用します。は、あなたが必要とすることすべてです。

于 2013-03-24T17:03:06.827 に答える