The SIM800L GSM module is a compact and versatile GSM/GPRS module designed for communication over cellular networks. It supports SMS, voice calls, and data transmission, making it ideal for IoT applications, remote monitoring, and mobile communication projects. Equipped with an external antenna, the module ensures improved signal strength and reliable connectivity. A SIM card is required to access the cellular network.
The SIM800L module has 8 pins. Below is the pinout and description:
Pin Name | Description |
---|---|
VCC | Power input (3.7V to 4.2V). Ensure a stable power supply to avoid malfunctions. |
GND | Ground connection. |
TXD | Transmit data (UART output). Connect to the RX pin of the microcontroller. |
RXD | Receive data (UART input). Connect to the TX pin of the microcontroller. |
RST | Reset pin. Pull LOW for at least 100ms to reset the module. |
NET | Network status indicator (blinks to indicate network activity). |
ANT | External antenna connection. |
SIM | Micro SIM card slot for network access. |
Power Supply:
Connections:
Initialization:
Example Circuit:
Below is a basic connection diagram for the SIM800L module with an 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); // Default baud rate of SIM800L
Serial.begin(9600); // Serial monitor for debugging
// Wait for the module to initialize
delay(1000);
Serial.println("Initializing SIM800L...");
// Send an AT command to check communication
SIM800L.println("AT");
delay(1000);
// Read and print the response from the module
while (SIM800L.available()) {
Serial.write(SIM800L.read());
}
}
void loop() {
// Example: Send an SMS
if (Serial.available()) {
String command = Serial.readString();
if (command == "sendSMS") {
SIM800L.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
SIM800L.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's number
delay(1000);
SIM800L.println("Hello, this is a test SMS from SIM800L!"); // SMS content
delay(1000);
SIM800L.write(26); // Send Ctrl+Z to send the SMS
delay(5000);
Serial.println("SMS sent!");
}
}
}
Module Not Responding to AT Commands:
Frequent Resets or Unstable Operation:
No Network Connection:
SMS Not Sending:
AT+CMGF=1
).Q: Can the SIM800L module be powered directly from a 5V source?
A: No, the module requires a voltage between 3.7V and 4.2V. Use a step-down converter or LiPo battery.
Q: How do I reset the module?
A: Pull the RST pin LOW for at least 100ms, then release it.
Q: What is the default baud rate of the SIM800L?
A: The default baud rate is 9600 bps.
Q: Can the SIM800L be used for internet access?
A: Yes, the module supports GPRS for data transmission. Use AT commands to configure GPRS settings.