The GSM SIM 900A is a compact and reliable GSM/GPRS module designed for communication over mobile networks. It supports dual-band GSM (900/1800 MHz) and provides functionalities such as sending and receiving SMS, making voice calls, and accessing the internet via GPRS. This module is widely used in IoT applications, remote monitoring systems, home automation, and other projects requiring wireless communication.
The GSM SIM 900A module is designed to operate efficiently in a variety of environments. Below are its key technical details:
Parameter | Specification |
---|---|
Operating Voltage | 3.2V - 4.8V (Typical: 4.0V) |
Operating Current | Idle: ~20mA, Max: ~2A (during TX) |
Frequency Bands | GSM 900/1800 MHz |
Communication Protocols | GSM, GPRS (Class 10) |
Data Rate (GPRS) | Uplink: 85.6 kbps, Downlink: 85.6 kbps |
SIM Card Support | 1.8V/3V |
Operating Temperature | -40°C to +85°C |
Dimensions | 24mm x 24mm x 3mm |
The SIM 900A module typically comes with a breakout board for easier interfacing. Below is the pin configuration:
Pin Name | Description |
---|---|
VCC | Power supply input (3.2V - 4.8V) |
GND | Ground |
TXD | Transmit data (UART output) |
RXD | Receive data (UART input) |
DTR | Data terminal ready (used for sleep mode) |
RST | Reset pin (active low) |
MIC+ | Microphone positive input |
MIC- | Microphone negative input |
SPK+ | Speaker positive output |
SPK- | Speaker negative output |
NET | Network status indicator (blinks to show status) |
The GSM SIM 900A module can be easily integrated into a circuit for wireless communication. Below are the steps and best practices for using the module:
Below is an example of how to send an SMS using the GSM SIM 900A module and Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial SIM900A(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For communication with the PC
SIM900A.begin(9600); // For communication with the SIM 900A module
Serial.println("Initializing GSM SIM 900A...");
delay(1000);
// Send AT command to check module response
SIM900A.println("AT");
delay(1000);
if (SIM900A.available()) {
Serial.println("Module is ready!");
} else {
Serial.println("No response from module. Check connections.");
}
// Send SMS
sendSMS("+1234567890", "Hello from GSM SIM 900A!");
}
void loop() {
// Nothing to do in the loop
}
void sendSMS(String phoneNumber, String message) {
SIM900A.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
SIM900A.print("AT+CMGS=\""); // Start SMS command
SIM900A.print(phoneNumber); // Add recipient phone number
SIM900A.println("\"");
delay(1000);
SIM900A.print(message); // Add SMS content
delay(1000);
SIM900A.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent successfully!");
}
No Response from the Module
Module Not Connecting to Network
SMS Not Sending
AT+CMGF=1
).Frequent Restarts
Q: Can the SIM 900A module be used for internet access?
A: Yes, the module supports GPRS for internet access. You can use AT commands like AT+SAPBR
to configure and establish a GPRS connection.
Q: What is the maximum distance for UART communication?
A: UART communication is typically reliable up to a few meters. For longer distances, consider using RS-485 or other communication protocols.
Q: Can I use a 5V power supply for the module?
A: No, the module requires a power supply in the range of 3.2V to 4.8V. Using 5V directly may damage the module.
Q: How do I check the network signal strength?
A: Use the AT command AT+CSQ
. The response will indicate the signal strength (e.g., +CSQ: 20,0
).
By following this documentation, you can effectively integrate and troubleshoot the GSM SIM 900A module in your projects.