1
votes

Following URL will be appear my GSM module and it is included data sheet of the SIM900 module.

http://www.pennybuying.com/gsm-gprs-module-sim900-development-board-lbs-mms-support-arduino-uno-ttl-rs232.html

I have connected only RX,TX,GND and PWR pin between GSM module and Arduino mega board. Sending a SMS is work properly but receiving SMS is doesn't work.

This is the Arduino Code of sending sms - (Reference - http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/)

#include <SoftwareSerial.h>
SoftwareSerial SIM900(15,14);

char incoming_char=0;

void setup()
{
  Serial.begin(19200); // for serial monitor
  SIM900.begin(19200); // for GSM shield
  SIM900power();  // turn on shield
  delay(20000);  // 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()
{
  // Now we simply display any text that the GSM shield sends out on the serial monitor
  Serial.println("loop");
  if(SIM900.available() > 0)
  {
     Serial.print("waiting");
    incoming_char=SIM900.read(); //Get the character from the cellular serial port.
    Serial.print(incoming_char); //Print the incoming character to the terminal.
    while(1){};
  }

}
1

1 Answers

0
votes

Try to add SIM900.print("AT+CMGD=1,4\r"); in your setup(). I faced similar problems and the reason was that sim-card memory for messages is full.

You wont get any messages or notification if there is no space in sim memory!

So your setuo loop would look like this

void setup()
{
    Serial.begin(19200); // for serial monitor
    SIM900.begin(19200); // for GSM shield
    SIM900power();  // turn on shield
    delay(20000);  // give time to log on to network.

    SIM900.print("AT+CMGF=1\r");  // set SMS mode to text
    delay(100);
    SIM900.print("AT+CMGD=1,4\r");  // Deletes all SMS saved in SIM memory
    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);
}