1

我尝试使用 Python 中的脚本通过 AT 命令发送 SMS,首先我正在单独测试 AT 命令,但在我收到的第三个命令中CME ERROR: 11,这是命令列表:

ATZ
OK

AT+CMGF=1
OK

AT+CMGS="phone number"
CME ERROR: 11

我使用的是Windows 10,64位,华为E303插在COM6上。

我发现错误 11 是SIM PIN REQUIRED,但我不知道在执行我的 AT 命令列表期间如何提供该 SIM PIN:

Python脚本的一部分是这样的:

class TextMessage:

    def __init__(self, numero, mensaje,puerto):
        self.numero = numero
        self.mensaje= mensaje
        self.puerto = puerto

    def setRecipient(self, numero):
        self.numero = numero

    def setContent(self, mensaje):
        self.mensaje = mensaje

    def conectar(self):
        self.ser = serial.Serial(self.puerto, 460800, timeout=5)
        time.sleep(1)

    def enviarMensaje(self):
        self.ser.write("ATZ\\r".encode())
        time.sleep(1)
        self.ser.write("AT+CMGF=1\\r".encode())
        time.sleep(1)
        self.ser.write("AT+CMGS=".encode())
        self.ser.write(self.numero.encode())
        self.ser.write("\\r".encode())
        time.sleep(1)
        self.ser.write(self.mensaje.encode())
        self.ser.write("\\r".encode())
        time.sleep(1)
        self.ser.write(chr(26).encode())
        time.sleep(1)

    def desconectar(self):
        self.ser.close()

def EnviarSMS():

    sms = TextMessage("00525528960002", "Mensaje de prueba",puertoAsignado(puerto.get()))
    sms.conectar()
    sms.enviarMensaje()
    sms.desconectar()

    mensajeEmergente = 'Los SMS fueron enviados'
    mensajeVar = tk.Message(ventana, width=140, text=mensajeEmergente)
    mensajeVar.config(bg='lightgreen')
    mensajeVar.grid(row=3, column=0)
4

1 回答 1

0

您可以通过发出以下命令为您的设备提供 PIN 身份验证:

AT+CPIN=<PIN_CODE>

通常默认的 PIN CODE 会写在您购买 SIM 卡时插入的卡中。

警告!确保 PIN 码正确,否则 3 次错误尝试后 PIN 码将被锁定!在这种情况下,仅提供具有相同+CPIN命令的 **PUK 代码* 才能解除阻止。

(在 10 次尝试提供 PUK 码失败后,SIM 将丢失)。

在任何时候,您都可以使用以下读取命令查询 SIM 卡的PIN 状态+CPIN

AT+CPIN?

它最常见的反应是

  1. READY - 设备没有等待任何密码
  2. SIM PIN - 设备正在等待提供 SIM PIN
  3. SIM PUK - 我正在等待提供 SIM PUK
于 2020-03-24T09:25:35.537 回答