私のPythonコードがうまく動作するのにいくつかの問題があります。私はSIM900モジュールを取り付けたRpi2を持っています。私は電話をかけたり、電話を受けたり、SMSを送っても、SMSを受け取ったりすることができます。しかし、すべてをまとめることは私に頭痛を与えている。私は何度もgoogleをスクロールしていますが、今でも結果はすべて同じであることがわかりますので、私はさらに0点になっています。SMSを受信し、SIM900でATコマンドを使用して電話をかける
私のアジェンダは、SimModuleにSMSを送信することです。これまでのところそのSMSの
例私が得た
RV -> make call to cell no: 49
RI -> make call to cell no: 48
MV -> make call to cell no: 47
MI -> make call to cell no: 46
:SMSが承認されたリストから電話番号から到着すると、それが特定の番号に電話をかけるだろう特定のコードが含まれているかどうPythonは、着信のSMSのを読んでいました私は
AT+CMGL="ALL"
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+30000000000","","17/08/27,23:28:51+08"
RV
+CMGL: 2,"REC READ","+30000000000","","17/08/28,00:34:12+08"
RI
OK
(下記参照)私はSMSを読むことができ
import serial
import time
import sys
class sim900(object):
def __init__(self):
self.open()
def open(self):
self.ser = serial.Serial('/dev/ttyAMA0', 115200, timeout=5)
def SendCommand(self,command, getline=True):
self.ser.write(command)
data = ''
if getline:
data=self.ReadLine()
return data
def ReadLine(self):
data = self.ser.readline()
# print data
return data
def GetAllSMS(self):
self.ser.flushInput()
self.ser.flushOutput()
command = 'AT+CMGL=\"ALL\"\r'#gets incoming sms that has not been read
print self.SendCommand(command,getline=True)
data = self.ser.readall()
print data
self.ser.close()
def Call49(self):
self.ser = serial.Serial('/dev/ttyAMA0', 115200, timeout=5)
self.ser.write('ATD49;\r')
time.sleep(1)
time.sleep(1)
self.ser.write(chr(26))
# responce = ser.read(50)
self.ser.close()
print "calling"
def Call48(self):
self.ser = serial.Serial('/dev/ttyAMA0', 115200, timeout=5)
self.ser.write('ATD48;\r')
time.sleep(1)
self.ser.write(chr(26))
# responce = ser.read(50)
self.ser.close()
print "calling"
h = sim900()
h.GetAllSMS()
次のコードを使用してSMSを読むことができます
SMSの「def GetAllSMS」の電話番号+30000000000が「def Call48」を実行するテキストRVと一緒に存在する場合、どのように機能を追加することができますか?「def Call47」を実行するRIの場合
助けに感謝します。 Tnxを事前に入力してください。
HI私は多分私の質問を正しく言い直さなかったかもしれません。 + CMGL:2、 "REC READ"、 "+ 30000000000"、 ""、 "17/08/28,00:34:12 + 08"を読み取る必要があります RI SMSには+30000000000が含まれ、RIのpythonはATD0000001の電話番号に電話をかけます。 SMSに+30000000000が含まれていて、RV pythonがATD0000002の電話番号に電話をかける場合。 など。 SMSのRI、RV、MI、MV、電話番号+30000000000の基準が満たされていない場合は、何もしないでください。 – user3343073
混乱のために申し訳ありませんが、SMSの文字列を探し出す代わりに間違った場所に着手しました。 – user3343073
うん、あなたは、その機能を使ってメッセージリストを取得し、あなたがそれらと一緒にしたい何でもするでしょう。わかりやすくするために、ユースケースの回答を更新しました。 – 9dogs