SIM808 GSM/GPRS/GPS UART MODEM
rhydoLABZ’s GSM/GPRS/GPS UART Modem is built with Quad Band GSM/GPRS/GPS engine SIM808, works on frequencies 850/900/1800/1900MHz and combines GPS technology for satellite navigation.This module is controlled by AT command via UART and supports 3.3V and 5V logical levels. The baud rate is configurable from 1200-115200 through AT command. The GSM/GPRS/GPS Modem is having internal TCP/IP stack to enable you to connect with internet via GPRS. It is suitable for SMS, Voice as well as DATA transfer application in M2M interface.
The Modem is manufactured with Automatic Pick and place machine with high quality standard.The on board Low dropout 3A Power supply allows you to connect wide range unregulated power supply (5V-12V) . Using this modem,you can make audio calls, SMS, Read SMS, attend the incoming calls,internet, GPS, Bluetooth etc through simple AT commands.It provide ultra-low power consumption in sleep mode and integrated with charging circuit for Li-Ion batteries, that make it get a super long standby time and convenient for projects .
The Modem is coming with selectable interfacing voltage,which allows you to connect 2V8 to 5V .This modem can operate at both TTL 3.3V and 5V Logic Level hence making it suitable for controllers at 5V logic level (PIC, AVR) as well as for 3.3V controllers like ARM based controllers and while interfacing depending upon the controller’s logic level .We should give appropriate voltage to the V_interface pin of the modem like 3.3V or 5V and power the modem with supply range(4.5V-12V). Li-ion Battery is the power supply for the module, input voltage is from 3.4V to 4.4V. It uses the XH-2.0mm connector, that make it convenient to connect to 3.7V Li-Ion battery.
FEATURES
- Quad-band 850/900/1800/1900MHz.
- Controlled by AT Commands.
- Supports charging control for Li-Ion battery.
- Supports Real Time Clock.
- Supply voltage range 3.4V ~ 4.4V.
- Low power consumption, 1mA in sleep mode.
- Supports GPS NMEA protocol.
- Supports TCP/IP and HTTP protocol.
- Standard SIM Card.
- normal operation temperature :-40°C~ +85°C.
- Built in Network Status LED.
- Inbuilt Powerful TCP/IP protocol stack for internet data transfer over GPRS.
- Input Voltage: 4.5V-12V DC.
- Audio interface Connector.
- On board SMA connector with GSM Antenna and GPS antenna.
- Provision for firmware updation.
GSM/GPRS SPECIFICATION
PIN DIAGRAM
PIN DETAILS
K4- AUDIO
K5-8 PIN
K6-6 PIN RMC CONNECTOR
K7-5 PIN RMC CONNECTOR
K8
K1,K2,K3,K9
JUMPERS
LAYOUT
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 SIM808 – 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 4.5V to 12V through the power header OR using LIPO battery(3.7V) to Power up the module .
- Default factory Baud rate is 9600.
- When the modem is successfully powered-up, the Red LED on the modem (PWR) 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 HYPERTERMINAL in PC:
- you need RS232 – TTL (5V) Converter or you can use FTDI Basic Breakout – 5V for making a connection between SIM808 GSM/GPRS/GPS UART Modem and PC.
- Before making connection with the system you should give external supply to the modem (4.5V-12V DC) or using LIPO battery(3.7V) and make the ground of this supply common with GND of modem and the converter.
- Firstly install a virtual serial port loading on the computer FT232RL drivers. Once the drivers are installed, connect the modem, with USB/mini-USB cable, and wait while it is found and that mean drivers are actually installed.
- The connection details and interfacing requirements of with SIM808 GSM/GPRS/GPS UART Modem and rhydoLABZ FTDI Basic Breakout-5V is as shown below
- Connections should be like below :
- TX(modem)-RX(converter TTL)
- RX(modem)-TX(converter TTL)
- V-INT(modem)-pwr(converter TTL)
- Make ground (GND-GND)common.
- Many embedded devices communicate over the serial port connection as most modern computers lack a hardware serial port;USB adaptors are used to convert USB data to standard serial port data and vice versa.
- Once you are done with all these procedures, choose the appropriate COM port that got assigned to the USB in your system by looking into the device manager like as shown below.
- select the serial software Hyper terminal and enter the name and press OK button .
Select the appropriate COM port(Check it on device manager). Set the baudrate which should be 9600, parity none ,data bits 8 and stop bit 1 and flow control can also be kept as none.
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
The above shown command :
- 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 a text message from PC using AT Commands and terminal
Now next let’s send a message using SIM808 GSM/GPRS/GPS UART Modem. 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 and OK; where x = “current number of sent SMS messages”
Receiving a text message in Modem and displaying in terminal
Now let’s receive a message using GSM/GPRS/GPS UART Modem .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 ’19′.
- 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.
- Connections are given below
- Connect MIC -P of Modem to MIC-P of Jack.
- Connect MIC -N of Modem to MIC-N of Jack.
- Connect SPK-P of Modem to SPK-P of Jack.
- Connect SPK-N of Modem to SPK-N of Jack.
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.
Receiving GPS location from Modem using AT Commands
- For GPS power control (ON/OFF)we are using AT+CGPSPWR=1 command (followed by enter) gives “OK” response when GPS is ON.
- AT+CGPSSTATUS is used to Read the GPS fix status . AT+CGPSSTATUS? command(followed by enter) gives” +CGPSSTATUS: Location 3D Fix” response when GPS has fixed with 3D status
- AT+ CGPSOUT is used to Read GPS information. AT+ CGPSOUT=255 command (followed by enter)gives GPS NMEA data output .255 will allow all NMEA data output from Debug UART.
- Sample code shows how we can send a message using PIC 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 |
/******************************************************************************* * 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 ******************************************/ |
Test with Arduino
- Sample code 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 21 |
void setup() { Serial.begin(9600); // set the baud rate 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 } void loop() { Serial.print("AT+CMGS=\"919349160503\"\r\n"); // Send SMS to a cell number delay(500); // wait for a 500ms delay Serial.print("Test SMS "); delay(500); Serial.write(0x1A); // Ctrl-Z indicates end of SMS delay(500); // wait for a 500ms delay while(1); } |
Resources
How to Buy
Leave a Reply
You must be logged in to post a comment.