• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Contact | Calculators-online
You are here: Home / Automobile Electronics / GSM Car Ignition and Central Lock Circuit Using Arduino

GSM Car Ignition and Central Lock Circuit Using Arduino

Last Updated on December 5, 2024 by Swagatam 8 Comments

In this post I will show how to construct a GSM based car security system using Arduino, which can lock and unlock car’s ignition system and central lock by sending a password SMS to car from your cellphone

Table of Contents
  • Arduino Car Ignition lock diagram:
  • Program:
  • How to operate this project with cellphone SMS:

Car theft can be a heart break; it feels like your loved one got kidnapped. It hurts more when an old car which you spend years with it got stolen. Old cars and low tier cars may get stolen often because they offer less security features.

As the time progress new methods are invented to exploit the cars, covering those exploits in mainstream and old cars can cost huge sum of money.

The proposed project can add another layer of security to your car at cheap cost, which might save your car from getting stolen one day.

The proposed project consist of GSM modem (SIM 800/900) which is the heart of the project, an Arduino board which acts as brain of the project.

Few relays interfaced with Arduino board enables and disabled the ignition and central lock of the car.

A valid SIM card with working SMS plan is required to operate this project and try to take advantage of the SMS offers availed by your network provider to reduce the expenses due to SMS.

Now let’s look at the circuit diagram of this cellphone controlled Arduino based GSM car central locking system:

warning message: electricity is dangerous, proceed with caution
gsm car central lock circuit

The above circuit is fairly easy to replicate one. The GSM modem is interfaced with Arduino’s Tx and Rx pin.

The Tx of Arduino is connected to Rx of GSM modem and Rx of Arduino is connected Tx of GSM modem i.e. Tx to Rx and Rx to Tx.

Ground to ground connection between Arduino and GSM modem is also established.

A 9V regulator 7809 is added in the circuit to provide to fixed voltage to GSM modem and arduino board as the battery voltage is subjected to change while ignition and charging, higher than 12 volt may damage the boards.

The Arduino’s PIN # 7 is the output to the central lock and ignition lock mechanism.

Arduino Car Ignition lock diagram:

Arduino GSM Car Ignition and Central Lock Relay Wiring

The diodes are connected to prevent high voltage spike from relay due to back EMF.

A fuse must be connected at the input as the short circuit can turn into catastrophic damage to the car.

A switch is provided which may be placed inside the bonnet. It can used to turn off the circuit if you are not planning to use the car for more than a week which will avoid battery drain.

NOTE: If the circuit is turned off (using switch) the central and ignition lock is activated and your car is safe.

Program:

//----------------Program developed by R.Girish------------//
int temp = 0;
int i = 0;
int j = 0;
char str[15];
boolean state = false;
const int LOCK = 7;
void setup()
{
Serial.begin(9600);
pinMode(LOCK, OUTPUT);
digitalWrite(LOCK, LOW);
for(j = 0; j < 60; j++)
{
delay(1000);
}
Serial.println("AT+CNMI=2,2,0,0,0");
delay(1000);
Serial.println("AT+CMGF=1");
delay(500);
Serial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); // Replace x with mobile number
delay(1000);
Serial.println("Your car is ready to receive SMS commands.");// The SMS text you want to send
delay(100);
Serial.println((char)26); // ASCII code of CTRL+Z
delay(1000);
}
void loop()
{
if(temp == 1)
{
check();
temp = 0;
i = 0;
delay(1000);
}
}
void serialEvent()
{
while(Serial.available())
{
if(Serial.find("/"))
{
delay(1000);
while (Serial.available())
{
char inChar = Serial.read();
str[i++] = inChar;
if(inChar == '/')
{
temp = 1;
return;
}
}
}
}
}
void check()
{
//--------------------------------------------------------------------------//
if(!(strncmp(str,"qwerty",6))) // (Password Here, Length)
//--------------------------------------------------------------------------//
{
if(!state)
{
digitalWrite(LOCK, HIGH);
delay(1000);
Serial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); // Replace x with mobile number
delay(1000);
Serial.println("Central Lock: Unlocked."); // The SMS text you want to send
Serial.println("Ignition Lock: Unlocked."); // The SMS text you want to send
delay(100);
Serial.println((char)26); // ASCII code of CTRL+Z
state = true;
delay(1000);
}
else if(state)
{
digitalWrite(LOCK, LOW);
delay(1000);
Serial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); // Replace x with mobile number
delay(1000);
Serial.println("Central Lock: Locked."); // The SMS text you want to send
Serial.println("Ignition Lock: Locked."); // The SMS text you want to send
delay(100);
Serial.println((char)26); // ASCII code of CTRL+Z
state = false;
delay(1000);
}
}
else if(!(strncmp(str,"status",6)))
{
Serial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); // Replace x with mobile number
delay(1000);
if(!state)
{
Serial.println("The System is Working Fine."); // The SMS text you want to send
Serial.println("Central Lock: Locked."); // The SMS text you want to send
Serial.println("Ignition Lock: Locked."); // The SMS text you want to send
}
if(state)
{
Serial.println("The System is Working Fine."); // The SMS text you want to send
Serial.println("Central Lock: Unlocked."); // The SMS text you want to send
Serial.println("Ignition Lock: Unlocked."); // The SMS text you want to send
}
delay(100);
Serial.println((char)26); // ASCII code of CTRL+Z
delay(1000);
}
}
//----------------Program developed by R.Girish------------//

