ESP8266 Wifi to serial モジュールをシリアル to USB コネクタに接続しました。
次の Python スクリプトと設定で ESP8266 に接続できます。
import serial
def echoCommand(cmd,expected_return,halt_on_fail,tOut = timeoutPeriod) :
ser.write(cmd + '\r\n')
if(echo_local_command):
print('Sent --> '+cmd)
if not echoFind(expected_return,tOut) and (halt_on_fail):
print(cmd+" failed")
sys.exit()
def echoFind(expected_return,tOut):
timeoutTime = datetime.datetime.now() + datetime.timedelta(0,tOut)
while datetime.datetime.now() < timeoutTime:
while ser.inWaiting():
ret = ser.readline().rstrip()
print ret
time.sleep(0.1)
if expected_return in ret:
return True
return False
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=5)
echoCommand('AT+RST', 'ready', True)
上記は魅力のように機能しますが、何らかの理由で、 minicom 、 GTKTerm 、 Putty などの端末では同じことができません。(Ubuntu を実行しています。CR と LF を表示する推奨端末はありますか?)
同じボーレートと設定を使用しましたが、うまくいきませんでした。ハードウェアとソフトウェアのフロー制御の切り替えを試み、CR と LF の追加を確認しました。
これがうまくいかない理由はありますか?
minicom を開いて Python スクリプトを実行すると、ESP8266 からの出力が minicom に表示され、問題を示して送信されることに気付きました (スクリプトが失敗すると、minicom が着信メッセージを傍受します)。