如何使用USB调制解调器通过Python发送和接收短信?

8 投票
1 回答
17129 浏览
提问于 2025-04-18 02:07

我刚开始学习Python,想找一个库来通过华为的调制解调器发送和接收短信。我试过gammu、pysms和pygsm,但都没能成功。你能给我一些用这些库的代码示例吗?

1 个回答

3

你可以试试这段代码,对我来说是有效的。只需插入你的USB设备,然后找到它的设备节点路径(在Linux系统中可以使用命令lsusb和ls -lha /dev/tty*来查看),然后把/dev/ttyACM0替换成你找到的路径。这样你就能发送短信了。这段代码在我使用华为USB调制解调器时是有效的。

#!/usr/bin/env python
"""
sms.py - Used to send txt messages.
"""
import serial
import time

class TextMessage:
    def __init__(self, recipient="0123456789", message="TextMessage.content not set."):
        self.recipient = recipient
        self.content = message

    def setRecipient(self, number):
        self.recipient = number

    def setContent(self, message):
        self.content = message

    def connectPhone(self):
        self.ser = serial.Serial('/dev/ttyACM0', 460800, timeout=5)
        time.sleep(1)

    def sendMessage(self):
        self.ser.write('ATZ\r')
        time.sleep(1)
        self.ser.write('AT+CMGF=1\r')
        time.sleep(1)
        self.ser.write('''AT+CMGS="''' + self.recipient + '''"\r''')
        time.sleep(1)
        self.ser.write(self.content + "\r")
        time.sleep(1)
        self.ser.write(chr(26))
        time.sleep(1)

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

想了解更多细节,可以查看这个链接这是2014年8月25日的存档链接

撰写回答