0

members

Easy Basics: Project 070a SIM900 GSM GPRS Quad-Band Development Board Shield

of Acoptex.com in UNO

Basics: Project 070a

Project name: SIM900 GSM GPRS Quad-Band Development Board Shield

Tags: Arduino, Arduino Uno, SIM900 GSM GPRS Quad-Band Development Board, SIM900 GSM GPRS module, 531619133647-3, B01IBGDDVM, UN970HL11PMG0NAFAMZ, SIM900 GSM GPRS Shield

Attachments: ATcommandssketch; SendingSMSsketch, ReadingSMSsketch, MakingCallsketch, AnsweringCallSketch, AllinOnesketch

In this project, you needed these parts :

1.Aruduino Uno R3 (you can also use the other version of Arduino)

2.SIM900 GSM GPRS Quad-Band Development Board Shield with GSM/GPRS antenna 1 pc

3.Arduino IDE (you can download it from here

4.Jumper cables M-M, F-M

5.Standard SIM card 1 pc (unlocked). If you have micro or nano you may consider getting a SIM card size adapter.

6. USB to TTL/Serial adaptor/converter 1 pc

7. To power module: 4.8~5VDC 2A power adapter

8. SIM card size adapter 1pc (optional)

General

In this project we will learn how to connect SIM900 GSM GPRS Quad-Band Development Board to Arduino board and use it to call, write SMS.

Understanding the USB to TTL converter

You can read more about them here.

Understanding the SIM900 GSM GPRS Quad-Band Development Board 


A7 module is a GSM/GPRS/GPS function module.
It supports GSM/GPRS Quad-Band(850/900/1800/1900) network.
Also, it supports voice calls,SMS messages,GPRS data service and GPS function .
We can use it make a simple phone.
The module is controlled by AT command via UART and supports 3.3V and 4.2V logical level.
Features
Support the GSM / GPRS four bands, including 850,900,1800,1900MHZ
Support China Mobile and China Unicom’s 2G GSM network worldwide
GPRS Class 10
Support voice calls
Support SMS text messaging
Support GPRS data traffic, the maximum data rate, download 85.6Kbps, upload 42.8Kbps
Supports standard GSM07.07,07.05 AT commands and extended commands Ai-Thinker
Support GPS and AGPS
Supports two serial ports, a serial port to download an AT command port
AT command supports the standard AT and TCP / IP command interface
Support digital audio and analog audio support for HR, FR, EFR, AMR speech coding
Support ROHS, FCC, CE, CTA certification
SMT 42PIN
Specifications
Operating temperature -30 ℃ to + 80 ℃
Operating Voltage 3.3V-4.2V
Power voltage> 3.4V
Sensitivity <-105
Standby average current 3ma less
1KG peak suction
Package list
A7 GPRS+GSM+GPS Shield x1
GSM antenna x1
GPS antenna x 1

The GPRS Shield provides you a way to communicate using the GSM cell phone network. The shield allows you to achieve SMS, MMS, GPRS and Audio via UART by sending AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands). The shield also has the 12 GPIOs, 2 PWMs and an ADC of the SIM900 module(They are all 2V8 logic) present onboard.

Features:

  • Quad-Band 850 / 900/ 1800 / 1900 MHz – would work on GSM networks in all countries across the world.
  • GPRS multi-slot class 10/8
  • GPRS mobile station class B
  • Compliant to GSM phase 2/2+
  • Class 4 (2 W @ 850 / 900 MHz)
  • Class 1 (1 W @ 1800 / 1900MHz)
  • Control via AT commands – Standard Commands: GSM 07.07 & 07.05 | Enhanced Commands: SIMCOM AT Commands.
  • Short Message Service – so that you can send small amounts of data over the network (ASCII or raw hexadecimal).
  • Embedded TCP/UDP stack – allows you to upload data to a web server.
  • RTC supported.
  • Selectable serial port.
  • Speaker and Headphone jacks
  • Low power consumption – 1.5mA(sleep mode)
  • Industrial Temperature Range – -40°C to +85 °C
  • Size:8.5×5.7x2cm(approx)

Specifications for Fax

•Group 3, class 1

Specifications for GPRS Data

•GPRS class 10: max. 85.6 kbps (downlink)

•PBCCH support

•Coding schemes CS 1, 2, 3, 4

•PPP-stack

Specifications for CSD Data

•USSD

•Non transparent mode

Specifications for SMS via GSM/GPRS

•Point to point MO and MT

•SMS cell broadcast

•Text and PDU mode

Software features

•0710 MUX protocol

•Embedded TCP/UDP protocol

