我正在尝试以编程方式在python中发送和接收txt消息,在vodafone上使用huawei e220调制解调器。
editedit: 我得到了它的工作,需要将smsc设置为*****。 我需要知道的是,将它设置为什么的命令是什么? EG AT + ????
如何使用serial.Serial模块执行此操作? 我度过了一段艰难的时光。
PyGSM是最好的模块吗? 我该如何使用它? 我无法在任何地方找到任何文档,但我也找不到更好的模块。
Daisy13_on_D1="/dev/ttyUSB0"
gsm = GsmModem(port=Daisy13_on_D1,baudrate=115200,logger=GsmModem.debug_logger).boot()
s = gsm.wait_for_network()
gsm.send_sms(642723243,"Hey, what's up")
给我这个输出
debug Booting
debug Connecting
write 'ATE0\r'
read '\r\n'
read 'OK\r\n'
write 'AT+CMEE=1\r'
read '\r\n'
read 'OK\r\n'
write 'AT+WIND=0\r'
read '\r\n'
read 'COMMAND NOT SUPPORT\r\n'
write 'AT+CMGF=1\r'
read '\r\n'
read 'OK\r\n'
write 'AT+CSQ\r'
read '\r\n'
read '+CSQ: 19,99\r\n'
read '\r\n'
read 'OK\r\n'
write 'AT+CMGS="642723243"\r'
read '\r\n'
read '+CMS ERROR: 330\r\n'
write '\x1b
我现在也试图使用sms0.4模块而没有运气。
import sms
m = sms.Modem("/dev/ttyUSB0")
m.send('64272923243','This works YO')
print m.conn.sent()
结果:
Traceback (most recent call last): File "testSMSMODULE.py", line 5, in <module>
m.send('0272923243','This works YO') File "/usr/local/lib/python2.7/dist-packages/sms-0.4-py2.7.egg/sms/__init__.py", line 61, in send
self._command('AT+CMGS="%s"' % number) File "/usr/local/lib/python2.7/dist-packages/sms-0.4-py2.7.egg/sms/__init__.py", line 109, in _command
raise ModemError(results) sms.ModemError: ['\r\n', '+CMS ERROR: 330\r\n']
答案 0 :(得分:1)
AFAIK是做你想要的最好的免费库,叫做SMSLib,它是用Java编写的。准备好修复特定于您的硬件的许多问题,但一般情况下它可以正常工作。
有一个名为“ActiveXperts Mobile Messaging Toolkit”的商业解决方案,您可以通过COM绑定从Python中使用它。没有尝试过我自己(当我需要的时候,我已经实现了自己的解决方案),但是Internets上的人说它工作正常。
AFAIK剩下的就是垃圾。
答案 1 :(得分:1)
sms
模块似乎更容易使用:
http://pypi.python.org/pypi/sms
简而言之,要通过Python调制解调器的串行接口发送文本:
#!env python
import serial
m = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
m.write('ATZ\r')
m.write('AT+CMGF=1\r\n')
m.write('AT+CMGS="%s"\r\n' % '+phone_number_here')
m.write('this is the text message here')
m.write(chr(26))
m.close()
设置SMSC的AT命令是:AT+CSCA="+smsc_number_here",145
。见http://www.developershome.com/sms/cscaCommand.asp