SIM800C GSM/GPRS RS232 MODEM (DB9)
SIM800C GSM/GPRS RS232 MODEM (DB9), the latest addition to rhydoLABZ GSM/GPRS modem, helps to add wireless connectivity to your project using RS232 UART interface. It is built with Quad Band GSM/GPRS engine – SIM800C, that works on frequencies 850/ 900/ 1800/ 1900 MHz.You can connect the modem directly to PC as well as microcontroller with RS232 Chip(MAX232). The baud rate is configurable from 9600-115200 through AT command. The GSM/GPRS Modem is having internal TCP/IP stack to enable you to connect with internet via GPRS.
The Modem is manufactured with Automatic Pick and place machine with high quality standard.The onboard Low dropout 3A Power supply allows you to connect wide range unregulated power supply . Using this modem,you can make audio calls, SMS, Read SMS, attend the incoming calls and internet etc through simple AT commands
Features
- Make and receive voice calls, Send and receive SMS messages
- Send and receive GPRS data (TCP/IP, HTTP, etc.)
- Configurable Baud rate (9600-115200, factory default value: 9600)
- AT command interface
- Input Voltage : 5V-12 V
- Sim card socket
- Network, Status and Power indication LED’s
- Network, modem status,CTS/RI and RTS/RF SYNC can be taken via DB9 connector
- On board SMA connector for GSM antenna
- Provision for UFL connector for external antenna
- Option for audio interface
- Normal operation temperature: -40 °C to +85 °C
- Provision for firmware updation.
- Low power consumption.
- M39302 linear voltage regulator is used for provides a low-dropout,high-current output
- Onboard MAX232 IC for level conversion.
- Power supply voltage is 3.3V~4.4V
GSM/GPRS Specification
PIN DIAGRAM
K1 DC CONNECTOR
K4:USB Connector
K5:Power Connector
Connect 5V to 12V from an external power supply .
K7:Speaker and MIC connector
K6:DB9 Female Connector
LAYOUT DIAGRAM
GETTING STARTED
- Insert an unlocked SIM card to SIM card Holder. 6 Pin Holder for SIM Cards is provided on the Modem.
- Close SIM card Holder.Both 1.8 volts and 3.0 volts SIM Cards are supported by SIM800C .the SIM card voltage type is automatically detected.
- Assemble GSM Antenna to the modem
- Connect serial cable to the modem.
- Give power supply in between 5V to 12V through the power jack provided.
- Default factory Baud rate is 9600.
- When the modem is successfully powered-up, the PWR LED (RED) on the modem will be ON, the STS LED (GREEN) will light after 1-2 seconds and the NET LED(BLUE) will blink every second. After the Modem registers in the network (takes between 10-60 seconds), this LED will blink in step of 3 seconds.
LED Status Description
The Network LED indicates the various status of GSM module eg. Power on, Network registration & GPRS connectivity. When the modem is powered up, this NETWORK LED will blink every second. After the Modem registers in the network (takes between 10-60 seconds), this LED will blink in step of 3 seconds. At this stage you can start using Modem for your application,showing that modem is registered with the network.
How to Test
Check your GSM/GPRS modem using Terminal software
- You can directly connect SIM800C GSM/GPRS RS232 modem (DB9) to your PC through serial port, no need of any interfacing modules.
- If serial port is not there in your PC (some laptops doesn’t have serial port interface) then you can use USB to serial Adapter(DB9) for this purpose.
- Once you are done with all these procedures, check appropriate COM port that got assigned to the Communication Port in your system by looking into the device manager like as shown below.
- Since we are using Hyper Terminal software and select the com port and baud rate(default baud rate 9600) and press OK button.
- Now let’s try to check our Modem with AT commands for that we need to send following AT commands to Modem as shown below.
- AT command (followed by enter) after “OK” response, this signifies that our Modem is working properly.
- ATE0 command (followed by enter) is being sent to stop the echo.
- AT+CREG? (followed by enter) is being used to check whether the SIM got registered or not.
Sending the text message from PC using AT commands .
Now next let’s send a message using SIM800C GSM/GPRS RS232 modem (DB9).For sending message we need to first send related AT commands to initialize the modem to send a message.
- The AT+CMGF=1 command (followed by enter) sets the GSM Modem in SMS text mode.
- AT+CMGS=<number>followed by enter gives<CR><write message><CTRL-Z><CR> represents the carriage return character.
<Ctrl+z>When you finish entering the SMS message body, you have to enter the <Ctrl+z> character to mark the end of the SMS message body.
+CMGS: x gives OK response; where x = “current number of sent SMS messages”.
Receiving the Text message in Modem and displaying in Hyper terminal.
- Now let’s receive a message usingSIM800C GSM/GPRS RS232 modem (DB9) .For receiving message we need to first send related AT commands to initialize the modem.
- AT+CNMI=2,1,0,0,0 command (followed by enter) set the modem to indicate received messages with +CMTI response indicates that new message has been received and shows location number of last received message in above figure it is shown by number ’20′.
-
AT+CMGR=<index> :<index>integer type; value in the range of location numbers supported by the associated memory and gives +CMGR response which includes status i.e “REC UNREAD” Received unread messages,Sender’s number,date,time and received message.
Receiving a voice call from Modem using AT Commands
- For receiving call we need headset,connector jack and modem.
- Headset is connected in the marked pins of GSM Modem
- For receiving a call firstly we need to send some AT commands as shown below.
- Loudspeaker Volume Level
AT+CLVL=?
0..max – the value of max can be read by issuing the Test command
For example:
AT+CLVL=100 -Command is used to select the volume of the internal loudspeaker audio - RING indicates incoming call.
- For Attending call we are using ATA command (followed by enter) gives “OK” response when call is connected.
- For Disconnecting call we are using ATH command (followed by enter) gives “OK” response when call is disconnected.
TESTING WITH ARDUINO
Sample code below shows how we can send a message using Arduino interfacing with modem
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void setup() { Serial.begin(9600); // set the baud rate } void loop() { Serial.print("AT\r\n"); // Transmit AT to the module delay(500); // wait for a 500ms delay Serial.print("ATE0\r\n"); // Echo Off delay(500); // wait for a 500ms delay Serial.print("AT+CMGF=1\r\n"); // Switch to text mode delay(500); // wait for a 500ms delay Serial.print("AT+CNMI=2,1,0,0,0\r\n"); // Msg:settings command delay(500); // wait for a 500ms delay Serial.print("AT+CMGS=\"919874563210\"\r\n"); // Send SMS to a cell number delay(500); // wait for a 500ms delay Serial.print("\rTest SMS from rhydoLABZ.com-Cochin\r\n"); // Input SMS Data Serial.print('\x1A'); // Ctrl-Z indicates end of SMS delay(500); // wait for a 500ms delay while(1); } |
TESTING WITH PIC16F877A
Sample code below shows how we can send a message using pic microcontroller interfacing with modem.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
/******************************************************************************* * Microcontroller -- PIC 16 F877 - 40-pin - 8-bit * * Clock Frequency is 20 MHz -- Period in 200 Nano Seconds * * Gsm communications are done using USART - BaudRate 9600 * * This program sends an SMS to a prefixed number when reseted. * *******************************************************************************/ #include<pic.h> /******************************************************************************* * FUNCTION DEFINITIONS *******************************************************************************/ void Delay_Ms(int ms); void Uart_Initial_Tx_Rx(unsigned long baud); void Uart_Data(unsigned char data); void Send(const char *ptr); void Send_Message(); /******************************************************************************** * CODE AREA ********************************************************************************/ void main() { Uart_Initial_Tx_Rx(9600); Send_Message(); while(1); } /******************************************************************************* * Function : Uart_Initial_Tx_Rx * Description : Usart Initialization function - Baud Rate 9600 * Parameters : baud, for selecting baurd rate *******************************************************************************/ void Uart_Initial_Tx_Rx(unsigned long baud) { TRISC6 = 0; /* Set Tx pin Output and Rx pin Input */ TXEN=1; /* Transmit Enabled */ BRGH=1; /* BaudRate = 9600 */ SYNC=0; /* Asynchronous Mode */ SPEN=1; /* Enable Serial Port */ if(baud == 9600 ) SPBRG = 129; else if (baud == 19200) SPBRG = 64; else if (baud == 38400) SPBRG = 32; else if (baud == 57600) SPBRG = 21; else if (baud == 115200) SPBRG = 10; } /******************************************************************************** * Function : Uart_Data * Description : Function to send data through the UART * Parameters : data, contains the data to be transmitted and is written to * the TXREG register ********************************************************************************/ void Uart_Data(unsigned char data) { TXREG=data; while(TRMT!=1); } /******************************************************************************** * Function : Send * Description : Function to send a string data thru USART * Parameters : ptr, contains the byte to be sent ********************************************************************************/ void Send(const char *ptr) { while(*ptr!='') { TXREG=*ptr; while(TRMT!=1); ptr++; } } /******************************************************************************** * Function : Delay_Ms * Description : Function for milliseconds at 20mhz * Parameters : ms, variable for delay ********************************************************************************/ void Delay_Ms(int ms) { int i,count; for(i=1;i<=ms;i++) { count=498; while(count!=1) { count--; } } } /******************************************************************************** * Function : Send_Message * Description : Function to send commands for sending sms * Parameters : None ********************************************************************************/ void Send_Message() { Send("AT\r\n"); /* Transmit AT to the module */ Delay_Ms(500); /* 500ms delay */ Send("ATE0\r\n"); /* Echo Off */ Delay_Ms(500); /* 500ms delay */ Send("AT+CMGF=1\r\n"); /* Switch to text mode */ Delay_Ms(500); /* 500ms delay */ Send("AT+CNMI=2,1,0,0,0\r\n"); /* Msg:settings command */ Delay_Ms(500); /* 500ms delay */ Send("AT+CMGS=\"9874563210\"\r\n"); /* Send SMS to a cell number */ Delay_Ms(500); /* 500ms delay */ /* Input SMS Data */ Send("\rTest SMS from rhydoLABZ.com-Cochin\r\n"); Uart_Data(0x1A); /* Ctrl-Z indicates end of SMS */ Delay_Ms(500); /* 500ms delay */ } /******************************** END ******************************************/ |
Resources
How to Buy
Leave a Reply
You must be logged in to post a comment.