NOTE 1:

The user has to place the password in the code before uploading to Arduino.

//--------------------------------------------------------------------------//

if(!(strncmp(str,"qwerty",6))) // (Password Here, Length)

//--------------------------------------------------------------------------//

Replace the “qwerty” with your own password and change the number 6 to length of your password. For example:

if(!(strncmp(str,"@rduino",7))) // (Password Here, Lenght)

“@rduino” is the password and it has 7 letters (Length). You can place numbers, letters, special characters and combination of these. The password is case sensitive.

NOTE 2:

Replace all the “xxxxxxxxxxx” with car owner’s 10 digit phone number in the code at four places:

Serial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); // Replace x with mobile number

How to operate this project with cellphone SMS:

• Sending /status/ to GSM modem will send an SMS to car owner’s phone number about the current status of the lock.

• Sending the correct password will toggle the state of the central and ignition lock.

Here is the screen shot:

Screen2Bshot

The above result is from the tested prototype.

• Sending /status/ to the SIM card number inserted in GSM modem will send an acknowledgement SMS regarding the current status of the lock to car owner’s phone number.

• Sending the correct password to GSM modem in the above case /qwerty/ is the password, this will unlock the central and ignition lock. It will also send an acknowledgement SMS as shown above.

• Sending the same correct password again will lock the central and ignition lock.

NOTE 3: Start your password with “/” and also end with “/”

NOTE 4: Once the circuit is turned on please wait about a minute. The circuit will send an SMS saying “Your car is ready to accept SMS command” to car owner’s cellphone number. Only then you can send those SMS commands.

If you have any specific questions regarding this GSM car ignition lock, central lock circuit using Arduino, you can send them through the below given comment box

You'll also like:

  • 1.  Automatic Vehicle Headlight Dipper/Dimmer Circuit
  • 2.  Darkness Triggered Car Safety Park Light Circuit
  • 3.  Self Adjusting Automobile Headlamp Circuit
  • 4.  ATmega32, Pinouts Explained
  • 5.  Introduction to I2C LCD Adapter Module
  • 6.  SMS Based Water Supply Alert System

About Swagatam

I am an electronics engineer with over 15 years of hands-on experience. I am passionate about inventing, designing electronic circuits and PCBs, and helping hobbyists bring their projects to life. That is why I founded homemade-circuits.com, a website where I share innovative circuit ideas and tutorials. Have a circuit related question? Leave a comment.... I guarantee a reply!

Previous Post: « Compact 3-Phase IGBT Driver IC STGIPN3H60 – Datasheet, Pinout
Next Post: 120 Watt Amplifier Circuit using TDA 2030 IC »

Reader Interactions

