Jetson Nano(Linux実行)とRS485-USBコンバータの間に通信の問題があります。この問題を解決するために助けを求めています。詳細は次のとおりです。
私はRX / TXケーブル付きZE03センサーとQinHeng Electronics CH340シリアルコンバーターを使用しています。センサーがうまく機能していることを確認しました。私の開発環境はJupyter NotebookとPython 3.10で構成されています。
私が経験している問題は、LinuxでUSB接続が確立され、ポートが開いても通信が行われないことです。
これは私が使ったコードです。
import serial
import time
SERIAL_PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600
# Initialize the serial port
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
# Set sensor mode as Q&A
ser.write(b'\xFF\x01\x78\x04\x00\x00\x00\x00\x83') # Command to request gas data
time.sleep(0.1)
response1 = ser.read(9) # Read response data
print(response1)
ser.write(b'\xFF\x01\x86\x00\x00\x00\x00\x00\x79') # Command to request gas data
time.sleep(0.1)
response2 = ser.read(9) # Read response data
print(response2)
ser.close()
私が受け取る出力は次のとおりです。
b' '
b' '
私は何の答えも受け取りませんでした。また、Jetson NanoでUART 8ピンと10ピンを使用してセンサーを接続してみましたが、同じ問題に直面しました。
追加のデバッグのためにシリアルポート設定を修正して再試行しました。
SERIAL_PORT = '/dev/ttyTHS1' # Just changed the port
BAUD_RATE = 9600
# Initialize the serial port
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
# Set sensor mode as Q&A
ser.write(b'\xFF\x01\x78\x04\x00\x00\x00\x00\x83') # Command to request gas data
time.sleep(0.1)
response1 = ser.read(9) # Read response data
print(response1)
ser.write(b'\xFF\x01\x86\x00\x00\x00\x00\x00\x79') # Command to request gas data
time.sleep(0.1)
response2 = ser.read(9) # Read response data
print(response2)
ser.close()
私が受け取る出力は次のとおりです。
b'\xffx\x01\x00\x00\x00\x00\x00\x87'
b'\xff\x86\x00\x0b\x02\x00\x00\x00m'
インターネットからドライバファイルをダウンロードし、正しくインストールされていることを確認しました。rules.d
フォルダにドライバファイルを追加したため、問題は権限の問題に関連しているようには見えません。
ドライバ関連の問題があるかどうかを確認するために、次のコマンドを実行しました。
dmesg | grep ch341
出力結果によると、USBはJetson Nanoによって検出され、ドライバが問題の原因ではないようです。
端末に書き込むとき
ls -l /dev/ttyUSB0
出力は次のとおりです
crw-rw-rw- 1 root dialout 188, 0 7월 6 10:22 /dev/ttyUSB0
このコミュニケーション問題の解決にご協力いただきありがとうございます。ありがとうございます!