【发布时间】:2016-07-01 13:29:01
【问题描述】:
我在 rpi2 上创建了这个 python 脚本,消息通过,但它是一条空白消息。是编码问题吗?
import serial
import time
from sys import version_info
from curses import ascii
phone = serial.Serial("/dev/ttyAMA0", 115200, timeout=0.5)
def send_text(number,message):
phone.write(b'AT+CMGF=1\r')
phone.write(b'AT+CMGS="' + number.encode() + b'"\r')
phone.write(message.encode())
phone.write(ascii.ctrl('z'))
for i in range(len(reply)):
reply[i] = reply[i].rstrip()
print reply
AT 命令(其中 0000000000 是 10 位数的手机号码) 在 Minicom 中,仍然是空白消息
minicom -D /dev/ttyAMA0 -b 115200 -o
AT
OK
AT+CMGS="0000000000"
>Hello
<ctrl-z>
+CMGS: 14
OK
【问题讨论】:
-
您使用
\r正确终止了AT 命令行,很好。但是您应该永远不要使用睡眠来代替等待来自调制解调器的最终结果代码。有关详细信息,请参阅this answer。如果不解决这个问题,您将永远无法让您的任何 AT 命令代码可靠地运行。 -
谢谢!我会修复那个代码!虽然上面的问题已经被这个 AT 命令解决了
AT+CSMP=17,167,0,0
标签: python raspberry-pi gsm at-command