从python发送的SMS文本中的AT命令

时间:2014-04-09 13:51:41

标签: python at-command pyserial

我需要帮助我用一段代码通过短信发送天线预报和华为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 :(得分:0)

我认为你可能需要先发送一个ATE0命令才能关闭echo,否则每个命令都会被调制解调器回显。

我曾经编程GSM调制解调器,但现在没有任何硬件可以测试它。尝试在第一个AT命令之前插入它:

dongle.write('ATE0\r')