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

2 投票
1 回答
3046 浏览
提问于 2025-04-18 02:02

我需要帮助,关于我用华为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')

撰写回答