GSM modules are essential for adding wireless communication capabilities to your Arduino projects. One of the most popular modules is the SIM900A, which allows your microcontroller to send/receive SMS, make calls, and access mobile networks. In this blog, we’ll walk you through how to interface the SIM900A GSM module with an Arduino, covering its features, wiring, coding, and live testing via Serial Monitor.
![]() |
SIM900A GSM module with Arduino |
๐ฑ What is the SIM900A GSM Module?
The SIM900A is a GSM/GPRS module designed to operate on 2G networks. It supports voice, SMS, and data transfer via GPRS. This module can be used in a variety of real-world applications like remote monitoring, IoT solutions, SMS alerts, and home automation.
It communicates with the Arduino using serial communication (TX/RX) and responds to AT commands for controlling network functions.
๐ SIM900A GSM Module Specifications
Here’s a quick overview of the module’s specifications:
![]() |
SIM900A GSM module specifications |
Components Required
To get started, you will need the following components:
![]() |
Components required for this tutorial |
✅ Arduino UNO board
✅ SIM900A GSM Module
✅ Jumper Wires
✅ External Power Supply (5V, 1A)
✅ USB cable for Arduino
๐ Wiring the SIM900A GSM Module with Arduino
Here’s how to wire the components correctly:
![]() |
Wiring diagram |
✅ SIM900A TXD → Arduino Pin 10
✅ SIM900A RXD → Arduino Pin 11
✅ GND → GND (Arduino & Power Supply)
✅ VCC5 → External 5V Power Supply (1A recommended)
✅ Antenna – Connect to SMA port on the module
Note: Use a common ground between Arduino and the external power source for reliable communication.
Programming the Arduino
Below is the code used to test the SIM900A module by sending AT commands and reading the response via Serial Monitor, or you can download the code HERE.
#include <SoftwareSerial.h> SoftwareSerial sim900(3, 4); // RX, TX void setup() { Serial.begin(9600); sim900.begin(9600); Serial.println("Initializing SIM900A..."); delay(1000); sim900.println("AT"); // Check module response delay(1000); readResponse(); sim900.println("AT+CPIN?"); // Check SIM status delay(1000); readResponse(); sim900.println("AT+CSQ"); // Check signal quality delay(1000); readResponse(); sim900.println("AT+GMR"); // Get firmware version delay(1000); readResponse(); } void loop() { if (sim900.available()) { Serial.write(sim900.read()); } } void readResponse() { while (sim900.available()) { Serial.write(sim900.read()); } }
![]() |
Open Arduino IDE and copy-paste the code |
๐งช Testing the GSM Module
After uploading the code to your Arduino, open the Serial Monitor in the Arduino IDE and type AT commands.
![]() |
Type AT commands and press Enter |
![]() |
Response from SIM900A module |
✅ Useful AT Commands
- AT – Check communication
- AT+CPIN? – Check if SIM is ready (READY = OK)
- AT+CSQ – Signal strength
- AT+COPS? – Shows network operator
- AT+GSN – Displays the IMEI number
- AT+IPR – Set fixed baud rate
๐งฏ Common Troubleshooting
- ❌ No SIM detected? → Check SIM card orientation and try another card.
- ❌ No response? → Ensure external power supply is 5V/1A or more.
- ๐ Gibberish on Serial Monitor? → Double-check baud rate settings.
- ๐ก Poor signal? → Use a proper antenna and check the signal area.
๐งพ Conclusion
The SIM900A GSM module is an easy way to connect your Arduino to a mobile network. With just a few wires and some basic code, you can send AT commands to check SIM status, signal strength, and more.
๐ฆ Where to Buy
Shopee:
Lazada:
Aliexpress:
๐ฅ Watch the Full Video Tutorial
๐ If you found this guide helpful, share it with fellow makers! For more tutorials, subscribe to our YouTube channel and follow us on social media. ๐
#arduino #SIM900A #GSM #arduinoprojects #network
No comments:
Post a Comment