SIM900A modem built with Dual Band GSM / GPRS based SIM900A modem from SIMCOM. It works at a frequency of 900/1800 MHz. SIM900A can search these two bands automatically. The frequency band can also be set by AT Commands. Baud rate can be configured from 1200-115200 through AT commands. The GSM / GPRS modem has an internal TCP / IP stack to allow you to connect to the internet via GPRS. SIM900A is an ultra-compact and reliable wireless module. It is a complete GSM / GPRS module in the SMT type and is designed with a powerful single-chip processor that integrates the AMR926EJ-S core, enabling you to benefit from small dimensions and cost-effective solutions.
Specification
- Dual-Band 900/ 1800 MHz
- GPRS multi-slot class 10/8GPRS mobile station class B
- Compliant to GSM phase 2/2+
- Dimensions: 24*24*3 mm
- Weight: 3.4g
- Control via AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands)
- Supply voltage range : 5V
- Low power consumption: 1.5mA (sleep mode)
- Operation temperature: -40°C to +85 °
In this tutorial, you will need :
1. GSM SIM900A (MINI V3.9.2)
2. Arduino Uno Board and USB
3. Jumper Wire
4. Power adapter 5V
5. SIM card
6. Breadboard
1. Insert your SIM card into GSM module and lock it. (figures 1 and 2)
2. turn on your gsm by connecting it to Arduino's 5V and GND (figure 3)
3. Connect the Antenna (figure 4)
4. Now wait a while (say 1 minute) and see the blink level of 'status LED' or 'network LED' (D6, refer to figure 5) // GSM module will take long to establish connection with mobile network //
5. Once the connection is established, the status LED / network will blink continuously every 3 seconds.
You can try to make a call to the mobile phone number of the sim card inside the GSM module. If you hear the ringtone on the back, the gsm module has successfully created a network connection.
You can see the TTL pin with 3VR, 3VT, 5Vr, 5VT, VCC and GND on your sim900a near your power supply pin. You should connect 5VT GSM to Arduino D9 and GSM 5VR to Arduino D10 for serial communication between arduino and sim900a modules.
Step 4: Basic AT Command
1. To change sms sending mode : AT+CMGF=1
mySerial.println("AT+CMGF=1");
2. To read SMS in text mode : AT+CNMI=2,2,0,0,0
mySerial.println("AT+CNMI=2,2,0,0,0");
3. To make a call : ATD+60XXXXXXXXX; //replace X with number you want to call, change +60 to your country code
mySerial.println("ATD+60XXXXXXXXX;");
4. To disconnect / hangup call : ATH
mySerial.println("ATH");
5. To redial : ATDL
mySerial.println("ATDL");
6. To receive a phone call : ATA
mySerial.println("ATA");
Step 5: Library
SoftwareSerial is an Arduino library that allows serial data communications via other Arduino digital pins. Libraries replicate hardware functions and handle serial communication tasks. To be able to connect gsm module with arduino, you must download this library and extract it to your Arduino library.
Step 6: Sample Source Code
Download the sample source code below and open it in your Arduino IDE. Choose the correct board and port and upload it to your Arduino Uno Board.
Step 7: Serial Monitor
After you successfully uploaded your source code, open your serial monitor. The serial monitor will be displayed as shown in the picture above.
Step 8: Result : Call / Redial
1. When you enter the c: key to make a call, gsm will read the ATD command and make a call to the phone number you uploaded in your source code. (Figures 1 and 2)
2. When you enter h: to disconnect / close the call, gsm will read ATH command and disconnect. (Figure 3)
3. When you enter e: to redial, gsm will read ATDL command and recall the previously dialed number. (Figure 4)
4. When there is an incoming call, you can see RING printed on the serial monitor and you can click i: to accept the call and the GSM ATA command will be run and you will connect to the call connection. (Figure 5)
Step 9: Result : Send and Receive SMS
1. Key-in s to send SMS. The recipient's text number and message are printed on the serial monitor. NOTE: You can edit the recipient's phone number and text message in your source code.
2. When gsm receives the message, text message and number will be printed on the serial monitor.