The GSM Shield Sim900 is a versatile module designed to enable microcontrollers to connect to mobile networks. It supports functionalities such as sending and receiving SMS, making voice calls, and accessing the internet via GPRS. This shield is based on the Sim900 GSM module and is compatible with a wide range of microcontrollers, including Arduino boards. Its compact design and robust features make it ideal for IoT applications, remote monitoring, and mobile communication projects.
Below are the key technical details of the GSM Shield Sim900:
Parameter | Specification |
---|---|
Operating Voltage | 5V (via Arduino) or 7-12V (external power) |
Communication Interface | UART (TX, RX) |
Frequency Bands | Quad-band: 850/900/1800/1900 MHz |
GPRS Connectivity | Class 10 |
SMS Support | Text and PDU modes |
Voice Call Support | Full-duplex |
Power Consumption | Idle: ~10mA, Active: ~250mA, Peak: ~2A |
Antenna | External antenna required |
Dimensions | ~80mm x 55mm |
The GSM Shield Sim900 connects to a microcontroller via its pin headers. Below is the pin configuration:
Pin | Description |
---|---|
TX | Transmit data (connect to RX of MCU) |
RX | Receive data (connect to TX of MCU) |
GND | Ground |
VCC | Power input (5V or external 7-12V) |
D7 | Power key (used to turn the module ON/OFF) |
D8 | Status indicator (HIGH when module is ON) |
D9 | Reset pin (optional, for hardware reset) |
Powering the Shield:
Connecting to a Microcontroller:
Turning ON the Module:
Sending AT Commands:
Below is an example of how to send an SMS using the GSM Shield Sim900 with an Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial gsmSerial(7, 8); // RX = 7, TX = 8
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
gsmSerial.begin(9600); // For GSM module communication
Serial.println("Initializing GSM module...");
delay(1000);
// Send AT command to check communication
gsmSerial.println("AT");
delay(1000);
if (gsmSerial.available()) {
Serial.println("GSM module is ready.");
} else {
Serial.println("No response from GSM module.");
}
// Send SMS
sendSMS("+1234567890", "Hello from GSM Shield Sim900!");
}
void loop() {
// Nothing to do here
}
void sendSMS(String phoneNumber, String message) {
gsmSerial.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
gsmSerial.print("AT+CMGS=\"");
gsmSerial.print(phoneNumber);
gsmSerial.println("\""); // Set recipient phone number
delay(1000);
gsmSerial.print(message); // Write the SMS content
delay(1000);
gsmSerial.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
Module Not Responding to AT Commands:
Frequent Module Resets:
No Network Signal:
SMS Not Sending:
Q: Can the GSM Shield Sim900 be used for internet access?
A: Yes, the shield supports GPRS for internet access. You can use AT commands like AT+SAPBR
to configure GPRS settings.
Q: What is the maximum SMS length supported?
A: The module supports SMS messages up to 160 characters in text mode.
Q: Can I use the shield with a 3.3V microcontroller?
A: The shield operates at 5V logic levels. Use a level shifter to interface with 3.3V microcontrollers.
Q: How do I reset the module?
A: Use the reset pin (D9) or send the AT+CFUN=1,1
command to perform a software reset.