从Python发送SMS文本中的AT命令
我需要帮助,关于我用华为3G网卡发送天气预报的代码。
它是可以工作的,但我收到的内容是:
AT+CMGF=1
AT+CMGS="+12345678"
It's partly cloudy and 20C now in Wahren.
为什么我会收到这些AT
字符串呢?
import pywapi
import string
import serial
weather_com_result = pywapi.get_weather_from_weather_com('AGXX0006')
sms_text = "It's " + string.lower(weather_com_result['current_conditions']['text']) + " and " + weather_com_result['current_conditions']['temperature'] + "C now in Wahren.\n\n"
dongle = serial.Serial(port="COM6",baudrate=460800,timeout=0,rtscts=0,xonxoff=0)
def sendatcmd():
number = "+12345678"
dongle.write('AT+CMGF=1\r')
dongle.write('AT+CMGS="' +number+'"\r')
dongle.write(str(sms_text)+"\r")
dongle.write(chr(26))
dongle.close()
print "sent"
sendatcmd()
1 个回答
0
我觉得你可能需要先发送一个 ATE0 命令,这样才能关闭回显功能。否则,每个命令都会被调制解调器重复一遍。
我以前编程过 GSM 调制解调器,但现在没有硬件可以测试。试着在第一个 AT 命令之前插入这个:
dongle.write('ATE0\r')