Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home Communication & Wireless Modules

GSM Module SIM800L: Send SMS and Make Calls with Arduino

GSM Module SIM800L: Send SMS and Make Calls with Arduino

April 1, 2026 /Posted by / 0

The GSM module SIM800L Arduino combination is the go-to solution for adding cellular connectivity to your electronics projects in India. Whether you need to send SMS alerts from a security system, make automated phone calls from a fire alarm, or push sensor data to the cloud over GPRS, the SIM800L makes it possible with just an Indian SIM card from Jio, Airtel, or Vi. This guide covers everything from wiring and power supply to sending SMS, making calls, and transmitting data over GPRS.

Table of Contents

  • About the SIM800L Module
  • Critical: Power Supply Requirements
  • Indian SIM Card Setup
  • Wiring SIM800L to Arduino
  • Essential AT Commands
  • Sending SMS with Arduino
  • Making Phone Calls
  • GPRS Data: HTTP Requests
  • Frequently Asked Questions

About the SIM800L Module

The SIM800L is a quad-band GSM/GPRS module manufactured by SIMCom. It supports 850/900/1800/1900 MHz bands, covering all GSM networks in India. Key features include:

  • GSM/GPRS: Voice calls, SMS, and 2G data (GPRS Class 12, 85.6 kbps)
  • Voltage: 3.4V to 4.4V (NOT 5V and NOT 3.3V)
  • SIM Card: Micro-SIM slot
  • Interface: UART serial (AT commands)
  • Bluetooth: BT 3.0 + EDR (on some variants)
  • Audio: Supports headset and speaker output
  • Size: 15.8 x 17.8 x 2.4 mm (tiny!)
🛒 Recommended: SIM800L V2 5V Wireless GSM GPRS Module — The V2 version with built-in voltage regulator accepts 5V input directly from Arduino, simplifying the power supply problem.

Critical: Power Supply Requirements

This is the number one cause of SIM800L failures. The module requires a stable power supply between 3.4V and 4.4V with peak current capability of 2A during transmission bursts. The Arduino’s 3.3V and 5V pins cannot supply this.

Solutions for reliable power supply:

  • SIM800L V2 (recommended): Has an onboard voltage regulator. Feed it 5V from a USB power bank or wall adapter with at least 2A capability.
  • LiPo battery: A 3.7V LiPo battery naturally falls within the 3.4-4.4V range and can deliver high peak currents. This is the cleanest solution.
  • Buck converter: Use an adjustable buck converter set to 4.0V from a 5V or 12V source. Add a 1000 uF capacitor at the output.

Signs of insufficient power: The module resets during calls or SMS, the LED blinks rapidly but never settles, AT commands return “ERROR” or no response, and the module cannot register on the network.

Indian SIM Card Setup

Before inserting the SIM card into your SIM800L, prepare it on a regular phone first:

  1. Activate the SIM: Insert into a phone and make one test call to ensure it is active
  2. Disable SIM PIN: Go to phone Settings → Security → SIM Lock → Disable PIN. The SIM800L cannot enter a PIN code on startup
  3. Check balance: Ensure minimum ₹10-20 balance for SMS/GPRS testing
  4. Note APN settings: You will need these for GPRS data
    • Jio: APN = jionet
    • Airtel: APN = airtelgprs.com
    • Vi (Vodafone Idea): APN = www
    • BSNL: APN = bsnlnet

Important: Jio is a 4G-only network. The SIM800L is a 2G module and does NOT work with Jio SIM cards in most areas. Use Airtel, Vi, or BSNL SIM cards which still support 2G networks in India. For Jio, you need a 4G module like SIM7600 or A7670E.

🛒 Recommended: SIM800L GPRS GSM Module Core Board Quad-band TTL — The original compact SIM800L module for projects where size matters. Requires external 3.7V power supply.

Wiring SIM800L to Arduino

SIM800L Pin Arduino Uno Notes
VCC External 3.7-4.2V NOT from Arduino! (V2: use 5V)
GND GND Common ground with Arduino
TXD D2 (SoftwareSerial RX) Module TX to Arduino RX
RXD D3 (SoftwareSerial TX) Use voltage divider (5V → 3.3V)
RST D4 (optional) Hardware reset

