Python 2.7 使用PyGSM从华为e220发送短信

Python 2.7 使用PyGSM从华为e220发送短信,python-2.7,sms,gsm,modem,Python 2.7,Sms,Gsm,Modem,我正在使用沃达丰上的华为e220调制解调器,以编程方式用python发送和接收txt消息 编辑: 我让它工作了,需要将smsc设置为******。 我需要知道的是,将其设置为此的命令是什么??EG AT+ 如何使用串行。串行模块??? 我的日子不好过 PyGSM是实现这一点的最佳模块吗? 我如何使用它? 我在任何地方都找不到任何文档,但也找不到更好的模块 Daisy13_on_D1="/dev/ttyUSB0" gsm = GsmModem(port=Daisy13_on_D1,baudrat

我正在使用沃达丰上的华为e220调制解调器,以编程方式用python发送和接收txt消息

编辑: 我让它工作了,需要将smsc设置为******。 我需要知道的是,将其设置为此的命令是什么??EG AT+

如何使用串行。串行模块??? 我的日子不好过

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']
Traceback(最近一次调用last):文件“testsmmodule.py”,第5行,在
m、 send('0272923243','This works YO')文件/usr/local/lib/python2.7/dist-packages/sms-0.4-py2.7.egg/sms/__init___;.py),第61行,在send中
self.\u命令('AT+CMGS=“%s”“%number”)文件/usr/local/lib/python2.7/dist-packages/sms-0.4-py2.7.egg/sms/_init_uuuuuu.py),第109行,在u命令中
raise ModemError(结果)sms.ModemError:['\r\n','+CMS错误:330\r\n']

AFAIK实现您所需功能的最佳免费库是SMSLib,它是用Java编写的。准备好修复特定于您的硬件的许多问题,但总的来说,它可以正常工作

有一个名为“”的商业解决方案,您可以从Python通过COM绑定使用它。我自己没有尝试过(当我需要的时候,我已经实现了我自己的解决方案),但是互联网上的人们说它工作正常


恐怕其余的都是垃圾。

短信模块似乎更容易使用:

简而言之,要通过Python中GSM调制解调器的串行接口发送文本:

#!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\u number\u here”,145
。请参见

不幸的是,我已经查看了该库,但我需要它是python的,以便能够维护它。你知道发送它所需的AT+CMGS代码吗?另一个选择是,我只需编写一个android应用程序,然后购买一部android手机,这会比找到python库容易吗?1。这里:问题是,很少有设备支持短信的文本模式。此外,文本模式也有其局限性。很可能您必须以PDU模式发送它们,这更难,尤其是当您必须处理多部分和/或Unicode消息时。2.不知道,对Android没有什么经验。如果你打算用Python实现你自己的解决方案,下面是我在C#中创建相同解决方案时使用的完整文档集:最有用的是ubinetics-at-command-set.pdf-它适用于一些随机设备,但特定设备符合标准,文档很好。好的,谢谢。我会看看那些文档。只是等待他们下载。嗯,你是说我应该用python编写自己的解决方案,还是使用Smslib?取决于你的目标,也取决于你对python和Java语言的经验。如果它向您的朋友发送“圣诞快乐”,定制python解决方案可能会奏效。但是,如果您正在创建一个可靠、健壮和通用的解决方案,IMO使用SMSLib将为您节省大量时间。