•FTP/HTTP

Special firmware

•Embedded AT

•Java (cooperate with Iasolution)

•FOTA

•MMS

Specifications for Voice

•Tricodec

– Half rate (HR)

– Full rate (FR)

– Enhanced Full rate (EFR)

•AMR

– Half rate (HR)

– Full rate (FR)

•Hands-free operation

(Echo suppression)

Interfaces

•Interface to external SIM 3V/ 1.8V

•Analog audio interface

•RTC backup

•SPI interface (option)

•Serial interface

•Antenna pad

•I2C

•GPIO

•PWM

•ADC

Compatibility

•AT cellular command interface

Certifications:

•CE

•FCC

•ROHS

•PTCRB

•GCF

•IC

•ICASA

•REACH

Carrier Approvals:

•NCC

•Anatel

•Rogers

•Orange

•AT&T

•Vodafone

The product is provided as is without an insulating enclosure. Please observe ESD precautions specially in dry (low humidity) weather.

Application:

  • M2M (Machine 2 Machine) Applicatoions.
  • Remote control of appliances.
  • Remote Weather station or a Wireless Sensor Network.
  • Vehicle Tracking System with a GPS module.

Indicator LEDs

There are three indicator LEDs(PWR(Green), Staus(Blue), Netlight(Red)) on the GPRS Shield, users can know about the working state of the shield based on the three indicator LEDs. Detailed information please refer to the following table:

SIM900 IC module

Designed for global market, SIM900 is a quad-band GSM/GPRS module that works on frequencies GSM 850MHz, EGSM 900MHz, DCS 1800MHz and PCS 1900MHz. SIM900 features GPRS multi-slot class 10/ class 8 (optional) and supports the GPRS coding schemes CS-1, CS-2, CS-3 and CS-4. With a tiny configuration of 24*24*3mm, SIM900 can meet almost all the space requirements in user applications, such as M2M, smart phone, PDA and other mobile devices. SIM900 has 68 SMT pads, and provides all hardware interfaces between the module and customers’ boards.

  • Serial port and debug port can help user easily develop user’s applications.
  • Audio channel which includes a microphone input and a receiver output.
  • Programmable general purpose input and output.
  • The keypad and SPI display interfaces will give users the flexibility to develop customized applications. 

SIM900 is designed with power saving technique so that the current consumption is as low as 1.0mA in sleep mode. SIM900 integrates TCP/IP protocol and extended TCP/IP AT commands which are very useful for data transfer applications.

Operating Modes:

 1.Normal operation

GSM/GPRS SLEEP. Module will automatically go into sleep mode if the conditions of sleep mode are enabling and there is no on air and no hardware interrupt (such as GPIO interrupt or data on serial port). In this case, the current consumption of module will reduce to the minimal level. In sleep mode, the module can still receive paging message and SMS.

GSM IDLE. Software is active. Module registered to the GSM network, and the module is ready to communicate.

GSM TALK. Connection between two subscribers is in progress. In this case, the power consumption depends on network settings such as DTX off/on, FR/EFR/HR, hopping sequences, antenna.

GPRS STANDBY. Module is ready for GPRS data transfer, but no data is currently sent or received. In this case, power consumption depends on network settings and GPRS configuration.

GPRS DATA. There is GPRS data transfer (PPP or TCP or UDP) in progress. In this case, power consumption is related with network settings (e.g. power control level); uplink/downlink data rates and GPRS configuration (e.g. used multi-slot settings).

2.Power down

Normal power down by sending the AT command “AT+CPOWD=1” or using the PWRKEY. The power management unit shuts down the power supply for the baseband part of the module, and only the power supply for the RTC is remained. Software is not active. The serial port is not accessible. Power supply (connected to VBAT) remains applied.

3. Minimum functionality mode

AT command “AT+CFUN” can be used to set the module to a minimum functionality mode without removing the power supply. In this mode, the RF part of the module will not work or the SIM card will not be accessible, or both RF part and SIM card will be closed, and the serial port is still accessible. The power consumption in this mode is lower than normal mode.

You can find more information about SIM900 here, SIM900D here, SIM900R here. Check for SIM900 Schematics here, SIM900 datasheet here.

The factory default setting for the SIM900 GSM GPRS Quad-Band Development Board  UART is 19200 bps 8-N-1. (Can be changed using AT commands).

You can find the AT commands list here.

Signals and connections of the USB to TTL converter

 You can read more about them here.

Signals and connections of the SIM900 GSM GPRS Quad-Band Development Board 


D9 of Arduino - Used for software control the power up or down of the SIM900

