Home > Projects > Other Projects > Arduino GSM Communication: Calling and Messaging Tutorial

Arduino GSM Communication: Calling and Messaging Tutorial

Summary of Arduino GSM Communication: Calling and Messaging Tutorial


This article details an Arduino project using a SIM900 GSM module to make phone calls and send SMS messages via push buttons. The system uses two LEDs for status indication and monitors execution on the serial monitor. Users can trigger outgoing calls or texts by pressing specific buttons, with visual feedback provided by the LEDs turning on during operations.

Parts used in the Arduino GSM Call and SMS Project:

  • Arduino UNO
  • SIM 900 GSM module
  • Push buttons (pair)
  • 220 ohm resistors
  • Dual LEDs
  • Jumper wires
  • Breadboard
  • USB cable
  • 12-volt, 2-amp DC power supply

Introduction

Hello everyone, welcome back to our latest post. Are you familiar with a GSM module? In this article, we’ll explore making calls and sending messages using Arduino and the GSM module. If you’re new to understanding how a GSM module operates with Arduino, we recommend getting acquainted with it first. Ensure the connections are accurately set up, and then proceed to upload the provided code to your Arduino. Don’t forget to explore our other articles on Arduino and IoT that we’ve published.

Description

Within this Arduino GSM project, we’re equipped to initiate phone calls or send SMS using a GSM module.
Utilizing two push buttons, the first button allows you to initiate a phone call by providing the intended mobile number.
The execution status of the task can be monitored on the serial monitor screen.
An LED illuminates upon button press, signifying the ongoing task, and automatically switches off upon completion.
Additionally, explore our GSM-based forest fire alert system designed for digitalization.

Components Required in GSM project

Arduino UNO
SIM 900 GSM module
A pair of push buttons
Resistors with a value of 220 ohms
Dual LEDs
Jumper wires along with a breadboard
USB cable utilized for code uploading

Arduino with GSM Module Circuit

Arduino UNO LED 1 LED 2 220 Ohm Resistor
4 Pin Anode Terminal    
5 Pin Anode Terminal  
GND     Terminal 1
  Cathode Terminal Cathode Terminal Terminal 2
Arduino UNO Button 1 Button 2 220 Ohm Resistor
7 Pin Terminal 1    
8 Pin   Terminal 1  
GND Terminal 2 Terminal 2 Terminal 1
  Terminal 1   Terminal 2
    Terminal 1 Terminal 2

Link a 12-volt, 2-amp DC power supply to the GSM module.
Connect the Arduino’s digital pin 10 to the GSM module’s Tx pin.
Join the GND pin of the Arduino with the GSM module’s GND pin.
Attach the digital pin 11 of the Arduino to the Rx pin of the GSM module.
Next, connect the negative legs of two LEDs to the Arduino’s GND pin via a 220-ohm resistor.
Connect one LED’s positive leg to the Arduino’s digital pin 4 and the other LED’s positive leg to digital pin 5.
Take a push button and connect one of its pins to the Arduino’s 5V pin. Connect the other pin to the Arduino’s digital pin 8.
Repeat this step for the second push button, linking it to the Arduino’s digital pin 7.
Your circuit setup is now complete. Additionally, explore GSM-based Home Automation for more information.

Code for gsm and Arduino

// TECHATRONIC.COM
// Download Library of SoftwareSerial link given
// https://github.com/PaulStoffregen/SoftwareSerial

#include
SoftwareSerial gsm(10,11); // SoftSerial( RX , TX );
// 10 pin connect to TX of GSM SIM 900 Module
// 11 pin connect to RX of GSM SIM 900 Module

const int buttonPin1 = 7; // Push Button 1
const int buttonPin2 = 8; // Push Button 2

int buttonState1 = 0;
int buttonState2 = 0;

void setup()
{
delay(10000);
Serial.begin(9600);
gsm.begin(9600);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);

pinMode(5,OUTPUT); // LED1 pin D5
pinMode(4,OUTPUT); // LED2 pin D4

}
void loop()
{
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);

if (Serial.available()>0)
switch(Serial.read())
{
case ‘r’:
RecieveMessage();
break;
}

if (gsm.available()>0)
Serial.write(gsm.read());

if (buttonState1 == HIGH)
{
gsm.println(“ATD7007651787;”); //replace x by your number
delay(100);
digitalWrite(5,HIGH); // LED1 ON
gsm.println(“ATH”);
delay(2000);
Serial.println(“calling…..”);
digitalWrite(5,LOW); // LED1 OFF
}

if (buttonState2 == HIGH)
{
Serial.println (“Sending Message”);
digitalWrite(4,HIGH); // LED2 ON
gsm.println(“AT+CMGF=1”); //Sets the GSM Module in Text Mode
delay(1000);
Serial.println (“Set SMS Number”);
gsm.println(“AT+CMGS=\”7007651787\”\r”); //Mobile phone number to send message, replace x by your number
delay(1000);
Serial.println (“Set SMS Content”);
gsm.println(“Techatronic.com”);// Messsage content
delay(100);
Serial.println (“Finish”);
gsm.println((char)26);// ASCII code of CTRL+Z
delay(1000);
Serial.println (“Message has been sent “);
digitalWrite(4,LOW); // LED2 ON

}

}
void RecieveMessage()
{
Serial.println (“gsm RECEIVE SMS”);
delay (1000);
gsm.println(“AT+CNMI=2,2,0,0,0”); // AT Command to receive a live SMS
delay(1000);
Serial.write (“Unread Message done”);

}

We trust you found this Arduino and GSM module project for calls and messages enjoyable and comprehended its functionality thoroughly. Should you encounter any uncertainties concerning this GSM project, please don’t hesitate to share your queries in the comments section below. Additionally, explore our collection of articles on Arduino and Raspberry Pi for more insights.

Quick Solutions to Questions related to Arduino GSM Call and SMS Project:

  • How do I initiate a phone call?
    Press the first push button connected to digital pin 7 to dial the number specified in the code.
  • Can I send an SMS message using this setup?
    Yes, pressing the second push button connected to digital pin 8 triggers the sending of a predefined text message.
  • What indicates that a task is ongoing?
    An LED illuminates upon button press to signify the ongoing task and switches off automatically upon completion.
  • Where can I monitor the execution status?
    The execution status of the task can be monitored on the serial monitor screen.
  • Which pins connect the Arduino to the GSM module?
    Arduino digital pin 10 connects to the GSM Tx pin, and digital pin 11 connects to the GSM Rx pin.
  • Does the system support receiving messages?
    Yes, typing 'r' in the serial monitor initiates the reception of live SMS messages.
  • What power supply is required for the GSM module?
    A 12-volt, 2-amp DC power supply must be linked to the GSM module.
  • How are the LEDs wired to the Arduino?
    The negative legs connect to GND via 220-ohm resistors, while positive legs connect to digital pins 4 and 5.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top