2015-12-08 12 views
2

Я использую модуль arduino Nano и Sim900. Я хочу, когда сообщение будет получено, Arduino ответит "thanks" отправителю. Моего сообщения получить код функции:Ответ на сообщение отправителю с помощью модуля Arduino Nano и Sim900

void recieveSms(){ 
    Serial.print("\r"); 
    delay(1000); 
    Serial.print("AT+CMGF=1\r");   
    delay(1000);     
    Serial.print("AT+CSCS=\"GSM\"\r"); 
    delay(1000);     
    Serial.print("AT+CNMI=2,1\r");// set new message remind   
    delay(1000); 
    Serial.print("AT+CMGR=2\r"); // read message at position 2 
    delay(1000); 
    Serial.print("AT+CMGD=2\r"); // delete SMS at position 2 
    delay(1000); 
} 

, который работает, но как я могу получить номер отправителя из сообщения?

ответ

1

Его прост в использовании GSM Library, который поставляется вместе с arduino IDE.

GSM-библиотека входит в состав Arduino IDE 1.0.4 и более поздних версий.

Используя этот libarray использовать remoteNumber()

Вот пример кода на странице документации

#include <GSM.h> 

// PIN Number 
#define PINNUMBER "" 

// initialize the library instance 
GSM gsmAccess; // include a 'true' parameter for debug enabled 
GSM_SMS sms; 

char remoteNumber[20]; // Holds the emitting number 

void setup() 
{ 
    // initialize serial communications 
    Serial.begin(9600); 

    Serial.println("SMS Messages Receiver"); 

    // connection state 
    boolean notConnected = true; 

    // Start GSM shield 
    // If your SIM has PIN, pass it as a parameter of begin() in quotes 
    while(notConnected) 
    { 
     if(gsmAccess.begin(PINNUMBER)==GSM_READY) 
      notConnected = false; 
     else 
     { 
      Serial.println("Not connected"); 
      delay(1000); 
     } 
    } 

    Serial.println("GSM initialized"); 
    Serial.println("Waiting for messages"); 
} 

void loop() 
{ 
    char c; 

    // If there are any SMSs available() 
    if (sms.available()) 
    { 
     Serial.println("Message received from:"); 

     // Get remote number 
     sms.remoteNumber(remoteNumber, 20); 
     Serial.println(remoteNumber); 

     // This is just an example of message disposal  
     // Messages starting with # should be discarded 
     if(sms.peek()=='#') 
     { 
      Serial.println("Discarded SMS"); 
      sms.flush(); 
     } 

     // Read message bytes and print them 
     while(c=sms.read()) 
      Serial.print(c); 

     Serial.println("\nEND OF MESSAGE"); 

     // delete message from modem memory 
     sms.flush(); 
     Serial.println("MESSAGE DELETED"); 
    } 

    delay(1000); 

} 
+0

это решение не работают для библиотеки me.by гсм Я не могу отправить messge.why? Я подключенный Rx от sim900 до tx от Arduino nano и tx от sim900 до rx от Arduino Nano. – Sadeq

+0

Я очень ищу об этом решении. Я думаю, что этот пример работает только с Arduino GSM Shield, но у меня нет It.I есть модуль Sim900. – Sadeq

+0

просто подключите контакты, которые используются для серийного программного обеспечения для подключения к вашему SIm900 rx tx. – dmSherazi