A4 and A5 of Arduino - connected to the I2C pins on the SIM900. The SIM900 however cannot be accessed via the I2C

Power jack - connected to external 4.8~5VDC power supply

Power select switch - select the power supply for GPRS shield (external power or 5VDC of Arduino board)

Serial port select - select either software serial port or hardware serial port to be connected to GPRS Shield

Hardware Serial - D0/D1 of Arduino

Software serial - D7/D8 of Arduino

EN - module power control enable pin (can control power switch, default high level enable)

4.1V - external power supply pin (4.2VDC). 

GND - ground pin.

RXD - serial port for AT commands (receive pin)

TXD - serial port for AT commands (transmit pin)

Microphone - to answer the phone call

Speaker - to answer the phone call

Wiring

The following picture shows the needed connections with the Arduino Uno 

1. Using Arduino board


2. Using USB to TTL converter

Step by Step instruction

1. Configuring the SIM900 GSM GPRS Quad-Band Development Board

Preparations:

  • You must have coverage on a GSM 850 MHz, GSM 900 MHz, DCS 1800 MHz or PCS 1900 MHz network. GSM means 2G.
  • Use a prepaid plan or a plan with unlimited SMS for testing purposes. Otherwise, if something goes wrong, you may need to pay a lot for SMS text messages sent by mistake.
  • SIM900 GSM GPRS Quad-Band Development Board uses the original SIM card size. If you have micro or nano you will need to get a SIM card size adapter.
  • Make sure your SIM card is unlocked. To use the SIM card with the SIM900 GSM GPRS Quad-Band Development Board, you need to turn off the pin lock. The easiest way to do this - insert the SIM card in your smartphone and turn off the pin lock in the phone security settings.
  • You can automatically turn on the SIM900 GSM GPRS Quad-Band Development Board via software too.
  1. Do wiring.
  2. Attach GSM/GPRS antenna to SIM900 GSM GPRS Quad-Band Development Board. Make sure the antenna is well connected. A miniature coaxial RF connector is present on the SIM900 GSM GPRS Quad-Band Development Board to connect with a GSM/GPRS Antenna.The connector present on the GPRS Shield is called a U.FL connector. The GSM Antenna supplied with the SIM900 GSM GPRS Quad-Band Development Board has an SMA connector (and not an RP-SMA connector) on it. A patch cord is also supplied with the SIM900 GSM GPRS Quad-Band Development Board  to interface the antenna to the board.
  3. Insert a valid unlocked SIM card to SIM Card Holder (slot) - 6 Pin Holder for SIM Cards. Both 1.8 volts and 3.0 volts SIM Cards are supported by SIM900 - the SIM card voltage type is automatically detected.. 
  4. On the Serial port select, make sure the jumper cap is connected as shown in figure below to use software serial.
  5. You can power up SIM900 GSM GPRS Quad-Band Development Board with power supply adapter (5VDC 2A) POWER JACK interface. 
  6. We used the 5V DC 2A power adapter. Next to the power jack there is a toggle switch to select the power source. Next to the toggle switch on the board, there is an arrow indicating the toggle position to use an external power supply – move the toggle switch to use the external power supply as shown above.When the module powered on, the green LED power on indication (PWR) will be ON. 
  7. To power up/down the shield press the  POWER KEY for about 2 seconds.
  8. Then, the Status LED (blue) will light up and the NetLight LED (red) will blink every 800 ms until it finds the network. When it finds the network, the NetLight LED will start blinking every three seconds.
  9. Open Arduino IDE.
  10. Plug your Adruino Uno board into your PC and select the correct board and com port
  11. Verify and upload this sketch to your Adruino Uno
  12. Open up serial monitor and set your baud to 19200 baud and select Both NL&CR.
  13. First you need to check if AT commands are working - enter “AT” and press  Send button.This would print "OK" which signifies of working connection and operation of the module.
  14. Enter “AT+GMI” and press Send button. Returns the Manufacturer Identification of the module: “SIMCOM_Ltd OK”
  15. Enter “AT+GSN” and press Send button. Returns the TA Serial Number Identification (IMEI) of the module: “814527024419031 OK”
  16. Enter “AT+GMM” and press Send button. Returns the TA Model Identification of the module: “SIMCOM_SIM900A OK”
  17. Call Control Commands. If you call the cell number of Sim Card then message RING will be shown. 1) Answer a call. Enter "ATA" and press Send button; 2) Make a call. Enter number to call "ATDP+37163055289" and press Send button; 3) Disconnect existing call. Enter "ATH" and press Send button. 
  18. SMS Commands. Set the SIM900 to text mode: "AT+CMGF=1\r". Send SMS to a number: "AT+CMGS=PHONE_NUMBER" (in international format). Read the first SMS from the inbox: "AT+CMGR=1\r". Read the second SMS from the inbox: "AT+CMGR=2\r" . Read all SMS from the inbox: "AT+CMGR=ALL\r".
  19. Check the list of all AT commands here.

