在python中获取串行响应数据

问题描述 投票:0回答:1

我一直在使用此代码在我的Raspberry Pi上使用Python发送短信。

How to Send/Receive SMS using AT commands?

import time
import serial

recipient = "+1234567890"
message = "Hello, World!"

phone = serial.Serial("/dev/ttyUSB3",  460800, timeout=5)
    try:
        time.sleep(0.5)
        phone.write(b'ATZ\r')
        time.sleep(0.5)
        phone.write(b'AT+CMGF=1\r')
        time.sleep(0.5)
        phone.write(b'AT+CMGS="' + recipient.encode() + b'"\r')
        time.sleep(0.5)
        phone.write(message.encode() + b"\r")
        time.sleep(0.5)
        phone.write(bytes([26]))
        time.sleep(0.5)
    finally:
        phone.close()

脚本运行时没有错误但没有文本消息到达。我已经在minicom shell中直接运行AT命令,并且文本消息已成功发送。

是否有任何方法可以将python脚本打印出来,以便在发送命令时调制来自调制解调器的响应?例如,如果我发送ATZ,那么打印“OK”会很好。

python serial-port sms
1个回答
0
投票

道歉我在最初的搜索中错过了这个。

Read response AT command with pySerial

串行响应显示为:

response =  ser.read(2)

还有代码

phone.write(bytes([26]))

我能够从IDLE内发送短信,但它不会从命令提示符发送任何内容。为了解决这个问题,我不得不改变它

phone.write('\x1A')
© www.soinside.com 2019 - 2024. All rights reserved.