Ber*_*ger 0 ubuntu serial-port arduino wifi iot
我已将ESP8266 Wifi连接到串行模块到串口转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)
Run Code Online (Sandbox Code Playgroud)
上面的工作就像一个魅力,但由于某种原因,我不能在像minicom,GTKTerm,Putty这样的终端中做同样的事情.(运行Ubuntu.任何建议的终端都会显示CR和LF?)
我使用相同的波特率和设置,但没有运气.我试图切换硬件和软件流量控制并检查要添加的CR和LF.
任何想法为什么这不起作用?
我注意到如果我打开minicom,然后运行Python脚本,ESP8266的输出会以minicom显示并发送问题.(脚本失败导致minicom拦截传入的消息)
对......我找到了解决这个问题的方法.问题是ESP8266在每个AT命令响应后需要CR + LF.
要使用Putty执行此操作,您需要按Ctrl + M和Ctrl + J手动插入CR + LF.作为替代方案,可以使用Arduino IDE - 串行窗口,因为它允许您自动添加CR + LF.(Arduino IDE也适用于大多数操作系统)
归档时间: |
|
查看次数: |
4137 次 |
最近记录: |