2. Configuring the GSM GPRS GPS Bluetooth module USB to TTL converter

For using this USB to UART Converter you need a software tool. Most of the development tools like MikroC Pro, Arduino has a UART Tool along with it. You can use different software tools: Terminal, USR-TCP232-Test V1.4, AiThinker_Serial_Tool_V1.2.3, coolterm, sscom3.2 , KiTTY, putty,tera term, Access port and so on. We recommend you to use AiThinker_Serial_Tool_V1.2.3 or sscom3.2, as you can save your AT commands and it's very easy to use.

  1. Do wiring.
  2. Attach GSM/GPRS antenna to SIM900 GSM GPRS Quad-Band Development Board. Make sure the antenna is well connected. A miniature coaxial RF connector is present on the SIM900 GSM GPRS Quad-Band Development Board to connect with a GSM/GPRS Antenna.The connector present on the GPRS Shield is called a U.FL connector. The GSM Antenna supplied with the SIM900 GSM GPRS Quad-Band Development Board has an SMA connector (and not an RP-SMA connector) on it. A patch cord is also supplied with the SIM900 GSM GPRS Quad-Band Development Board  to interface the antenna to the board.
  3. Insert a valid unlocked SIM card to SIM Card Holder (slot) - 6 Pin Holder for SIM Cards. Both 1.8 volts and 3.0 volts SIM Cards are supported by SIM900 - the SIM card voltage type is automatically detected.. 
  4. On the Serial port select, make sure the jumper cap is connected as shown in figure below to use software serial.
  5. You can power up SIM900 GSM GPRS Quad-Band Development Board with power supply adapter (5VDC 2A) POWER JACK interface. 
  6. We used the 5V DC 2A power adapter. Next to the power jack there is a toggle switch to select the power source. Next to the toggle switch on the board, there is an arrow indicating the toggle position to use an external power supply – move the toggle switch to use the external power supply as shown above.When the module powered on, the green LED power on indication (PWR) will be ON. 
  7. To power up/down the shield press the  POWER KEY for about 2 seconds.
  8. Then, the Status LED (blue) will light up and the NetLight LED (red) will blink every 800 ms until it finds the network. When it finds the network, the NetLight LED will start blinking every three seconds.
  9. Plug your USB to TTL converter into your PC USB port.
  10. Download and install driver for your USB to TTL converter.
  11. Download, install and open software tool.
  12. Set the baud rate 19200, data bits 8, parity bits none,stop bits one.
  13. First you need to check if AT commands are working - enter “AT” and press  Send button.This would print "OK" which signifies of working connection and operation of the module.
  14. First you need to check if AT commands are working - enter “AT” and press  Send button.This would print "OK" which signifies of working connection and operation of the module.
  15. Enter “AT+GMI” and press Send button. Returns the Manufacturer Identification of the module: “SIMCOM_Ltd OK”
  16. Enter “AT+GSN” and press Send button. Returns the TA Serial Number Identification (IMEI) of the module: “814527024419031 OK”
  17. Enter “AT+GMM” and press Send button. Returns the TA Model Identification of the module: “SIMCOM_SIM900A OK”
  18. Call Control Commands. If you call the cell number of Sim Card then message RING will be shown. 1) Answer a call. Enter "ATA" and press Send button; 2) Make a call. Enter number to call "ATDP+37163055289" and press Send button; 3) Disconnect existing call. Enter "ATH" and press Send button. 
  19. SMS Commands. Set the SIM900 to text mode: "AT+CMGF=1\r". Send SMS to a number: "AT+CMGS=PHONE_NUMBER" (in international format). Read the first SMS from the inbox: "AT+CMGR=1\r". Read the second SMS from the inbox: "AT+CMGR=2\r" . Read all SMS from the inbox: "AT+CMGR=ALL\r".
  20. Check the list of all AT commands here.

3. Automatically turn on the SIM900 GSM GPRS Quad-Band Development Board 

Instead of manually pressing the POWER KEY to turn on the SIM900 GSM GPRS Quad-Band Development Board, you can automatically turn on the SIM900 GSM GPRS Quad-Band Development Board via software.

  1. You need to solder R13 connections on the SIM900 GSM GPRS Quad-Band Development Board.
  2. Connect D9 on the SIM900 GSM GPRS Quad-Band Development Board to the digital pin 9 of Arduino board.
  3. Add the following code snippet in the setup() function. This is the equivalent of pressing the SIM900 GSM GPRS Quad-Band Development Board POWER KEY:

