Articles Blog

Arduino Tutorial: How to make phone call using the Arduino GSM shield (SIM900)

Arduino Tutorial: How to make phone call using the Arduino GSM shield (SIM900)

Dear friends welcome to another video. This is Nick and today I am going to show you how to make a phone call with Arduino,
using the TinySine GSM shield. Let’s go! In this video we build a project where, when the button is pressed, Arduino calls a predefined telephone
number. Let’s try it. I have pressed the button and as you can see the green LED lights up. Now, Arduino is calling my cell phone. Ok, here is the
call. If I press the button once more Arduino hangs up the call. That’s it. It works great! Now, I’m going to press the button again but this time I have connected a microphone to the pink input, so we can hear what Arduino has to say. I will place a small radio close to the microphone and i will move to another room. Let’s make a call. As you can see, Arduino is calling. We have connected and we have placed a microphone close to the radio and let’s hear the sound. As you can see, the sound is great. We are using the Arduino cell phone. Now, let’s see how to connect all the parts together in order to achieve this result. The parts needed in order to build this project are these: we need an Arduino Uno, the TinySine GSM shield, a SIM card in order to use a GSM network, a LED and a button. Let’s connect them together. First, we connect the GSM shield with
Arduino Uno. The SIM card is already placed beneath and be sure that you have disabled the PIN number from the SIM card. I have prepared many detailed tutorials about the TinySine GSM shield, so watch them first in order to have a
better understanding of how this shield works. Now, let’s connect the button. We connect one leg of the bottom to the breadboard ground and that goes to Arduino ground. We connect the other leg of the button to digital pin 7 of Arduino. Next, we connect the LED. Positive goes to digital pin 13 and negative to ground. Now, we are ready to connect power. Now, we have to wait for around 30 sec, in order for the SIM to connect to the GSM network. If we press the button now, the LED will turn on and it will call my cell phone. If i press it again, it will turn off and hang up the call. That’s how easy it is to connect all the
parts together. Now, let’s go to the computer to see the software side of the project. The code of the project is very simple. First of all, we need the TinySine GSM library. You can find the library in the description of the video. At first, we connect to the GSM network. If the connection was successful, we read the button state. If the button is pressed and we are not making a call, we make a call. If we are making a call, when the button is pressed, we hang up the call. The code can be downloaded from the
description of the video. As you can see, making phone calls with Arduino is extremely easy. The project that we have built today, can be quite useful for emergency calls from elderly people or people that can’t use phones easily. Now that we know how to make and receive phone calls with Arduino, we can build more advanced projects. How do you plan to use the GSM shield’s phone capabilities? Feel free to post your ideas in the comments section below. If this is your first time here, I would
love to have you subscribed. In this channel, i post DIY hardware and software projects every Saturday. I love making things and helping people doing the same. I hope you will join our community. Thank you very much for watching this video. I will see you next Saturday!

53 thoughts on “Arduino Tutorial: How to make phone call using the Arduino GSM shield (SIM900)”

  1. Nice demo Nick, thanks. It looks like Arduino and GSM could be good for remote monitoring and control of some local FM radio transmitters that have no Internet connections.

  2. Hello,
    can you tell me how to register a phone number on the sim and receive calls only when call incoming.
    Thank so much.

  3. Can we read/write raw voice data from/to serial pins in addition to the mic/headphone ports? I was trying to use raspberry pi and ITEAD rpi gsm addon. I am able to make calls, but unable to receive/send raw voice data through serial board. Relevant suggestion will be helpful.

  4. Hi i am using sim800l and i need to make voice call like you did how do i do that sim800l does not have microphone so i have to connect it separately

  5. Hi
    have you noticed that the code is incomplete, as it does not have enough close brackets at the end of the code? there for it would not compile, very interesting tutorials

  6. Sir, I,m using sim900a mini GSM module and gsm.begin command is not accepting. Always show in the serial monitor like

    Trying to force the baud-rate to 9600

    ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp

    status = IDLE

    please help me to solve this issue..

  7. This always shows in the error

    SoftwareSerialSoftwareSerial.cpp.o: In function `__vector_9':
    C:Program Files (x86)ArduinohardwarearduinoavrlibrariesSoftwareSerial/SoftwareSerial.cpp:227: multiple definition of `__vector_9'
    GSMGSM3SoftSerial.cpp.o:C:Program Files (x86)ArduinolibrariesGSMsrc/GSM3SoftSerial.cpp:499: first defined here
    c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
    SoftwareSerialSoftwareSerial.cpp.o: In function `SoftwareSerial::read()':
    C:Program Files (x86)ArduinohardwarearduinoavrlibrariesSoftwareSerial/SoftwareSerial.cpp:392: multiple definition of `__vector_10'
    GSMGSM3SoftSerial.cpp.o:C:Program Files (x86)ArduinolibrariesGSMsrc/GSM3SoftSerial.cpp:487: first defined here
    SoftwareSerialSoftwareSerial.cpp.o: In function `SoftwareSerial::read()':
    C:Program Files (x86)ArduinohardwarearduinoavrlibrariesSoftwareSerial/SoftwareSerial.cpp:392: multiple definition of `__vector_11'
    GSMGSM3SoftSerial.cpp.o:C:Program Files (x86)ArduinolibrariesGSMsrc/GSM3SoftSerial.cpp:487: first defined here
    collect2.exe: error: ld returned 1 exit status
    Error compiling.

  8. hello, i'm new with the arduino and i will try your code, not show any error but i never receive the phone call, you can help me?

  9. Se volete acquistarlo, questo è il link:

  10. I bought,
    recently, a different gsm shield with the same SIM900 chip. But I am unable to
    register it to gsm network (Wind and COSMOTE), according to status LEDs. My SIM
    card is valid and PIN-unlocked. Is there any possibility that the IMEI of SIM900
    chip is blocked?

  11. Τι διαφορά έχει αυτό το shield από το Arduino GSM Shield 2 που έχει στο

  12. Hi sir, besides a button how can I use an ultrasonic motion sensor to trigger the Arduino to make the phone call?

    How would the code look like?

    Best regards,

  13. I am using some other type of gsm module it doesn't have something like pick socket where microphone can be connected , what are the other ways through which I can connect a microphone.

  14. In the following link you will find the source code for my arduino project which can:
    1)make calls
    2)send sms messages
    3)receive calls and sms messages
    This project was made inspired by this video. Please leave a github star if my code helped you!
    Thank you!

  15. Hi please could you share your thoughts on implementing of Playing a pre recorded voice message when Arduino calls a mobile phone….

  16. Hello and thank you for this effort I have a question I use the same gsm and make a voice call but after 30 seconds soak contact What is the problem please reply

  17. How can i add gps system with this plzz tell me bcz there is my hackathon compilation so i hv to represent it

  18. thanks for your this video, but I can't download the "SIM900" and "call" library. How can I download them

Leave a Reply

Your email address will not be published. Required fields are marked *