{"id":42170,"date":"2018-03-14T12:54:19","date_gmt":"2018-03-14T12:54:19","guid":{"rendered":"http:\/\/randomnerdtutorials.com\/?p=42170"},"modified":"2021-08-25T11:06:32","modified_gmt":"2021-08-25T11:06:32","slug":"sim900-gsm-gprs-shield-arduino","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/sim900-gsm-gprs-shield-arduino\/","title":{"rendered":"Guide to SIM900 GSM GPRS Shield with Arduino"},"content":{"rendered":"<p>This post is a complete guide to the SIM900 GSM GPRS Shield with the Arduino. Learn how to send and receive SMS and how to make and receive phone calls with Arduino.<\/p>\n<p><!--more--><\/p>\n<p><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-42171\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-feature-image.png?resize=1200%2C390&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"1200\" height=\"390\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-feature-image.png?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-feature-image.png?resize=300%2C98&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-feature-image.png?resize=768%2C250&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-feature-image.png?resize=1024%2C333&amp;quality=100&amp;strip=all&amp;ssl=1 1024w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>In this guide we\u2019ll cover:<\/p>\n<ul>\n<li>Introducing the SIM900 GSM GPRS Shield<\/li>\n<li>SIM900 GSM GPRS Shield Hardware<\/li>\n<li>SIM900 AT Commands<\/li>\n<li>Testing the shield<\/li>\n<li>Sending and receiving SMS &#8211; example<\/li>\n<li>Making and answering phone calls &#8211; example<\/li>\n<\/ul>\n<h2>Introducing the SIM900 GSM GPRS Shield<\/h2>\n<p>The SIM900 GSM GPRS Shield is shown in figure below.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" class=\"aligncenter size-full wp-image-42172\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield.jpg?resize=700%2C448&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"700\" height=\"448\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield.jpg?resize=300%2C192&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p><strong>GSM<\/strong> stands for <strong>G<\/strong>lobal <strong>S<\/strong>ystem for <strong>M<\/strong>obile Communications and is the global standard for mobile communications.<\/p>\n<p><strong>GPRS<\/strong> stands for <strong>G<\/strong>eneral <strong>P<\/strong>acket <strong>R<\/strong>adio <strong>S<\/strong>ervice. GPRS is a mobile service on the 2G and 3G cellular communication.<\/p>\n<h3>Applications:<\/h3>\n<p>The GSM GPRS shield is particularly useful as it allows to:<\/p>\n<ul>\n<li>Connect to the Internet over GPRS network<\/li>\n<li>Send and receive SMS<\/li>\n<li>Place and receive phones calls<\/li>\n<\/ul>\n<p>Its capabilities make it perfect for projects with Arduino like:<\/p>\n<ul>\n<li>Remote control of electronic appliances &#8211; sending an SMS to turn something on;<\/li>\n<li>Receive notifications &#8211; send SMS to your cell phone if movement is detected in your house;<\/li>\n<li>Receive sensor data &#8211; send periodic SMS to your cell phone with daily weather data.<\/li>\n<\/ul>\n<h3>Features<\/h3>\n<p>Here\u2019s some of the most important features of the shield:<\/p>\n<ul>\n<li>Compatible with Arduino and clones<\/li>\n<li>Based on SIM900 module from SIMCOM<\/li>\n<li>Allows you to send SMS, MMS, GPRS and Audio via UART using AT commands.<\/li>\n<li>It has 12 GPIOs, 2 PWMs and buit-in ADC of the SIM900 module<\/li>\n<li>Quad Band: 850; 900; 1800 and 1900 MHZ, so it should work in all countries with\u00a0GSM (2G) networks<\/li>\n<li>Control via AT commands<\/li>\n<li>Supports RTC (real time clock) &#8211; it has a holder for a 3V CR1220 battery at the back<\/li>\n<\/ul>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" class=\"aligncenter wp-image-42174 size-full\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/RTC-battery-holder.jpg?resize=400%2C272&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"400\" height=\"272\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/RTC-battery-holder.jpg?w=400&amp;quality=100&amp;strip=all&amp;ssl=1 400w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/RTC-battery-holder.jpg?resize=300%2C204&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/p>\n<ul>\n<li>Has microphone and headphone jacks for phone calls<\/li>\n<\/ul>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42173 \" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/jacks.jpg?resize=521%2C242&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"521\" height=\"242\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/jacks.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/jacks.jpg?resize=300%2C139&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/jacks.jpg?resize=510%2C238&amp;quality=100&amp;strip=all&amp;ssl=1 510w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><\/p>\n<h3>Where to buy?<\/h3>\n<p><a href=\"https:\/\/makeradvisor.com\/tools\/sim900-gsm-gprs-shield\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-54566\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/09\/gsm-shield-1.jpg?resize=226%2C305&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"226\" height=\"305\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/09\/gsm-shield-1.jpg?w=416&amp;quality=100&amp;strip=all&amp;ssl=1 416w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/09\/gsm-shield-1.jpg?resize=222%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 222w\" sizes=\"(max-width: 226px) 100vw, 226px\" \/><\/a><\/p>\n<p>You can check the <a href=\"https:\/\/makeradvisor.com\/tools\/sim900-gsm-gprs-shield\/\" target=\"_blank\" rel=\"noopener noreferrer\">SIM900 GSM GPRS shield on Maker Advisor<\/a> and find the best price.<\/p>\n<p>You can use the preceding links or go directly to <a href=\"https:\/\/makeradvisor.com\/tools\/?utm_source=rnt&utm_medium=post&utm_campaign=post\" target=\"_blank\">MakerAdvisor.com\/tools<\/a> to find all the parts for your projects at the best price!<\/p><p style=\"text-align:center;\"><a href=\"https:\/\/makeradvisor.com\/tools\/?utm_source=rnt&utm_medium=post&utm_campaign=post\" target=\"_blank\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/header-200.png?w=1200&#038;quality=100&#038;strip=all&#038;ssl=1\"><\/a><\/p>\n<h2>Preliminary steps<\/h2>\n<p>Before getting started with your SIM900 GSM GPRS module, you need to consider some aspects about the SIM card and the shield power supply.<\/p>\n<h3>GSM coverage<\/h3>\n<p>Ensure you have\u00a0coverage on a GSM 850 MHz, GSM 900 MHz, DCS 1800 MHz or PCS 1900 MHz network. By GSM we mean 2G.<\/p>\n<h3>Prepaid SIM Card<\/h3>\n<p>We recommend that you use a prepaid plan or a plan with unlimited SMS for testing purposes. Otherwise, if something goes wrong, you may need to pay a huge bill for hundreds of SMS text messages sent by mistake. In this tutorial we\u2019re using a prepaid plan with unlimited SMS.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42388\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/SIM-card.jpg?resize=496%2C279&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"496\" height=\"279\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/SIM-card.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/SIM-card.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 496px) 100vw, 496px\" \/><\/p>\n<p>The shield uses the original SIM card size, not micro or nano. If you have micro or nano you may consider getting a <a href=\"http:\/\/ebay.to\/2gbdOcC\" target=\"_blank\" rel=\"noopener noreferrer\">SIM card size adapter<\/a>.<\/p>\n<h3>Turn off the PIN lock<\/h3>\n<p>To use the SIM card with the shield, you need to turn off the pin lock. The easiest way to do this, is to insert the SIM card in your smartphone and turn off the pin lock in the phone security settings.<\/p>\n<p>In my case, I needed to go through: <strong>Settings<\/strong> &gt;\u00a0<strong>Advanced<\/strong> <strong>Settings<\/strong> &gt;\u00a0<strong>Security<\/strong> &gt;\u00a0<strong>SIM lock<\/strong> and turn off the lock sim card with pin.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42367\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/Screenshot_2017-08-25-09-05-25.png?resize=700%2C379&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"700\" height=\"379\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/Screenshot_2017-08-25-09-05-25.png?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/Screenshot_2017-08-25-09-05-25.png?resize=300%2C162&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h3>Getting the right power supply<\/h3>\n<p>The shield has a DC socket for power as shown in figure below.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42432\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/DC-jack.png?resize=699%2C398&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"699\" height=\"398\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/DC-jack.png?w=699&amp;quality=100&amp;strip=all&amp;ssl=1 699w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/DC-jack.png?resize=300%2C171&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><\/p>\n<p>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 &#8211; move the toggle switch to use the external power supply as shown above.<\/p>\n<p>To power up the shield, it is advisable to use a 5V power supply that can provide 2A as the one shown below. It can also be powered with 9V 1A, or 12V 1A.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42383\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-adapter.jpg?resize=481%2C440&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"481\" height=\"440\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-adapter.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-adapter.jpg?resize=300%2C274&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 481px) 100vw, 481px\" \/><\/p>\n<p>You can find the right power adapter for this shield <a href=\"https:\/\/makeradvisor.com\/tools\/5v-2a-power-adaptor-dc-jack\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>. Make sure you select the model with 5V and 2A.<\/p>\n<h2>SIM900 GSM GPRS Shield Hardware<\/h2>\n<p>The figure below shows the back of the shield. It has a holder for the SIM card and for a 3V CR1220 battery for the RTC (real time clock).<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42371\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/DSC01078-Copy.jpg?resize=700%2C504&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"700\" height=\"504\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/DSC01078-Copy.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/DSC01078-Copy.jpg?resize=300%2C216&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>The figure below shows the shield most important components on the board that you need to pay attention to.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield-labels.png?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42433 size-full\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield-labels.png?resize=925%2C538&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"925\" height=\"538\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield-labels.png?w=925&amp;quality=100&amp;strip=all&amp;ssl=1 925w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield-labels.png?resize=300%2C174&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-shield-labels.png?resize=768%2C447&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 925px) 100vw, 925px\" \/><\/a><\/p>\n<h2>Getting started<\/h2>\n<p><strong>1)<\/strong> Insert the SIM card into the SIM card holder &#8211; make sure you&#8217;ve read the preliminary steps in the previous section.<img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42389\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/insert-SIM.jpg?resize=700%2C245&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"700\" height=\"245\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/insert-SIM.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/insert-SIM.jpg?resize=300%2C105&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><strong>2)\u00a0<\/strong>Make sure the antenna is well connected.<\/p>\n<p><strong>3)\u00a0<\/strong>On the serial port select, make sure the jumper cap is connected as shown in figure below to use software serial.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42415\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/software-serial.jpg?resize=700%2C296&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"700\" height=\"296\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/software-serial.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/software-serial.jpg?resize=300%2C127&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><strong>4)\u00a0<\/strong>Power the shield using an external 5V power supply. Make sure you select the external power source with the toggle switch next to the DC jack.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42416\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-select.png?resize=338%2C227&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"338\" height=\"227\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-select.png?w=338&amp;quality=100&amp;strip=all&amp;ssl=1 338w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-select.png?resize=300%2C201&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 338px) 100vw, 338px\" \/><\/p>\n<p><strong>5)\u00a0<\/strong>To power up\/down the shield press the power key for about 2 seconds.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42417\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-key.png?resize=329%2C212&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"329\" height=\"212\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-key.png?w=309&amp;quality=100&amp;strip=all&amp;ssl=1 309w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/power-key.png?resize=300%2C193&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 329px) 100vw, 329px\" \/><strong>6)\u00a0<\/strong>Then, the Status LED will light up and the NetLight LED will blink every 800 ms until it finds the network. When it finds the network, the NetLight LED will start blinking every three seconds.<\/p>\n<p><strong>Note:\u00a0<\/strong>you can automatically turn on the shield via software. See how to do that in the <strong>Automatically turn on the shield<\/strong> section, after the code examples.<\/p>\n<p><strong>7)\u00a0<\/strong>You can test if the shield is working properly by sending AT commands from the Arduino IDE using an FTDI programmer &#8211; as we&#8217;ll shown later in this guide.<\/p>\n<h2>SIM900 AT commands<\/h2>\n<ul>\n<li>set the SIM900 to text mode:\u00a0<strong>AT+CMGF=1\\r<\/strong><\/li>\n<li>send SMS to a number:\u00a0<strong>AT+CMGS=<span style=\"color: #ff0000;\">PHONE_NUMBER<\/span>\u00a0<\/strong>(in international format)<\/li>\n<li>read the first SMS from the inbox:\u00a0<strong>AT+CMGR=1\\r<\/strong><\/li>\n<li>read the second SMS from the inbox:\u00a0<strong>AT+CMGR=2\\r<\/strong><\/li>\n<li>read all SMS from the inbox:\u00a0<strong>AT+CMGR=ALL\\r<\/strong><\/li>\n<li>call to a number:\u00a0<strong>ATDP+ <span style=\"color: #ff0000;\">PHONE_NUMBER<\/span>\u00a0<\/strong>(in international format)<\/li>\n<li>hang up a call:\u00a0<strong>ATH<\/strong><\/li>\n<li>receive an incoming call:\u00a0<strong>ATA<\/strong><\/li>\n<\/ul>\n<p>For more information, you can check the SIM900 AT commands manual <a href=\"https:\/\/usermanual.wiki\/Pdf\/SIM900AT20Command20ManualV103.653745192\/help\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<h2>Testing the Shield with FTDI programmer<\/h2>\n<p>To test if everything is working properly, you can test the shield by sending AT commands from the Arduino IDE serial monitor. For that, you need an FTDI programmer as the one shown in figure below. You can get an FTDI programmer like this <a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42385\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/FTDI.jpg?resize=404%2C171&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"404\" height=\"171\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/FTDI.jpg?w=665&amp;quality=100&amp;strip=all&amp;ssl=1 665w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/FTDI.jpg?resize=300%2C127&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/p>\n<p><strong>1)\u00a0<\/strong>Connect the FTDI programmer to the GSM shield as shown in figure below.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-FTDI-circuit-1.png?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42442 size-full\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-FTDI-circuit-1.png?resize=1066%2C754&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"1066\" height=\"754\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-FTDI-circuit-1.png?w=1066&amp;quality=100&amp;strip=all&amp;ssl=1 1066w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-FTDI-circuit-1.png?resize=300%2C212&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-FTDI-circuit-1.png?resize=768%2C543&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-FTDI-circuit-1.png?resize=1024%2C724&amp;quality=100&amp;strip=all&amp;ssl=1 1024w\" sizes=\"(max-width: 1066px) 100vw, 1066px\" \/><\/a><\/p>\n<p><strong>2)\u00a0<\/strong>Open the Arduino IDE and select the right COM port.<\/p>\n<p><strong>3)\u00a0<\/strong>Open the Serial monitor\u00a0<img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42375\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/serial-monitor.png?resize=745%2C109&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"745\" height=\"109\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/serial-monitor.png?w=745&amp;quality=100&amp;strip=all&amp;ssl=1 745w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/serial-monitor.png?resize=300%2C44&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 745px) 100vw, 745px\" \/><\/p>\n<p><strong>4)\u00a0<\/strong>Select <span style=\"color: #000000;\"><strong>19200<\/strong> <\/span>baud rate &#8211; the shield default setting is 19200 &#8211; and <span style=\"color: #ff0000;\"><span style=\"color: #000000;\"><strong>Carriage return<\/strong><strong>.<\/strong><\/span> <span style=\"color: #000000;\">Write <strong>AT<\/strong> at the box highlighted in red and then press enter. See figure below.\u00a0<img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42386\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-arduino-ide-serial-monitor-set-baud-rate.png?resize=559%2C315&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"559\" height=\"315\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-arduino-ide-serial-monitor-set-baud-rate.png?w=559&amp;quality=100&amp;strip=all&amp;ssl=1 559w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-arduino-ide-serial-monitor-set-baud-rate.png?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 559px) 100vw, 559px\" \/><\/span><\/span><\/p>\n<p><span style=\"color: #ff0000;\"><span style=\"color: #000000;\"><strong>5)\u00a0<\/strong><\/span><\/span>The shield will respond with <strong>OK<\/strong>, if everything is working properly.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42387\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-arduino-ide-serial-monitor-Copy.png?resize=559%2C306&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"559\" height=\"306\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-arduino-ide-serial-monitor-Copy.png?w=559&amp;quality=100&amp;strip=all&amp;ssl=1 559w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-arduino-ide-serial-monitor-Copy.png?resize=300%2C164&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 559px) 100vw, 559px\" \/><\/p>\n<h2>Connecting the Shield to Arduino<\/h2>\n<p>Connect the shield to the Arduino as shown in the schematics below.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-Arduino-circuit.png?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-42443 size-full\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-Arduino-circuit.png?resize=1164%2C772&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"1164\" height=\"772\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-Arduino-circuit.png?w=1164&amp;quality=100&amp;strip=all&amp;ssl=1 1164w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-Arduino-circuit.png?resize=300%2C199&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-Arduino-circuit.png?resize=768%2C509&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-Arduino-circuit.png?resize=1024%2C679&amp;quality=100&amp;strip=all&amp;ssl=1 1024w\" sizes=\"(max-width: 1164px) 100vw, 1164px\" \/><\/a><\/p>\n<h2>Sending an SMS<\/h2>\n<p>To send an SMS, upload the code below to your Arduino board.<\/p>\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Complete project details at http:\/\/randomnerdtutorials.com  \n*********\/\n\n#include &lt;SoftwareSerial.h&gt;\n\n\/\/ Configure software serial port\nSoftwareSerial SIM900(7, 8); \n\nvoid setup() {\n  \/\/ Arduino communicates with SIM900 GSM shield at a baud rate of 19200\n  \/\/ Make sure that corresponds to the baud rate of your module\n  SIM900.begin(19200);\n  \/\/ Give time to your GSM shield log on to network\n  delay(20000);   \n  \n  \/\/ Send the SMS\n  sendSMS();\n}\n\nvoid loop() { \n  \n}\n\nvoid sendSMS() {\n  \/\/ AT command to set SIM900 to SMS mode\n  SIM900.print(&quot;AT+CMGF=1\\r&quot;); \n  delay(100);\n\n  \/\/ REPLACE THE X's WITH THE RECIPIENT'S MOBILE NUMBER\n  \/\/ USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS\n  SIM900.println(&quot;AT+CMGS=\\&quot;+XXXXXXXXXXXX\\&quot;&quot;); \n  delay(100);\n  \n  \/\/ REPLACE WITH YOUR OWN SMS MESSAGE CONTENT\n  SIM900.println(&quot;Message example from Arduino Uno.&quot;); \n  delay(100);\n\n  \/\/ End AT command with a ^Z, ASCII code 26\n  SIM900.println((char)26); \n  delay(100);\n  SIM900.println();\n  \/\/ Give module time to send SMS\n  delay(5000); \n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/GSM\/sendSMS.ino\" target=\"_blank\">View raw code<\/a><\/p>\n<p>In this code, \u00a0you start by \u00a0including the <strong>SoftwareSerial.h<\/strong> library and create a software serial port on pins 7 and 8. (Pin 7 is being set as RX and 8 as TX)<\/p>\n<pre><strong>#include &lt;SoftwareSerial.h&gt;\nSoftwareSerial SIM900(7, 8);<\/strong><\/pre>\n<p>The <strong>sendSMS()<\/strong> function created is what actually sends the SMS. This function uses the AT commands: <strong>AT+CMGF=1\\<\/strong>r\u00a0and\u00a0<strong>AT + CMGS<\/strong>.<\/p>\n<p>You need to change the recipient&#8217;s mobile number at: (replace the <span style=\"color: #ff0000;\"><strong>X<\/strong><\/span>&#8216;s with the recipient&#8217;s phone number)<\/p>\n<pre><strong>SIM900.println(\"AT + CMGS = \\\"<span style=\"color: #ff0000;\">++++++++++++++<\/span>\"\");<\/strong><\/pre>\n<p>The recipient&#8217;s mobile number should be in international format.<\/p>\n<p>Then, at the following line you can edit the text you want to send.<\/p>\n<pre>\/\/ REPLACE WITH YOUR OWN SMS MESSAGE CONTENT<strong>\nSIM900.println(\"<span style=\"color: #ff0000;\">Message example from Arduino Uno.<\/span>\")<\/strong><\/pre>\n<h2>Reading received SMS<\/h2>\n<p>To read incoming SMS, upload the code below to your Arduino. After uploading, wait 20 seconds for the shield to establish communication. Then, test the script by sending an SMS to the shield SIM card number. The SMS is shown on the Arduino serial monitor &#8211; baud rate: 19200.<\/p>\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Complete project details at http:\/\/randomnerdtutorials.com  \n*********\/\n\n#include &lt;SoftwareSerial.h&gt;\n\n\/\/ Configure software serial port\nSoftwareSerial SIM900(7, 8);\n\/\/Variable to save incoming SMS characters\nchar incoming_char=0;\n\nvoid setup() {\n  \/\/ Arduino communicates with SIM900 GSM shield at a baud rate of 19200\n  \/\/ Make sure that corresponds to the baud rate of your module\n  SIM900.begin(19200);\n  \/\/ For serial monitor\n  Serial.begin(19200); \n  \/\/ Give time to your GSM shield log on to network\n  delay(20000);\n\n  \/\/ AT command to set SIM900 to SMS mode\n  SIM900.print(&quot;AT+CMGF=1\\r&quot;); \n  delay(100);\n  \/\/ Set module to send SMS data to serial out upon receipt \n  SIM900.print(&quot;AT+CNMI=2,2,0,0,0\\r&quot;);\n  delay(100);\n}\n\nvoid loop() {\n  \/\/ Display any text that the GSM shield sends out on the serial monitor\n  if(SIM900.available() &gt;0) {\n    \/\/Get the character from the cellular serial port\n    incoming_char=SIM900.read(); \n    \/\/Print the incoming character to the terminal\n    Serial.print(incoming_char); \n  }\n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/GSM\/receiveSMS.ino\" target=\"_blank\">View raw code<\/a><\/p>\n<p>In this code, you set the module to send the SMS data to the serial output:<\/p>\n<pre><strong>SIM900.print(\"AT+CNMI=2,2,0,0,0\\r\");<\/strong><\/pre>\n<p>You store the incoming characters from the SMS message on the <strong>incoming_char<\/strong> variable. You read the chars using the <strong>SIM900.read()<\/strong> function.<\/p>\n<h2>Making a phone call<\/h2>\n<p>To make a phone call, upload the following code to your Arduino.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Don&#8217;t forget to edit the code with the phone number you want to call.<\/strong><\/span><\/p>\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Complete project details at http:\/\/randomnerdtutorials.com  \n*********\/\n\n#include &lt;SoftwareSerial.h&gt;\n\n\/\/ Configure software serial port\nSoftwareSerial SIM900(7, 8); \n\nvoid setup() {\n  \/\/ Arduino communicates with SIM900 GSM shield at a baud rate of 19200\n  \/\/ Make sure that corresponds to the baud rate of your module\n  SIM900.begin(19200);\n  \/\/ Give time to your GSM shield log on to network\n  delay(20000);\n\n  \/\/ Make the phone call\n  callSomeone();\n}\n\nvoid loop() {\n  \n}\n\nvoid callSomeone() {\n  \/\/ REPLACE THE X's WITH THE NUMER YOU WANT TO DIAL\n  \/\/ USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS\n  SIM900.println(&quot;ATD + +XXXXXXXXX;&quot;);\n  delay(100);\n  SIM900.println();\n  \n \/\/ In this example, the call only last 30 seconds\n \/\/ You can edit the phone call duration in the delay time\n  delay(30000);\n  \/\/ AT command to hang up\n  SIM900.println(&quot;ATH&quot;); \/\/ hang up\n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/GSM\/makePhoneCall.ino\" target=\"_blank\">View raw code<\/a><\/p>\n<p>To make the call, you use the <strong>callSomeone()<\/strong> function that uses the <strong>ATD<\/strong> command.<\/p>\n<pre><strong>SIM900.println(\"ATD + +<span style=\"color: #ff0000;\">XXXXXXXXX<\/span>;\");<\/strong><\/pre>\n<p>You need to replace the <span style=\"color: #ff0000;\"><strong>X<\/strong><\/span>&#8216;s (highlighted in red) with the phone number you want to call.<\/p>\n<p>Don&#8217;t forget to connect a microphone and earphones to make the call.<\/p>\n<p>In this code example, the call is hang up after 30 seconds, using the <strong>ATH<\/strong> command:<\/p>\n<pre><strong>SIM900.println(\"ATH\"); \n<\/strong><\/pre>\n<p>Hanging up after 30 seconds is not very useful, but it works well for an example. The idea is that you use the <strong>ATH<\/strong> command when an event is triggered. For example, connect a push button to the Arduino, that when pressed sends the <strong>ATH<\/strong> command to hang up the phone.<\/p>\n<h2>Answering incoming phone calls<\/h2>\n<p>The following code answers incoming calls.<\/p>\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Complete project details at http:\/\/randomnerdtutorials.com  \n*********\/\n\n#include &lt;SoftwareSerial.h&gt;\n\n\/\/ Configure software serial port\nSoftwareSerial SIM900(7, 8); \nchar incoming_char=0;\n\nvoid setup() {\n  \/\/ Arduino communicates with SIM900 GSM shield at a baud rate of 19200\n  \/\/ Make sure that corresponds to the baud rate of your module\n  SIM900.begin(19200); \/\/ for GSM shield\n  \/\/ For serial monitor\n  Serial.begin(19200); \n  \/\/ Give time to log on to network.\n  delay(20000); \n  \n  SIM900.print(&quot;AT+CLIP=1\\r&quot;); \/\/ turn on caller ID notification\n  delay(100);\n}\n\nvoid loop() {\n  \/\/ Display any text that the GSM shield sends out on the serial monitor\n  if(SIM900.available() &gt;0) {\n    \/\/ Get the character from the cellular serial por\n    \/\/ With an incomming call, a &quot;RING&quot; message is sent out\n    incoming_char=SIM900.read();\n    \/\/  Check if the shield is sending a &quot;RING&quot; message\n    if (incoming_char=='R') {\n      delay(10);\n      Serial.print(incoming_char);\n      incoming_char=SIM900.read();\n      if (incoming_char =='I') {\n        delay(10);\n        Serial.print(incoming_char);\n        incoming_char=SIM900.read();\n        if (incoming_char=='N') {\n          delay(10);\n          Serial.print(incoming_char);\n          incoming_char=SIM900.read();\n          if (incoming_char=='G') {\n            delay(10);\n            Serial.print(incoming_char);\n            \/\/ If the message received from the shield is RING\n            \/\/ Send ATA commands to answer the phone\n            SIM900.print(&quot;ATA\\r&quot;);\n          }\n        }\n      }\n    }\n  }\n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/GSM\/receiveCall.ino\" target=\"_blank\">View raw code<\/a><\/p>\n<p>When someone calls the SIM900 number, it sends a message saying &#8220;RING&#8221;. 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. \u00a0That&#8217;s what is done in this code.\u00a0When it receives a RING message, you send the <strong>ATA<\/strong> command to answer the phone.<\/p>\n<h2>Automatically turn on the shield<\/h2>\n<p>Instead of manually pressing the &#8220;power&#8221; key to turn on the shield, you can automatically turn on the shield via software.<\/p>\n<p><strong>1) <\/strong>First, you need to solder R13 connections on the shield as shown in the figure below &#8211; highlighted in red.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/R13.jpg?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-43808\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/R13.jpg?resize=685%2C338&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"685\" height=\"338\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/R13.jpg?w=685&amp;quality=100&amp;strip=all&amp;ssl=1 685w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/R13.jpg?resize=300%2C148&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><\/a><\/p>\n<p><strong>2)<\/strong> Connect D9 on the shield to the D9 Arduino pin as shown in the schematic below.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/GSM-Arduino-circuit.jpg?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-43811\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/GSM-Arduino-circuit.jpg?resize=1200%2C738&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"1200\" height=\"738\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/GSM-Arduino-circuit.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/GSM-Arduino-circuit.jpg?resize=300%2C184&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/GSM-Arduino-circuit.jpg?resize=768%2C472&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/10\/GSM-Arduino-circuit.jpg?resize=1024%2C630&amp;quality=100&amp;strip=all&amp;ssl=1 1024w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p><strong>3)\u00a0<\/strong>Add the following code snippet in the setup() function. This is\u00a0the equivalent of pressing the shield \u201cpower\u201d button.<\/p>\n<pre>digitalWrite(9, HIGH);\ndelay(1000);\ndigitalWrite(9, LOW);\ndelay(5000);<\/pre>\n<h2>Troubleshooting<\/h2>\n<p><strong>Shield doesn&#8217;t respond with OK<\/strong><\/p>\n<p>Check your TX and RX connections to the Arduino. Try repeating the process by changing the TX with the RX pins.<\/p>\n<p>Also check if you have selected the software serial by placing the jumper cap on the appropriate place on the serial selector.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-42415\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/software-serial.jpg?resize=700%2C296&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" width=\"700\" height=\"296\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/software-serial.jpg?w=700&amp;quality=100&amp;strip=all&amp;ssl=1 700w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/software-serial.jpg?resize=300%2C127&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p><strong>Cannot see messages in the serial monitor<\/strong><\/p>\n<p>To see the messages in the serial monitor, the shield and the Arduino&#8217;s serial port baud rate should be the same. The SIM900 GSM GPRS shield default baud rate is 19200. So, select the Arduino&#8217;s baud rate to 19200.<\/p>\n<p>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.<\/p>\n<pre><strong>AT+IPR=19200<\/strong><\/pre>\n<h2>Wrapping up<\/h2>\n<p>This tutorial shows you how to send and receive SMS and making and receiving phone calls with the Arduino. You can apply the concepts learned in this tutorial to build your own projects to communicate over a cell network. We have other projects that use GSM, check them below:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/control-a-12v-lamp-via-sms-with-arduino\/\" target=\"_blank\" rel=\"noopener noreferrer\">Control a 12V lamp via SMS<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/request-sensor-data-sms-arduino-sim900-gsm-shield\/\" target=\"_blank\" rel=\"noopener noreferrer\">Request Sensor Data via SMS using Arduino<\/a><\/li>\n<\/ul>\n<p>If you like Arduino projects, make sure you check our latest Arduino:\u00a0<strong><a href=\"https:\/\/randomnerdtutorials.com\/arduino-step-by-step-projects\/\" target=\"_blank\" rel=\"noopener noreferrer\">Arduino Step-by-step Projects \u2013 Build 25 Projects<\/a><\/strong><\/p>\n<p>We hope you\u2019ve found this guide useful.<\/p>\n<p>Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post is a complete guide to the SIM900 GSM GPRS Shield with the Arduino. Learn how to send and receive SMS and how to make and receive phone calls &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Guide to SIM900 GSM GPRS Shield with Arduino\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/sim900-gsm-gprs-shield-arduino\/#more-42170\" aria-label=\"Read more about Guide to SIM900 GSM GPRS Shield with Arduino\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":42171,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[267,2,302,269,264,10],"tags":[],"class_list":["post-42170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino-project","category-arduino","category-0-guide","category-guide-project","category-project","category-a-tutorials"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2017\/08\/GSM-feature-image.png?fit=1280%2C416&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/42170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=42170"}],"version-history":[{"count":2,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/42170\/revisions"}],"predecessor-version":[{"id":106221,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/42170\/revisions\/106221"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/42171"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=42170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=42170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=42170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}