digitalWrite(9, HIGH);

delay(1000);

digitalWrite(9, LOW);

delay(5000);

Code

Making a CALL. Don’t forget to change in the code the phone number you want to call.To make the call, you use the callSomeone() function that uses the ATD command. SIM900.println("ATD + +XXXXXXXXX;"); You need to replace the X‘s (highlighted in red) with the phone number you want to call. Don’t forget to connect a microphone and earphones to make the call. In this code example, the call is hang up after 30 seconds, using the ATH command: SIM900.println("ATH"); Hanging up after 30 seconds is not very useful, but it works well for an example. The idea is that you use the ATH command when an event is triggered. For example, connect a push button to the Arduino, that when pressed sends the ATH command to hang up the phone.

Answering a Call. When someone calls the SIM900 number, it sends a message saying “RING”. To know if someone is calling you, you can wait for incoming characters from the SIM900 and then, compare if it was a RING message.  That’s what is done in this code. When it receives a RING message, you send the ATA command to answer the phone.

Sending SMS. In this code, you start by including the SoftwareSerial.h library and create a software serial port on pins 7 and 8 (Pin 7 is being set as RX and 8 as TX). The sendSMS() function created is what actually sends the SMS. This function uses the AT commands: AT+CMGF=1\r and AT + CMGS. You need to change the recipient’s mobile number at: (replace the X‘s with the recipient’s phone number). The recipient’s mobile number should be in international format. Then you can edit the text you want to send.

Reading SMS. After uploading, wait 20 seconds for the SIM900 GSM GPRS Quad-Band Development Board to establish communication. Then, test the script by sending an SMS to the SIM900 GSM GPRS Quad-Band Development Board  SIM card number. The SMS is shown on the Arduino serial monitor – baud rate: 19200. In this code, you set the module to send the SMS data to the serial output: SIM900.print("AT+CNMI=2,2,0,0,0\r"); You store the incoming characters from the SMS message on the incoming_char variable. You read the chars using the SIM900.read() function.

Summary

We have learnt how to connect SIM900 GSM GPRS Quad-Band Development Board to Arduino board and use it to call, write SMS.

Notes:

  • It happens in some case that it is unable to detect the data that might be the issue with antenna, so unplug the antenna( if it is detachable) and attach it again.
  • If, code says “Check Connection”, then you should definitely check it twice, before giving up. Also, sometimes interchanging the TX and RX pins is preferable and surprisingly works.
  • If SIM900 GSM GPRS Quad-Band Development Board  doesn’t respond with OK. Check your TX and RX connections to the Arduino. Try repeating the process by changing the TX with the RX pins. Also check if you have selected the software serial by placing the jumper cap on the appropriate place on the serial selector.
  • If you cannot see messages in the serial monitor. To see the messages in the serial monitor, the SIM900 GSM GPRS Quad-Band Development Board and the Arduino’s serial port baud rate should be the same. The SIM900 GSM GPRS Quad-Band Development Board default baud rate is 19200. So, select the Arduino’s baud rate to 19200. However, if you need to change the shield baud rate, you can send the following AT command to change it to 19200 or other appropriate baud rate. AT+IPR=19200

Libraries:

  • SoftwareSerial library included in Arduino IDE.  The library has the following known limitations:If using multiple software serial ports, only one can receive data at a time.Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).On Arduino or Genuino 101 the current maximum RX speed is 57600bpsOn Arduino or Genuino 101 RX doesn't work on Pin 13 The library has the following known limitations: If using multiple software serial ports, only one can receive data at a time;Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69);Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI);On Arduino or Genuino 101 the current maximum RX speed is 57600bps; On Arduino or Genuino 101 RX doesn't work on Pin 13. You can read about it here.

Sketch:

  • See attachment on the begining of this project description.


Other projects of Acoptex.com
Easy Basics: Project 083d Sipeed Maixduino Kit for RISC-V AI and IoT of Acoptex.com in ESP8266 ESP-32 16-06-2019
Easy Basics: Project 076f ESP32 Development board - How to use GPIO pins of Acoptex.com in ESP8266 ESP-32 03-06-2019
Easy Basics: Project 082a Lithum battery charger TP4056 of Acoptex.com in UNO 01-06-2019

« Go back to category
Is this project fake? Report it!   
Recommend to a friend
Published at 12-05-2018
Viewed: 1365 times