The SIM900 is a GSM/GPRS module from SIMCom. It allows microcontrollers like ESP32 or Arduino to:
β
Send/receive SMS
β
Make/receive phone calls
β
Connect to the Internet (GPRS)
β
Send data to servers via HTTP, MQTT, TCP/IP
It communicates via UART (TX/RX) and uses AT commands.
| Feature | Description |
|---|---|
| Network | 2G GSM (850/900/1800/1900 MHz) |
| Communication | UART (AT commands) |
| Baud Rate | Default 9600 |
| SIM Card | Standard-size SIM (2G supported) |
| Power Supply | 5V–12V, 2A recommended |
| Antenna | Required for GSM signal |
| Optional | Mic & Speaker (for calls) |
| SIM900 Pin | ESP32 Pin |
|---|---|
| TX | GPIO 16 (ESP32 RX) |
| RX | GPIO 17 (ESP32 TX) |
| GND | GND |
| VCC | β οΈ External 5V 2A power supply |
β οΈ DO NOT power SIM900 directly from ESP32 or USB. It needs high current, especially during network operations.
You don't need extra libraries – just Serial and AT commands.
SIM900 TX → ESP32 RX (GPIO 16)
SIM900 RX → ESP32 TX (GPIO 17)
SIM900 GND ↔ ESP32 GND
SIM900 VCC → External 5V 2A
| Command | Function |
|---|---|
AT |
Check module |
AT+CSQ |
Signal strength |
AT+CCID |
SIM card number |
AT+CREG? |
Network registration |
ATD+91XXXXXXXXXX; |
Make a call |
ATH |
Hang up |
AT+CMGR=1 |
Read SMS from slot 1 |
AT+CMGD=1 |
Delete SMS from slot 1 |
You can manually send AT commands via Serial Monitor using this setup:
Use Serial passthrough sketch to forward Serial to SIM900.
| Project | Description |
|---|---|
| π¨ GSM Alarm System | Send SMS when motion or fire is detected |
| π¦ Asset Tracker | Send location data via SMS (with GPS) |
| π IoT without WiFi | Use GPRS to send data to cloud |
| π Smart Door Lock | Unlock with OTP via SMS |
| π Remote Sensor | Send sensor values (temperature, moisture, etc.) to phone |
SIM900 can draw up to 2A peak. If underpowered, it may restart or fail to send SMS.
Use external power supply (e.g., 5V 2A adapter or battery pack).
Keep GND common between ESP32 and SIM900.
| Problem | Solution |
|---|---|
| No SMS sent | Check SIM is active, balance, and signal |
| Module keeps restarting | Power supply issue – use 2A source |
| AT commands don’t respond | Check TX/RX pins or baud rate |
| "SIM not inserted" | Clean SIM contacts and reinsert |
HOW TO OPERATE