The SIM800L is a compact GSM/GPRS module that enables communication over cellular networks. It supports functionalities such as sending and receiving SMS, making voice calls, and transmitting data over GPRS. Its small size and low power consumption make it ideal for embedded systems and IoT applications.
The SIM800L module is designed to operate efficiently in a variety of environments. Below are its key technical details:
Parameter | Value |
---|---|
Operating Voltage | 3.4V to 4.4V |
Recommended Voltage | 4.0V |
Operating Current | 20mA (idle), up to 2A (peak) |
Frequency Bands | GSM 850/900/1800/1900 MHz |
Communication Protocols | GSM, GPRS (Class 12) |
Data Transmission Speed | Up to 85.6 kbps (GPRS) |
SIM Card Support | Micro SIM |
Dimensions | 25mm x 23mm x 3mm |
Operating Temperature | -40°C to +85°C |
The SIM800L module typically has 12 pins. Below is the pinout and description:
Pin Number | Pin Name | Description |
---|---|---|
1 | NET | Network status indicator (blinks to indicate GSM status) |
2 | VCC | Power supply input (3.4V to 4.4V, recommended 4.0V) |
3 | GND | Ground connection |
4 | RXD | UART Receive pin (connect to TX of microcontroller) |
5 | TXD | UART Transmit pin (connect to RX of microcontroller) |
6 | RST | Reset pin (active low, used to reset the module) |
7 | DTR | Data Terminal Ready (used for sleep mode control) |
8 | MIC+ | Microphone positive input |
9 | MIC- | Microphone negative input |
10 | SPK+ | Speaker positive output |
11 | SPK- | Speaker negative output |
12 | ANT | Antenna connection (external antenna required for GSM signal reception) |
The SIM800L module can be integrated into a circuit to enable GSM/GPRS communication. Below are the steps and considerations for using the module:
Power Supply:
Antenna Connection:
UART Communication:
SIM Card:
Reset and Sleep Mode:
Below is an example of how to send an SMS using the SIM800L module and Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial SIM800L(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication with the SIM800L module
SIM800L.begin(9600);
Serial.begin(9600); // For debugging via Serial Monitor
// Wait for the module to initialize
delay(1000);
Serial.println("Initializing SIM800L...");
// Send an SMS
sendSMS("+1234567890", "Hello from SIM800L!");
}
void loop() {
// Nothing to do in the loop
}
void sendSMS(String phoneNumber, String message) {
SIM800L.println("AT"); // Check communication with the module
delay(1000);
SIM800L.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
SIM800L.print("AT+CMGS=\"");
SIM800L.print(phoneNumber); // Set recipient phone number
SIM800L.println("\"");
delay(1000);
SIM800L.print(message); // Send the SMS message
delay(1000);
SIM800L.write(26); // Send Ctrl+Z to indicate end of message
delay(5000);
Serial.println("SMS sent!");
}
Module Not Powering On:
No GSM Signal:
Unable to Send SMS or Make Calls:
Communication Issues with Microcontroller:
Q: Can the SIM800L module be powered directly from a 5V source?
A: No, the module requires a voltage between 3.4V and 4.4V. Use a voltage regulator or a dedicated power supply.
Q: How do I check if the module is connected to the GSM network?
A: Send the AT+CREG?
command. A response of +CREG: 0,1
indicates the module is registered on the network.
Q: Can the SIM800L module be used for internet access?
A: Yes, the module supports GPRS for data transmission. You can use AT commands to configure and establish a GPRS connection.
Q: What type of SIM card does the SIM800L support?
A: The module supports micro SIM cards. Ensure the SIM card is compatible with GSM networks.