GSM 900 Module, call and SMS Using PIC 16F877A
By Bernice Zuiya
Connection Rx and Tx
Introduction
GSM 900 Module maybe taken as a wireless mobile phone, it is suitable for embedded applications. With GSM900 a user can access internet, send SMS, Call, etc... almost everything a mobile phone can do.
Features of GSM900 module:
-
Dual-Band 900 / 1800 MHz
-
GPRS multi-slot class 10/8GPRS mobile station class B
-
Control via AT commands
-
Low power consumption: 1.5mA (when this operate in sleep mode)
-
Operation temperature: -40°C to +85 °C
The connection between the micro-controller and the module is as follow:
1. Rx of PIC goes to Tx of GSM module
2. Tx of PIC goes to Rx of GSM module, All with respect to ground (the ground should be common for both circuits).
Working :
As we already know GSM module may be controlled using ATs command via a serial communication of a computer or any device having a serial port communication. In case of this project ATs commands are sent from a micro-controller PIC16F877A.
Code "Call "
// This is a very easy PROGRAM FOR GSM900
// Used to Make a call then after 20 sec Stop.
// Connexions with the Module should be Crossed
// Rx - To - Tx , once the program is already
// In memory of MCU then Reset the Device...
// Bernice Zuiya
char numero[] = "ATD9728856177;";
char call_Stop[] = "ATH";
unsigned int i;
void main() {
UART1_Init(9615);
Delay_ms(1000);
UART1_Write_Text(numero);
UART1_Write(13);
UART1_Write(10);
for(i=0;i<=19;i++){
Delay_ms(1000);
}
UART1_Write_Text(call_Stop);
UART1_Write(13);
UART1_Write(10);
}
Code "Message "
#define baud 9615
char numero[]="+919728856177"; // NUMBER
char message[]=" Msg Automatic OSat"; // MESSAGE
int _Enter_Button(void){
UART1_Write(13);
UART1_Write(10);
}
int _Message_Send(void){
UART1_Write(26);
UART1_Write(26);
}
void main(void) {
UART1_Init(baud);
Delay_ms(10);
UART1_write_Text("AT+CMGS=");
UART1_Write(0X22); // double quotes
UART1_write_Text(numero);
UART1_Write(0X22); // double quotes
_Enter_Button();
Delay_ms(1000);
UART1_write_Text(message);
_Message_Send();
_Enter_Button();
Delay_ms(500);
}
This code were written using mikroC compiler software, you can copy and compile it or modify it as well, this is used to blink an led OFF and ON (second).