Introduction: Remote Control Via GPRS/GSM SMS(Arduino)

About: Elecrow is an open hardware facilitation company based in Shenzhen. To make your making and innovation easier, we offer various development platforms, modules, tools, electronics components, and other open-sou…

Remote control, especially when this no ethernet or Wifi in the outdoor, has been a very profound things in the past. When I was a child, I always image that I have an equipment which can control all home appliances. Now, this becomes a reality,with Arduino and GPRS modules and some other related modules. And, it is also quite easy, even for the beginners. Here I will step by step to show you how to remote control your home appliances via the GPRS/GSM SMS and relays.

At first, let me give a brief introduction about relay to you.
Relays are used where it is necessary to control a circuit by a low-power signal (with complete electrical isolation between control and controlled circuits). It acts as a “low voltage controlled switch to control high voltage”, For example, if you want to control power of your washer or air conditioner, which is oftern110v or 220v,by microchip such as AVR or PIC, it is necessary and safe to make your microchip control the relay first, and then control the power supply of those device with the relay.

With the GSM SMS, it is possible to control the relay remotely. You can send a message via phone to control the relay on&off. With this, it will convenient to control any device wirelessly, especially helpfully on irrigation, smart home, outdoor remote control etc.
So, let’s make such a “SMS controlled Relay” with Arduino, GPRS/GSM and a Relay module.

Step 1: Prepare Your Tools and Parts.

Select the module you need, a Xduino, a GPRS/GSM module and relay module is essential. The GPRS/GSM and relay in “Shield” would be more Convenient if works with Arduino:
The modules I used in this application are as below:
Crowduino
GPRS/GSM Shield
Relay Shield
Notice that the Rated Current of the relay Is important, make sure it meets your requirements. Otherwise it maybe dangerous. Here, I use a 2A rating current relay, which is enough for my application to control a lamp. Usually, home appliances consume currents as below
Device Max current(A)
Electric Fan 1
Lamp 2
TV 2
Refrigerator 2
Microwave Oven 8
Air Conditioner Depends on the power, usually <20
Of course, you will need some tools, such as the Insulating tape, Scissors...

Step 2: Insert a SIM Card to the GPRS Shield.

The GPRS module needs a SIM card to work, just the same as a phone. Insert a SIM card to the SIM socket , make sure the SIM is unlocked(that is, it works in your phone). Record the number of SIM Card, it will be used in programming for Arduino.

Step 3: Communicate With Crowduino/Arduino by Hardware Serial.

There are two methods for GPRS/GSM Shield to communicate with the micro controler, one is through the software serial port, another is hardware serial port. I will show you the second method,:communicate with the Crowduino/ Arduino by hardware serial port.
There are three pins 2*3 pins in the GPRS shield. You can see the silk mark in both side of pins, one side is Xduino(this is connect to the hardware serial port), and the other side is SWserial(this side is used as software serial port).  Just as the picture, plug the jumper caps to the Xduino side.

Step 4: Upload the Program.

As the programming, you will need the Arduino IDE to compile and download the program to Arduino.
Download the code :

Using_SMS_to_Control_Relay_Hardware Serial.ino

Before the compiling, please Open the file: SoftwareSerial.h in arduino\libraries\SoftwareSerial, and modify the
#define _SS_MAX_RX_BUFF 64 // RX buffer size
To
#define _SS_MAX_RX_BUFF 128 // RX buffer size
With this modification, the Arduino would have more buffer for the received message to avoid any communication bugs.
If you have not got ready to comprehend the details, you can just copy the codes into your Arduino IDE and down it to Arduino to continue.

Then, open this file by Arduin IDE.  Upload the program to the Crowduino, please note that don't connect the GPRS shield to Crowduino when uploading program,  very important!!!!

Step 5: Plug Relay+GPRS Shields to the Crowduino

Plug your shields to the Crowduino, you can put the GPRS Shield in the top or put the Relay Shield in the top. In here, because we need operating the Relay Shield later, so I put the Relay Shield in the top.