RXD voltage divider: The SIM800L’s RX pin is 3.3V. Use a simple voltage divider with a 1K and 2K resistor to step down the Arduino’s 5V TX signal. Alternatively, use a logic level converter.

Essential AT Commands

The SIM800L is controlled via AT commands sent over the serial connection. Here are the most important commands:

AT                  → Test communication (should return "OK")
AT+CSQ              → Signal quality (0-31, higher is better)
AT+CREG?            → Network registration (0,1 = registered)
AT+COPS?            → Show connected operator name
AT+CBC              → Battery voltage and percentage
AT+CMGF=1           → Set SMS to text mode
AT+CMGS="+919876543210" → Send SMS to number
ATD+919876543210;    → Dial a number (semicolon is important)
ATH                 → Hang up call
ATA                 → Answer incoming call

Sending SMS with Arduino

#include <SoftwareSerial.h>

SoftwareSerial sim800l(2, 3); // RX, TX

void setup() {
  Serial.begin(9600);
  sim800l.begin(9600);
  
  delay(3000); // Wait for module to initialise
  
  Serial.println("SIM800L SMS Test - Zbotic.in");
  
  // Check if module is responding
  sendAT("AT", 1000);
  
  // Check signal strength
  sendAT("AT+CSQ", 1000);
  
  // Check network registration
  sendAT("AT+CREG?", 1000);
  
  // Send SMS
  sendSMS("+919876543210", "Hello from Arduino and SIM800L! - Zbotic.in");
}

void loop() {
  // Forward data between Serial Monitor and SIM800L
  if (sim800l.available()) Serial.write(sim800l.read());
  if (Serial.available()) sim800l.write(Serial.read());
}

