Python3 シリアルポートでATコマンドを使う

centos7 上で、Python3 でシリアルポートのモデム(実際はUSBポートに接続した Omron ME5614U2)へATコマンドを実行

デバイスの確認
/dev で ls
Omron ME5614U2 をUSBポートへ差し込んだら認識してました
/dev/ttyACM0 ←これ

pyserialのインストール
# pip install pyserial
とか
# pip3 install pyserial

python3コード
import serial ser = serial.Serial('/dev/ttyACM0', baudrate=9600, timeout=3) ser.write(b"AT\r") print(modem.readline().decode(encoding='utf-8')) print(modem.readline().decode(encoding='utf-8')) ser.close()
※python3からバイト列でやり取りするようになっているので、変換が必要です

readline ではなく read を使用した場合、引数の timeout は、read() で指定するサイズ(16byte)に到達しなくても、readが発生する時間(sec)です。read に貯まっているサイズを取得する inWaiting() を監視して、都度取得することも可能です

コメント