Step 6: Have a Try:Control the Relay Shield by Manually.

Now, the hardware has been connected, the program has been uploaded, we can have a try of the Relay Shield, This Relay Shield is very interesting! There are 4 Independent relays on the relay shield, each one can be controlled by the Arduino or manually. Also, there are 4 LEDs to show user the working state of relays.

Step 7: Have a Test for the Manual Control.

Before remote control the lamp, we can make a test. Here, we need a breadboard, a LED, two AA battery and some breadboard cables.

Plug the anode wire(the red one) of power supply to the anode of LED via the breadboard, using the same method, plug the breadboard jumper wire to the cathode of LED.

As we only need one relay here, we use the relay U3, which was controlled by the Arduino Pin5.
There are 3 terminals for U3 relay: COM3, NC3 and NO3. The COM3 is the common port, while the “NO” means “Normally Open” and NC means “Normally Connected”. That’s to say, the logic between these 3 terminals is:
When the relay is not active:
COM3 connected to NC3 and disconnected to NO3;
When the relay is active:
COM3 disconnected to NC3, and connected to NO3;

Insert the cathode wire(black one) of power supply to NO3, insert the cathode wire(orange) of LED to COM3 and tighten the terminal with a screwdriver.

Now, you can control the LED on or off via button 3, it is funny, hah...

Step 8: Control the LED Via SMS.

It is time to take out your mobile phone, (make sure your Gprs/Gsm shield is on) sent a text ”onb” to the number of the SIM card in GPRS module, the relay would be on, and the LED on!

It is necessary to explain the program, if you feel it is boring or it is too simple, just skip the following paragraph and remember there are 4 relays: U1, U2, U3, U4 each corresponding to d, c, b, a, if you want to control U1 on or off, you can send 'ond' or 'offd' to the number of the SIM card in GPRS module, the relay U1 would be on or off. If you want to control multiple relays in one SMS, just send the control commands in one SMS. For example, if I want to control U1, U2, U3 on and U4 off, sending 'ond onc onb offa' would reach this purpose. In here, I was using U3 to control the LED, so after I send 'onb', the relay U3 would be on , and the LED on!

There are some important functions you need to learn if you want to learn more on the gprs shied:

void ProcessGprsMsg()
Function: process the data Arduino get from the GPRS shield. If there is a string “+CMGR:” in the received data, theArduino will get to know: “I have received a short message, I need to analyze the message to know what to do next!”
Parameter: none
Return: none;

void ProcessSms( String sms )
Function: Arduinoanalyze the short message received. As received a string: ”ona”, it will pull up the related pin to active the relay, making the terminal COM4 connected NO4; while received a string “offa”, it will pull down the pin to make the COM4 and NO4 disconnected.
Parameter: the received message;
Return : none
In this program, once the Arduino receive the command ”offa”, which means “off the a” it will pull download the Arduno pin4, which change the relay U4 from inactive to active state. You will hear some noise like “bang..bang”, and also the LED would blinks.

Step 9: Connect the Lamp to the Relay Shield.

Finally to the another leading role  to play, do you still remember the lamp at the begining?  This step I will show you how to 'destroy' this nice and cute lamp.

Cut off the power supply wire of the lamp(as the picture), and insert one end to COM3,tighten the terminal with a screwdriver, and the other end to NO3 with the same method.

Make sure the Crowduino and Shields are connected to the power and the program was run normally.

Give the power to the lamp, push the switch of lamp to on, and stay away from it...

Step 10: Control the Lamp Via SMS.

Everything is ok, but the SMS. Take out your phone again, sent a text ”onb” to the number of the SIM card in GPRS module. The lamp was finally lit...

You can control all the device you want via this method. and, you can even control 4 relays simultaneously to control 4 device by modifying the program in Arduino. But again, Notice the Potential danger especially for the high voltage and big current decice. Good luck…

Instructables Design Competition

Participated in the
Instructables Design Competition