void sendSMS(String number, String message) {
  sim800l.println("AT+CMGF=1");  // Text mode
  delay(500);
  
  sim800l.print("AT+CMGS="");
  sim800l.print(number);
  sim800l.println(""");
  delay(500);
  
  sim800l.print(message);
  delay(100);
  
  sim800l.write(26); // Ctrl+Z to send
  delay(5000);
  
  Serial.println("SMS sent!");
}

void sendAT(String command, int timeout) {
  sim800l.println(command);
  long start = millis();
  while (millis() - start < timeout) {
    if (sim800l.available()) {
      Serial.write(sim800l.read());
    }
  }
  Serial.println();
}

Making Phone Calls

void makeCall(String number) {
  Serial.print("Calling ");
  Serial.println(number);
  
  sim800l.print("ATD");
  sim800l.print(number);
  sim800l.println(";"); // Semicolon for voice call
  
  delay(20000); // Ring for 20 seconds
  
  sim800l.println("ATH"); // Hang up
  Serial.println("Call ended");
}

// Usage in setup() or loop():
// makeCall("+919876543210");

For two-way audio, connect a small electret microphone to MIC+ and MIC- pins, and a speaker to SPK+ and SPK- pins on the SIM800L module.

🛒 Recommended: SIM800L V2 5V with Antenna — Quad-band module with included GSM antenna for better signal reception in buildings.

GPRS Data: HTTP Requests

The SIM800L can send data to web servers over GPRS (2G data). This is how IoT projects send sensor data to platforms like ThingSpeak, Blynk, or custom servers:

void sendToThingSpeak(float temperature, float humidity) {
  // Initialise GPRS
  sendAT("AT+SAPBR=3,1,"CONTYPE","GPRS"", 2000);
  sendAT("AT+SAPBR=3,1,"APN","airtelgprs.com"", 2000); // Airtel APN
  sendAT("AT+SAPBR=1,1", 5000);  // Open bearer
  sendAT("AT+HTTPINIT", 2000);   // Init HTTP
  
  // Build URL with sensor data
  String url = "http://api.thingspeak.com/update?api_key=YOUR_KEY";
  url += "&field1=" + String(temperature);
  url += "&field2=" + String(humidity);
  
  sim800l.print("AT+HTTPPARA="URL","");
  sim800l.print(url);
  sim800l.println(""");
  delay(2000);
  
  sendAT("AT+HTTPACTION=0", 10000); // GET request
  sendAT("AT+HTTPREAD", 2000);      // Read response
  sendAT("AT+HTTPTERM", 1000);      // Terminate HTTP
  sendAT("AT+SAPBR=0,1", 2000);     // Close bearer
  
  Serial.println("Data sent to ThingSpeak!");
}

Note: GPRS speeds are slow (40-80 kbps) and there is a data cost per MB. For frequent data uploads, consider using WiFi (ESP32) at home or a 4G module for remote sites.

🛒 Recommended: SIM800 GSM/GPRS Module — Full-featured SIM800 module with RS232 interface, ideal for permanent installations.

Frequently Asked Questions

Does SIM800L work with Jio SIM card?

No. Jio operates exclusively on 4G/VoLTE networks. The SIM800L is a 2G GSM module and cannot connect to Jio’s network. Use Airtel, Vi (Vodafone Idea), or BSNL SIM cards, which still maintain 2G network coverage across India. For Jio compatibility, use a 4G module like the SIM7600 or A7670E.

Why does my SIM800L keep restarting?

Insufficient power supply. The SIM800L draws up to 2A during transmission bursts. Connect a 3.7V LiPo battery or a 5V 2A adapter (for V2 version). Add a 1000 uF capacitor near the power pins.

What does the LED blinking pattern mean?

Blink every 1 second: searching for network. Blink every 2 seconds: connected to 2G data (GPRS). Blink every 3 seconds: registered on network, no data. Always on: module is off or not powered.

How much does it cost to send an SMS via SIM800L in India?

SMS costs depend on your mobile operator plan. Most prepaid plans in India include free SMS or charge ₹0.50-1.00 per SMS. For bulk IoT SMS, consider an Airtel Machine-to-Machine (M2M) SIM plan.

Can I receive SMS and trigger actions on Arduino?

Yes. Use the AT+CNMI=2,2,0,0,0 command to forward incoming SMS directly to the serial port. Parse the SMS text in your Arduino code to trigger relays, motors, or other actuators remotely.

Conclusion

The SIM800L GSM module transforms your Arduino into a connected IoT device with the ability to send SMS alerts, make voice calls, and transmit data over GPRS — all using an ordinary Indian SIM card. The key to success is providing a clean, high-current power supply. Start with the V2 version for easier setup, and always use Airtel, Vi, or BSNL SIM cards for 2G compatibility.

Browse our complete range of GSM and cellular modules at Zbotic.in, from the affordable SIM800L to advanced 4G LTE modules for high-speed IoT connectivity.

Tags: Arduino, GSM, iot, SIM800L, SMS
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
Sonoff Alternatives India: DIY...
blog sonoff alternatives india diy smart switches with esp8266 612459
blog weather resistant drone components for indian farming 612462
Weather-Resistant Drone Compon...

Related posts

Svg%3E
Read more

ESP-NOW: Direct ESP32-to-ESP32 Communication Without WiFi

April 1, 2026 0
ESP-NOW ESP32 communication is a game-changing protocol developed by Espressif that enables direct peer-to-peer wireless communication between ESP32 boards without... Continue reading
Svg%3E
Read more

SDR Getting Started: HackRF and RTL-SDR Projects India

April 1, 2026 0
Software Defined Radio (SDR) lets you explore the electromagnetic spectrum using your computer, replacing expensive hardware radios with affordable USB... Continue reading
Svg%3E
Read more

Zigbee vs WiFi vs BLE: Choosing the Right Wireless Protocol for IoT

April 1, 2026 0
Choosing between Zigbee vs WiFi vs BLE for your IoT project is one of the most important design decisions you... Continue reading
Svg%3E
Read more

RFID Module Guide: RC522, PN532, and Long-Range UHF Options

April 1, 2026 0
The RFID module RC522 Arduino combination is the starting point for thousands of access control, attendance, and inventory tracking projects... Continue reading
Svg%3E
Read more

RS485 Modbus Communication: Industrial Sensors with Arduino

April 1, 2026 0
RS485 Modbus Arduino interfacing opens the door to industrial-grade sensor communication. Unlike hobbyist I2C or SPI sensors, RS485 Modbus sensors... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now