Comments

  1. Suren W says

    July 8, 2023 at 8:23 am

    How can it be modified to be SMS controlled by more than one phone no.

    Reply
    • Swagatam says

      July 8, 2023 at 8:35 am

      SMS based circuit is already posted and available in this blog.

      Reply
  2. abubakar says

    December 10, 2017 at 2:27 am

    else if(!(strncmp(str,”status”,6)))

    {

    Serial.println(“AT+CMGS=”+923412124417″r”); // Replace x with mobile number

    delay(1000);

    after this line its giving an error (
    exit status 1
    expected ‘)’ before string constant
    )

    Reply
    • Swagatam says

      December 10, 2017 at 9:50 am

      I have copied the codes again. please check it now and let me know….

      Reply
      • abubakar says

        December 17, 2017 at 2:55 am

        thank u sir .. now its working fine

        Reply
        • Swagatam says

          December 17, 2017 at 9:22 am

          OK, good!!

          Reply
  3. muhammad abubakar says

    November 9, 2017 at 12:55 pm

    sir how can i modify this project as io want that …
    when someone trying to open the door it will send me the massage..
    2ndly if the iginition started it will again send me a massage tha your “car has been started” and then i will send a command to my cell phon and it breaks the car iginition system to stop the stolling ..hence the rober started ignition ..car will gives no respond even a ignition ..
    when i came next i will snd again a command of start ..so relay energize and start terminal manuly working by key system…kindly sir help me out. in programning as well as hardware

    Reply
    • Swagatam says

      November 9, 2017 at 1:59 pm

      Muhammad, you can try the following concept

      https://www.homemade-circuits.com/gsm-water-pump-controller-with-call/

      and change the relay signal feedback to car door switch feedback….while the main relay switch ON/OFF can be integrated with the ignition start, or central lock

      Reply

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

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

Primary Sidebar

Subscribe to New Circuit Ideas

Categories

  • Arduino Projects (87)
  • Audio and Amplifier Projects (132)
  • Automation Projects (17)
  • Automobile Electronics (101)
  • Battery Charger Circuits (83)
  • Datasheets and Components (104)
  • Electronics Theory (143)
  • Free Energy (37)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (19)
  • Health related Projects (25)
  • Home Electrical Circuits (12)
  • Indicator Circuits (14)
  • Inverter Circuits (87)
  • Lamps and Lights (142)
  • Meters and Testers (69)
  • Mini Projects (46)
  • Motor Controller (64)
  • Oscillator Circuits (27)
  • Pets and Pests (15)
  • Power Supply Circuits (108)
  • Remote Control Circuits (50)
  • Security and Alarm (64)
  • Sensors and Detectors (101)
  • Solar Controller Circuits (59)
  • Temperature Controllers (42)
  • Timer and Delay Relay (49)
  • Transmitter Circuits (29)
  • Voltage Control and Protection (37)
  • Water Controller (36)

Calculators

  • Battery Back up Time Calculator
  • Capacitance Reactance Calculator
  • IC 555 Astable Calculator
  • IC 555 Monostable Calculator
  • Inductance Calculator
  • LC Resonance Calculator
  • LM317, LM338, LM396 Calculator
  • Ohm’s Law Calculator
  • Phase Angle Phase Shift Calculator
  • Power Factor (PF) Calculator
  • Reactance Calculator
  • Transistor Astable Calculator
  • Transistor base Resistor Calculator
  • Voltage Divider Calculator
  • Wire Current Calculator
  • Zener Diode Calculator
  • Filter Capacitor Calculator
  • Buck Converter Calculator
  • Boost Converter Calculator
  • Solar Panel, Inverter, Battery Calculator
  • Wire Current Calculator
  • SMPS Transformer Calculator
  • IC SG3525, SG3524 Calculator
  • Inverter LC Filter Calculator

People Also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |

Recent Comments

  • Swagatam on Contact
  • KRAB Babu on Contact
  • Swagatam on How Shunt Regulator TL431 Works, Datasheet, Application
  • SA on How Shunt Regulator TL431 Works, Datasheet, Application
  • Swagatam on Timer Based Cell Phone Charger Circuit

Company

  • Privacy Policy
  • Cookie Policy
  • About Me
  • Contact
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap

Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Quora
  • Stack Exchange
  • Linkedin
  • © 2025 · Swagatam Innovations