Interfacing GSM module with PIC Microcontroller

Summary of Interfacing GSM module with PIC Microcontroller


This article details a project interfacing a GSM module with a PIC16F877 microcontroller to send SMS messages wirelessly. It outlines the necessary hardware, explains testing AT commands via HyperTerminal, and provides the specific Embedded C code written in MikroC Pro for executing the message transmission. The guide also references circuit diagrams and simulation videos using Proteus to demonstrate the complete system functionality.

Parts used in the Interfacing GSM module with PIC Microcontroller:

  • PIC16F877 Microcontroller
  • SIM300 GSM module (or Nokia 5130c Mobile phone)
  • Serial cable
  • LCD display components
  • MikroC Pro software

In connection with today’s advance technology and field of embedded electronics project, interfacing GSM module with pic microcontroller is very important for remote and wireless communication. GSM stands for Global system of mobile communication is widely used chip and reliable mobile network. If we done interfacing GSM module with pic microcontroller then we can use this huge GSM network as input out output for our project.

In my project I use GSM module for sending SMS to a specified GSM mobile number. And here you can learn how we did interfacing GSM module with pic microcontroller. Here we did interfacing of GSM module with PIC16F877 microcontroller. So to complete our project we are used

1)      PIC16F877 Microcotroller

2)      SIM300 GSM module ( I used NOKIA 5130c Mobile phone as a GSM module)

3)      Serial cable (For interfacing between Microcontroller and GSM module)

Project Objective:

To complete the project we should follow some steps

1)      Test the simple AT Command.

2)      Connect a call to a GSM mobile number (Dial a number).

3)      Send a text message to a mobile number

Now question is how we test AT command?

You can easily test it on windows Hyperterminal software. See bellow picture how it look like.

Interfacing GSM module with PIC Microcontroller

Here you can find the step by step process of how we test AT command? Must see the video:

AT Command:

AT+CMGF Message Format : This command is used to select SMS protocol data unit (PDU) mode or SMS Text mode.

AT+CSCS Select TE character set : This command informs the data card of which character set is used by the TE. The data card is then able to convert character strings correctly between TE and ME character sets.

AT+CMGS Send Message : Sends a message from a TE to the network (SMS-SUBMIT). The message reference value <mr> is returned to the TE on successful message delivery. Sending can be cancelled with the <ESC> character. <ctrl-Z> must be used to indicate the ending of the message body.

Circuit Diagram:

Bellow you will see the Circuit Diagram of interfacing GSM module with pic microcontroller

Interfacing GSM module with PIC Microcontroller schematic

Now to run this project you need the Embedded C Code. I write the C code on Mikcro c Pro for Pic bellow you will see the C-Code

Embedded C Code
// Name : Interfacing GSM module with PIC Microcontroller
// Purpose : To send SMS from PIC Microcontroller.
// Author : Subham Dutta
// Date : 03-01-14
// Website : www.nbcafe.in
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_RS_Direction at TRISD2_bit;
sbit LCD_EN_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
void main() {
int a[10];
lcd_init();
Lcd_Cmd(_LCD_CLEAR);
lcd_out(1,1,”Send SMS to”);UART1_Init(9600); // Initialize UART module at 4800 bps
UART1_Write_Text(“AT+CMGS=”);
Delay_ms(1000);
lcd_out(2,1,”9800220107″);
UART1_Write(0x22); //” double qoute
Delay_ms(2000);
UART1_Write_Text(“9800220107”); // Your Telephone Number cd_chr_cp(uart_rd);
UART1_Write(0x22); //” double qoute
UART1_Write(0x0D); // mean Enter
Lcd_Cmd(_LCD_CLEAR);
lcd_out(1,1,”MASSAGE:”);
lcd_out(2,1,”WWW.NBCAFE.IN”);
Delay_ms(2000);
UART1_Write(0x22);
UART1_Write_Text(“WWW.NBCAFE.IN”); //My Text Test
UART1_Write(0x22); //” double qoute
Delay_ms(2000);
UART1_Write(26); //Ctr +Z
Delay_ms(2000);
UART1_Write(0x0D); // mean Enter
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
lcd_out(1,1,”SEND”);
lcd_out(2,1,”SUCCESSFULLY”);
}

For Proteus circuit diagram and how It simulate?  must see the video given bellow.

 

Source : Interfacing GSM module with PIC Microcontroller

Quick Solutions to Questions related to Interfacing GSM module with PIC Microcontroller:

  • What is the main objective of this project?
    The objective is to send an SMS to a specified GSM mobile number.
  • How can you test the AT command?
    You can easily test it on Windows Hyperterminal software.
  • Which command selects the SMS Text mode?
    The AT+CMGF command is used to select SMS protocol data unit mode or SMS Text mode.
  • What does the AT+CSCS command do?
    This command informs the data card of which character set is used by the TE so it can convert character strings correctly.
  • How do you indicate the ending of the message body in the AT command sequence?
    You must use ctrl-Z to indicate the ending of the message body.
  • At what baud rate is the UART module initialized in the provided code?
    The UART module is initialized at 9600 bps.
  • Which software was used to write the C code for this project?
    The C code was written on MikroC Pro for Pic.
  • What tool is recommended for simulating the circuit diagram?
    Proteus is used for the circuit diagram and simulation.

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