2016-04-08 13 views
1

私はarduinoとgsmモジュールsim900を持っている、私はメッセージを受信するときに番号を取得したい。どうすればC++言語のコマンドや関数があるのでしょうか?ありがとうarduinoとgsmモジュールsim900メッセージの電話番号を取得する方法は?

SoftwareSerial SIM900(7, 8); 

void setup() 
{ 

SIM900.begin(19200); // for GSM shield 
SIM900power(); // turn on shield 
delay(10000); // give time to log on to network. 

SIM900.print("AT+CMGF=1\r"); // set SMS mode to text 
delay(100); 
SIM900.print("AT+CNMI=2,2,0,0,0\r"); 
// blurt out contents of new SMS upon receipt to the GSM shield's serial out 
delay(100); 
} 

void SIM900power() 
// software equivalent of pressing the GSM shield "power" button 
{ 
digitalWrite(9, HIGH); 
delay(1000); 
digitalWrite(9, LOW); 
delay(7000); 
} 

void loop() 
{ 

if (SIM900.available() > 0) // if there's Message 
    { 
    inchar = SIM900.read(); //Get the character from the cellular serial port. 
    // command or function for get the phone number from message 
    } 
} 

答えて

0

たとえば、モデムで直接再生して、USBシリアルポートに出力してみてください。 4がIDです

+CMTI: "SM",4 

...:

シングは、新しいメッセージがあるとき、あなたはこのように見て、モデムからいくつかのバイトを取得します、です。その後、モデムAT+CMGR=44は以前からのIDである)に送信することができますし、このような応答を取得します:

+CMGR: "REC UNREAD","+123456789",,"15/04/22,13:22:11+32" 
Yay, a nice text message! 

OK 

最後の部分が失敗した場合は、あなたが最初にSMを読むためにモデムに指示する必要がある場合がありますAT+CPMS="SM"を使用します。

詳細については、http://www.developershome.com/sms/cmgrCommand2.asp

を参照してください。