GSM900 Module With Arduino Mega


Before reading this article, I highly recommend reading my previous articles:

In this article I'll show you how can we use the GSM900 module using the Arduino Mega GSM-Global System For Mobile. The GSM Module supports communication in 900MHZ band. In India most of the mobile network providers operate in 900MHZ band. In the majority of the United States the band width provider is around (850-1900MHZ).

  • Arduino Mega
  • Bread Board
  • GSM900 Module
  • Led
  • Some Jumper Wires

                                             Figure 1: Arduino Mega

                                    Figure 2: Bread Board

Checking GSM module before we use

Step 1:
Connect the Adapter to the GSM and Turn it ON.

Step 2:
Insert the sim card to GSM Module.

Step 3: W
ait for some seconds and see the blinking rate of status LED once the connection is established the led will blink continously every three seconds.

  • RX Pin to Arduino Mega 15
  • TX Pin to Atduino Mega 16
  • Gnd to Gnd
  • Led Anode Pin to 13
  • Cathode Pin to Gnd
  1. #include<SoftwareSerial.h>    
  2. SoftwareSerial firstSerial(15,16);  RX/TX  
  3. int led=13;  
  4. void setup()    
  5. {    
  6.   pinMode(led,OUTPUT);  
  7.   firstSerial.begin(9600);    
  8.   Serial.begin(9600);    
  9.   delay(100);    
  10. }    
  11. void loop()    
  12. {    
  13.   if(Serial.available()>0)  
  14.   digitalWrite(led,HIGH);    
  15.   switch(;    
  16. }    
  17. void sndmsg()    
  18. {    
  19.   firstSerial.println("AT+CMGF=1");    
  20.   delay(1000);    
  21.   firstSerial.println("AT+CMGS=\"+xxxxxxxxxx\"\r");  //Enter Your Mobile Number instead XXXX while Testing  
  22.   delay(1000);    
  23.   firstSerial.println("Hello C# Corner Iam Sending SMS Through GSM");    
  24.   delay(100);    
  25.   firstSerial.println((char)23);    
  26.   delay(1000);    
  27. }    

We start with softwareserial.h library in to the program in the next line create the constructor for the serial port such as RX and the TX. In the Arduino Mega board 15 pin act as RX pin and 16 pin act as the TX pin while using the Arduino Uno "0" pin as TX "1st" pin as RX .void setup() In the setup() function we want to set the baud rate for the GSM because we want to communicate with the device to the Serial Monitor so we want to set the BaudRate as (9600) and set the delay time as 1000 i,e 1Sec and Now let's move to actual program void loop() is the one type of the condition function based upon our condition our GSM will work first we check the availablity of the serial ports.

  1. if(Serial.available()>0)    
To check the any data that are coming to the serial port of the Arduino if it is available means the led will be on, else it will not be on

It reads all data available on the serial buffer.

And let's move to the function called void sndmsg():

It is the one type of the function we created in the Arduino Mega to send the SMS. First we want to set the GSM to the text mode; this can done through the "AT" commands AT means Attention we can send the sms through the serial port while writing ("AT+CMGF") and ("AT+CMGS=\"XXXXXXXXXX"\"\r") and set some delay time then upload the program to the Arduino mega board and open the serial monitor windows type "Hello C# Corner Iam Sending SMS Through GSM" and click send button. The SMS will send to the concert mobile number that you have been given in the code.
  1. firstSerial.println("AT+CMGF=1");      
  2.   delay(1000);      
  3.   firstSerial.println("AT+CMGS=\"+xxxxxxxxxx\"\r");    
  4.   delay(1000);      
  5.   firstSerial.println("Hello C# Corner Iam Sending SMS Through GSM");      
  6.   delay(100);      
  7.   firstSerial.println((char)23);      
  8.   delay(1000);   
AT Command

AT Command is used to check the connection between the module and the computer.

The Command is used to set the sms mode.

("AT+CMGF=<mode>" )

The Command is used to send the sms from module to the device.


Types of the "AT" Commands:

                                             Figure 3: AT Commands Classification

It is used to check whether the command is supported to Modem or Not.

AT<Command name>=?

Read: The Read Command is used to get the mobile phone number.

AT<Command name>?

Set: The Set command is used to modify the mobile phone settings.

AT<Command name>=value1...value N

Execution command

The execution command are used to make an some operation.

AT<Command name>=parameter1,....parameterN

Some Commonly used AT Commands for SMS Text Mode are:

AT Command SMS Text Mode
AT+CMGS Send Message
AT+CMGR Read Message
AT+CMGD Delete Message
AT+CMGL List Message
AT+CSAS Save Settings
AT+CRES Restore Settings

"AT" Commands used in the following services:

  • SMS Service
  • MMS Service
  • Fax Service
  • Information and configuration pertaining to mobile device.
  • Data and voice link communication over to the mobile network.
Read more articles on Internet of Things: