The SIM800L is a compact GSM/GPRS module that enables communication over mobile networks. It supports SMS, voice calls, and data transmission, making it an essential component for IoT applications, remote monitoring, and embedded systems requiring wireless connectivity. Its small size and low power consumption make it suitable for portable and battery-powered devices.
The SIM800L module is designed to operate efficiently in a wide range of applications. Below are its key technical details:
Parameter | Value |
---|---|
Operating Voltage | 3.4V to 4.4V |
Recommended Voltage | 4.0V |
Power Consumption | Idle: ~1mA, Active: ~250mA, Peak: ~2A |
Frequency Bands | GSM 850/900/1800/1900 MHz |
Communication Protocols | GSM, GPRS (Class 12) |
Data Rates | GPRS: Up to 85.6 kbps |
SIM Card Support | Micro SIM |
Operating Temperature | -40°C to +85°C |
Dimensions | 25mm x 23mm x 3mm |
The SIM800L module has several pins for power, communication, and control. Below is the pinout and description:
Pin Name | Pin Number | Description |
---|---|---|
VCC | 1 | Power supply input (3.4V to 4.4V) |
GND | 2 | Ground |
RXD | 3 | UART Receive (connect to TX of microcontroller) |
TXD | 4 | UART Transmit (connect to RX of microcontroller) |
RST | 5 | Reset pin (active low) |
NET | 6 | Network status LED output |
SIM_VDD | 7 | SIM card power supply |
SIM_RST | 8 | SIM card reset |
SIM_CLK | 9 | SIM card clock |
SIM_DATA | 10 | SIM card data |
VCC
pin to a 4.0V power source.GND
pin to the ground of your circuit.RXD
pin to the TX pin of your microcontroller (e.g., Arduino).TXD
pin to the RX pin of your microcontroller.RST
pin to reset the module if needed (active low).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() {
Serial.begin(9600); // Initialize Serial Monitor
SIM800L.begin(9600); // Initialize SIM800L module
// Wait for the module to initialize
delay(1000);
Serial.println("Initializing SIM800L...");
// Send AT command to check communication
SIM800L.println("AT");
delay(1000);
if (SIM800L.available()) {
Serial.println("SIM800L is ready!");
} else {
Serial.println("No response from SIM800L.");
}
// Send SMS
sendSMS("+1234567890", "Hello from SIM800L!");
}
void loop() {
// Nothing to do in the loop
}
void sendSMS(String phoneNumber, String message) {
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); // Write the SMS message
delay(1000);
SIM800L.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
+1234567890
with the recipient's phone number.No Response from the Module:
Network Registration Fails:
AT+CREG?
command to check the network registration status.SMS Not Sending:
Module Resets Unexpectedly:
Q: Can the SIM800L work with 5V microcontrollers?
A: Yes, but you need a voltage divider or level shifter for the RX pin to avoid damaging the module.
Q: Does the SIM800L support 3G or 4G networks?
A: No, the SIM800L only supports 2G GSM networks.
Q: How can I check the signal strength?
A: Use the AT+CSQ
command. The response will indicate the signal strength in dBm.
Q: Can I use the SIM800L for internet access?
A: Yes, the SIM800L supports GPRS for basic internet access. Use AT commands like AT+SAPBR
to configure GPRS.
By following this documentation, you can effectively integrate the SIM800L module into your projects and troubleshoot common issues.