Make a Phone Call Using the SIM900 GSM Shield & Arduino - Visuino Tutorial

by RonFrtek in Circuits > Arduino

331 Views, 3 Favorites, 0 Comments

Make a Phone Call Using the SIM900 GSM Shield & Arduino - Visuino Tutorial

Make a Phone Call Using the SIM900 GSM Shield & Visuino

In this tutorial you will learn how to make a phone call using the SIM900 GSM Shield and Visuino.

With one button you will be able to start a call and end the call with the second button.

 You will also learn how to use the "Serial Software" component in Visuino.

Watch the Video!

What You Will Need

71UOHZ3zGML.jpg
arduino-button.png
resistor-1k-ohm-14w-5.jpg
FZEK4WBK3XGYAP0.LARGE.jpg
VisuinoAdvrtisemenNeuroShield-small (1).jpg
power-5v.jpg
  • SIM900 GSM Shield
  • Sim card (You should disable the pin request on the sim card before using it with the GSM shield)
  • Breadboard
  • 2X button
  • 2X 1Kohm resistor
  • 5V power supply with enough amps for the shield
  • Visuino program: Download Visuino


The Circuit

2023-10-11_14-40-28.jpg
FHI0APDIQS4L0RA.jpg
71UOHZ3zML.jpg
  • Connect the SIM900 GSM Shield to the Arduino


  • Connect Arduino pin [5V] to breadboard positive pin [Red line]
  • Connect Arduino pin [GND] to breadboard negative pin [Black line]


  • Connect Arduino Digital pin [2] to button1 on the breadboard and to the Resistor1
  • Connect other side of the resistor1 to the breadboard pin [GND]
  • Connect Other pin of the button1 to the breadboard positive pin [5V]


  • Connect Arduino Digital pin [2] to button1 on the breadboard and to the Resistor1
  • Connect other side of the resistor1 to the breadboard pin [GND]
  • Connect Other pin of the button1 to the breadboard positive pin [5V]


  • Connect with the Jumpers on the shield pins D8(RX) & D7(TX) like you see it on the picture
  • Make sure that the antenna is connected to the shield
  • Connect the 5V Power Supply to the shield, and set the switch on the shield to the External Power (See the picture)
  • Once the Power is connected hold the Power button for 2s
  • Once the connection with the Network is established the LED will blink every 3s


Start Visuino, and Select the Arduino UNO Board Type

select-board-uno.jpg
Visuino-Select-Board-UNO.jpg

Start Visuino as shown in the first picture Click on the "Tools" button on the Arduino component (Picture 1) in Visuino When the dialog appears, select "Arduino UNO" as shown on Picture 2

In Visuino Add Components

2023-09-15_9-45-05.png
2023-10-11_13-27-35.png
2023-10-11_13-28-00.png
  • Add "Software Serial Port" component
  • Add "Add "Text Value" component
  • Add 2X "Debounce Button" component

In Visuino Set Components

2023-10-11_14-01-32.png
2023-10-11_14-07-38.png
2023-10-11_14-09-27.png
  • Double click on the "TextValue1" and in the Elements window drag "Set Value" to the left side and in the properties window set "Value" to ATDP+ PHONE_NUMBER (International Format) & add semicolon at the end

Example: ATDP+38470987541;

  • In the Elements window Drag another "Set Value" to the left side and in the properties window set "Value" to ATH

Example: ATH

  • Close the Elements window

In Visuino Connect Components

2023-10-11_14-13-25.png
gsm.png
  • Connect Arduino digital pin [2] to "Button1" pin [In]
  • Connect Arduino digital pin [3] to "Button2" pin [In]
  • Connect "Button1" pin [Out] to "TextValue1" > "Set Value1" pin [In]
  • Connect "Button2" pin [Out] to "TextValue1" > "Set Value2" pin [In]
  • Connect "TextValue1" pin [Out] to "SoftwareSerial1" pin [In]
  • Connect "SoftwareSerial1" pin [RX] to Arduino Digital pin [7]
  • Connect "SoftwareSerial1" pin [TX] to Arduino Digital pin [8]



Generate, Compile, and Upload the Arduino Code

FBR42I2KXBU01YW.jpg

In Visuino, at the bottom click on the "Build" Tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Play

When you power the Shield wait a bit for the connection with the network to be established, once the connection is established the LED on the shield will blink every 3s.

Now you can press a button and you will make a call. To end the call just press the other button.

Congratulations! You have completed your GSM project with Visuino. Also attached is the Visuino project, that I created for this Tutorial. You can download and open it in Visuino: https://www.visuino.eu

Downloads

Using the Serial Window to Send Commands

2023-10-11_13-16-33.png
  • Add "Software Serial Port" component


  • Connect Arduino Serial pin [Out] to "SoftwareSerial1" pin [In]
  • Connect "SoftwareSerial1" pin [RX] to Arduino Digital pin [7]
  • Connect "SoftwareSerial1" pin [TX] to Arduino Digital pin [8]
  • Connect "SoftwareSerial1" pin [Out] to Arduino Serial pin [In]

Upload the project (see the step Generate, Compile, And Upload The Arduino Code) and in Visuino select "Serial" tab, select the Port and click "Connect" button.

  • Once connected you can start sending the commands to the module by typing for example: AT;
  • This will ask the GSM Shield for the current status

Also attached is the Visuino project

Troubleshooting

  • Supplying the SIM900 shield with enough power is very important, if it will not get enough power it might turn off
  • AT command must have a semicolon at the end or it might return the message "NO CARRIER"
  • Some mobile operators might block the GSM modules, in that case contact your mobile operator and ask for more information.

Extra

  • You can Connect the headphones and a microphone to the Audio Jack connectors on the shield.
  • Instead of the buttons you could connect a sensor for example PIR motion detection sensor to trigger a phone call every time the movement is detected, check this tutorial for more information: https://www.instructables.com/How-to-Use-PIR-Sensor-and-a-Buzzer-Module-Visuino-/
  • Experiment with other AT commands:
  • Command ATA – Accepts the incoming call.
  • Command ATH – Hangs up the call.
  • Command AT+CMGF=1\r will set the SIM900 shield to text mode
  • Command AT+CMGS=PHONE-NUMBER (international format) will send SMS to a number
  • Command  AT+CMGR=1\r will read the first SMS from the inbox
  • Command AT+CMGR=2\r will read the second SMS from the inbox
  • Command AT+CMGR=ALL\r will read all SMS from the inbox