• Skip to main content
  • Skip to primary sidebar

Making Easy Circuits

Learn and build electronic circuits

You are here: Home / Arduino / GSM based Irrigation Circuit using Cellphone missed Calls and Arduino

GSM based Irrigation Circuit using Cellphone missed Calls and Arduino

Last Updated on May 28, 2025 by Admin 46 Comments

In this post we are going to construct a GSM based irrigation circuit which can be used to turn ON / OFF the motor pump or any electronic gadgets connect to it with just a missed call and you will be notified with an acknowledgement SMS back to owner’s mobile phone.

Implementing GSM Based Irrigation System

Here is another project which might bring delight among agriculturists across the globe, especially country like India where their economy and development is sky rocketing and agricultural land owners seeking a technological development for their side too.

This new design overcomes some of the issues which previous GSM based irrigation system had.

The major problem was senior citizens in rural area weren’t knowledgeable enough to send a text SMS. But they were knowledgeable enough to make calls and recognize whether the call is “not reachable” or “out of range” or “subscriber is busy” or the other party picked up their call.

We will be constructing an Arduino based circuit which can trigger a relay with a call. The call will be terminated after a couple of rings automatically and gives out an acknowledgement SMS back to the owner’s phone. Making a call to the circuit rather than a text SMS will cut down the network service cost by half.

Calling to GSM module will cost you nothing, but the acknowledgement SMS back from the GSM module might cost you.

The system will respond onlyto the owner’s mobile phone number. Any calls from any other number will be rejected.

Let’s dive in to the technical details.

Circuit Diagram:

GSM irrigation using cellphone missed calls

The circuit consists of Arduino which is brain of the project and GSM module SIM 900 / SIM 800 which is the heart of the project. An optional 16 x 2 LCD display is included which can show you tons of information what’s going in the system.

A 9 V relay is utilized to turn on / off the connected motor pump (or any gadgets). Two DC jacks which will power the Arduino and GSM module.

In the previous GSM based irrigation system the program has to be loaded while the Tx and Rx pins are disconnected from GSM module.

With the new design it utilizes software serial communication and you no need to disconnect the Tx and Rx pins from GSM module while uploading the code.

The pin #2 of Arduino is connected to Tx pin of GSM module and pin #3 of Arduino is connect to Rx pin of the GSM module. Ground to ground between Arduino and GSM module also need to be connected.

A diode 1N4007 need to connected in reverse bias across the relay i.e. anode to collector of the transistor and cathode to positive supply.

This will prevent harmful high amplitude back EMF entering rest of the circuit from relay coil. The diode connection is not shown in the schematic.

The LCD display is connected with I2C module to reduce number of wires and reduce wire congestion.

Please note that you have to use I2C module if you are connecting 16 x 2 LCD display to the circuit.

Download the following Library file to compile the code (don’t use any other version of I2C Library file):
https://github.com/marcoschwartz/LiquidCrystal_I2C

Program code:

// ------------- Program Developed by R.GIRISH ---------- //
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
#include <EEPROM.h>
SoftwareSerial gsm(2, 3); // RX, TX
LiquidCrystal_I2C lcd(0x27, 16, 2);
// ----------- ----------- //
int address = 0; // <<<<<<< Change address = 10 in case of EEPROM failure.
int wr_call_add = 1; // <<<<<<<< Change wr_call_add = 11 in case of EEPROM failure.
int f_address = 2; // <<<<<<<<< Chnage f_address = 12 in case of EEPROM failure.
int eeprom_dead = 3; // <<<<<<<<<< Change eeprom_dead = 13 inc case of EEPROM failure.
// ----------- ----------- //
int wr_call_val = 0;
int f_value = 70;
int value = 0;
int ring = 0;
int i = 0;
int var = 0;
int eeprom_tst = 0;
int eeprom_tst_ack = 0;
int tst_var = 100;
int wr_call_tst = 100;
int eeprom_dead_val = 0;
String number = "";
String string = "";
const int output = 8;
boolean wait = true;
boolean at_flag = 1;
boolean net_flag = 1;
// ================ ============== //
char str[] = "91xxxxxxxxxx";
// ================= ============= //
// Replace xxxxxx your phone number starting with "91" which is India country code.
// Replce "91" with your own country code, if outside India.
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
gsm.begin(9600);
pinMode(output, OUTPUT);
if (EEPROM.read(f_address) != f_value)
{
EEPROM.write(f_address, f_value);
EEPROM.write(address, value);
EEPROM.write(wr_call_add, wr_call_val);
eeprom_dead_val = 0;
EEPROM.write(eeprom_dead, eeprom_dead_val);
}
if (EEPROM.read(eeprom_dead) == 1)
{
while (true)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("EEPROM Error.");
lcd.setCursor(0, 1);
lcd.print("System Disabled.");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Reload the code");
lcd.setCursor(0, 1);
lcd.print("with new address");
delay(1500);
}
}
if (EEPROM.read(address) == 0)
{
digitalWrite(output, LOW);
gsm_init();
lcd.clear();
if (EEPROM.read(wr_call_add) == 0)
{
lcd.setCursor(0, 0);
lcd.print("Sending SMS");
lcd.setCursor(0, 1);
lcd.print("Acknowledgement.");
delay(1000);
gsm.println("AT+CMGF=1");
delay(500);
gsm.print("AT+CMGS=");
gsm.print(""");
gsm.print(str);
gsm.println(""");
delay(1000);
gsm.println("Motor is OFF / System is Ready.");
delay(100);
gsm.println((char)26);
}
if (EEPROM.read(wr_call_add) == 1)
{
wr_call_val = 0;
EEPROM.write(wr_call_add, wr_call_val);
}
}
if (EEPROM.read(address) == 1)
{
eeprom_test();
output_begin();
}
}
void(* resetFunc) (void) = 0;
void loop()
{
serialEvent();
if (ring == 1)
{
number = "";
var = string.indexOf("+CLIP: "");
if (var > 0)
{
number += string.substring(var + 8, var + 13 + 7);
}
if (number[0] == str[0] && number[1] == str[1] && number[2] == str[2] && number[3] == str[3]
&& number[4] == str[4] && number[5] == str[5] && number[6] == str[6] && number[7] == str[7]
&& number[8] == str[8] && number[9] == str[9] && number[10] == str[10] && number[11] == str[11])
{
gsm.println("ATH");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Incomming call");
lcd.setCursor(0, 1);
lcd.print("Number Verified.");
delay(2000);
if (EEPROM.read(address) == 0)
{
EEPROM.write(address, 1);
}
else if (EEPROM.read(address) == 1)
{
EEPROM.write(address, 0);
}
resetFunc();
}
if (!(number[0] == str[0] && number[1] == str[1] && number[2] == str[2] && number[3] == str[3]
&& number[4] == str[4] && number[5] == str[5] && number[6] == str[6] && number[7] == str[7]
&& number[8] == str[8] && number[9] == str[9] && number[10] == str[10] && number[11] == str[11]))
{
gsm.println("ATH");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Unknown number");
lcd.setCursor(0, 1);
lcd.print("Call Rejected.");
wr_call_val = 1;
EEPROM.write(wr_call_add, wr_call_val);
delay(2000);
resetFunc();
}
}
if (EEPROM.read(address) == 0)
{
serialEvent();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("System Standby");
lcd.setCursor(0, 1);
lcd.print("Status: OFF");
delay(1000);
}
else if (EEPROM.read(address) == 1)
{
lcd.setCursor(0, 0);
lcd.print("STATUS: ON");
lcd.setCursor(0, 1);
lcd.print("----------------");
}
}
void gsm_init()
{
lcd.print("System booting....");
lcd.setCursor(0, 1);
lcd.print("initiating......");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Checking Module");
lcd.setCursor(0, 1);
lcd.print("Connectivity....");
while (at_flag)
{
gsm.println("AT");
while (gsm.available() > 0)
{
if (gsm.find("OK"))
at_flag = 0;
}
delay(1000);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Module");
lcd.setCursor(0, 1);
lcd.print("Connection: OK");
delay(1500);
eeprom_test();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("System is Ready");
lcd.setCursor(0, 1);
lcd.print("----------------");
delay(1500);
}
void serialEvent()
{
while (gsm.available())
{
char read_char = gsm.read();
string += read_char;
i++;

if (string[i - 4] == 'R' && string[i - 3] == 'I' && string[i - 2] == 'N' && string[i - 1] == 'G' )
{
ring = 1;
}
}
}
void output_begin()
{
digitalWrite(output, HIGH);
if (EEPROM.read(wr_call_add) == 0)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sending SMS");
lcd.setCursor(0, 1);
lcd.print("Acknowledgement.");
delay(1000);
gsm.println("AT+CMGF=1");
delay(500);
gsm.print("AT+CMGS=");
gsm.print(""");
gsm.print(str);
gsm.println(""");
delay(1000);
gsm.println("Motor is ON.");
delay(100);
gsm.println((char)26);
}
if (EEPROM.read(wr_call_add) == 1)
{
wr_call_val = 0;
EEPROM.write(wr_call_add, wr_call_val);
}
lcd.clear();
}
void eeprom_test()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Testing EEPROM");
lcd.setCursor(0, 1);
lcd.print("Memory.");
delay(1500);
eeprom_tst = EEPROM.read(address);
eeprom_tst_ack = EEPROM.read(wr_call_add);
EEPROM.write(address, tst_var);
EEPROM.write(wr_call_add, wr_call_tst);
if (EEPROM.read(address) == tst_var && EEPROM.read(wr_call_add) == wr_call_tst)
{
EEPROM.write(address, eeprom_tst);
EEPROM.write(wr_call_add, eeprom_tst_ack);
if (EEPROM.read(address) != eeprom_tst || EEPROM.read(wr_call_add) != eeprom_tst_ack)
{
digitalWrite(output, LOW);
eeprom_dead_val = 1;
EEPROM.write(eeprom_dead, eeprom_dead_val);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("EEPROM Test is");
lcd.setCursor(0, 1);
lcd.print("Unsuccessful.");
delay(1500);
eeprom_sms();
}
else if (EEPROM.read(address) == eeprom_tst && EEPROM.read(wr_call_add) == eeprom_tst_ack)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("EEPROM Test is");
lcd.setCursor(0, 1);
lcd.print("Successful.");
delay(1500);
}
}
else if (EEPROM.read(address) != tst_var || EEPROM.read(wr_call_add) != wr_call_tst)
{
digitalWrite(output, LOW);
eeprom_dead_val = 1;
EEPROM.write(eeprom_dead, eeprom_dead_val);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("EEPROM Test is");
lcd.setCursor(0, 1);
lcd.print("Unsuccessful.");
delay(1500);
eeprom_sms();
}
}
void eeprom_sms()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sending SMS");
lcd.setCursor(0, 1);
lcd.print("Acknowledgement");
delay(1000);
gsm.println("AT+CMGF=1");
delay(500);
gsm.print("AT+CMGS=");
gsm.print(""");
gsm.print(str);
gsm.println(""");
delay(1000);
gsm.println("EEPROM error. System disabled. Please reload the code with new address.");
delay(100);
gsm.println((char)26);
while (true)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("EEPROM Error.");
lcd.setCursor(0, 1);
lcd.print("System Disabled.");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Reload the code");
lcd.setCursor(0, 1);
lcd.print("with new address");
delay(1500);
}
}
// ------------- Program Developed by R.GIRISH ---------- //

That concludes the program code.

Things you need to change in the code:

char str[] = "91xxxxxxxxxx";

You should replace the “xxxxxxxxxxx” with your 10 digit phone number before you upload the code. If you are outside India replace your country code “91” with your own country’s phone code.

The circuit is heavily depending on EEPROM for its operation. The Arduino needs to restart multiple times for an operation to complete and the only memory can stay even after power is disconnected or after the Arduino resetsis the EEPROM.

But the EEPROM have limited write cycles so there might be a chance for EEPROM failure which might bring the system to halt.

Fortunately, the proposed system is programmed to detect EEPROM failure and notify the user via SMS and via the LCD display.

If such failure happens, the user can reprogram the Arduino with ease, just follow the steps below:

// ----------- ----------- //
int address = 0; // <<<<<<< Change address = 10 in case of EEPROM failure.
int wr_call_add = 1; // <<<<<<<< Change wr_call_add = 11 in case of EEPROM failure.
int f_address = 2; // <<<<<<<<< Chnage f_address = 12 in case of EEPROM failure.
int eeprom_dead = 3; // <<<<<<<<<< Change eeprom_dead = 13 inc case of EEPROM failure.
// ----------- ----------- //

Just replace the values 0, 1 ,2 and 3 with 10, 11, 12and 13 as mentioned above. In case of another failure after prolong usage of the system; replace the values with20, 21, 22 and 23.

When you change the above values with new value, we are using different set of EEPROM cells which might work for long time before its failure.

How likely EEPROM error can occur?

According to the ATmega328P data sheet, the claimed write cycles is 1,00,000 (one lakh) per cell, now assuming we turn on and off the system 10 times a day. 10 writes x 365 days = 3650 per year. 1,00,000 / 3650 = 27.39 years.

So we can say the EEPROM might not fail for at-least 10 years. However the mileage can varybut,you know how to fix in case of EEPROM failure.

How to Use

Let’s see how to use the system:

• Turn on the system; the Arduino will self-diagnose the circuit (which can be witnessed via LCD display) and sends an SMS saying “Motor OFF, System is ready”. Only then you can make call to the GSM module.
• Now, make a call to the GSM module from the mobile number which you entered in the program code.
• The relay turns ON and returns with an SMS acknowledgement saying “Motor is ON”.
• Now make another call it will de-energize the relay and returns with acknowledgement SMS saying “Motor is OFF / System is ready”.
• After making a call to the GSM module, Arduino automatically hang the call after a couple of rings.
• If you hear the voice info “The subscriber is switched OFF” after a call, there might be a power outage.
• If you hear anything per-recorded voice info related to network issue, the call might not reach the GSM module and will not trigger the relay.
• If you get “Motor is ON”acknowledgement SMSfor the second time after sometime you turned on the motor pump, you can assume the system and the motor just resumed after a power outage. Same applies,if you get “Motor is OFF / System ready” acknowledgement for the seconds time.

Author’s Prototype:

Webp.net compress image

Part List:

• Arduino board (any model)
• GSM Module: SIM 900 / SIM 800
• BC548 Transistor
• 4.7 kilo ohm resistor
• 9V relay
• I2C LCD adapter module
• 16 x 2 LCD Module
• Diode 1N4007
• Valid SIM card with SMS functionality.

Do you like this project? Have any questions regarding this project? Drop your questions at comment section; you might receive a quick reply.

You'll also like:

  • 1.  Arduino 2-Step Programmable Timer Circuit
  • 2.  200 Top Electronic Project Ideas for EEE Final Year Engineering Students
  • 3.  Types of Microcontroller Boards And their Applications
  • 4.  How you can Interface 4×4 Keypad with Arduino
  • 5.  How to Build a Vibrating Cell Phone Remote Control Circuit
  • 6.  How to Make a Ultrasonic Remote Control Circuit

About Admin

Hey friends, Thanks a bunch for stopping by this site! I am an engineer with a Bachelor of Engineering in Electronics and Telecommunication. One of my passions is gathering information from all sorts of electronics books and tutorials. I then take that information and compile it into a language that is super easy to understand. My goal is to make those complex electronics circuit concepts and technical terms much more accessible for all the new and budding electronics engineers out there. I can also design customized circuit diagrams as required by the users.
If you have any questions related to this field, please do not hesitate to drop a comment! I am always here and ready to help you out with any queries you might have. I cannot wait to hear from you!

Reader Interactions

Comments

  1. Ahmed says

    March 7, 2023 at 9:33 pm

    salam Hi
    Awsome projet can i use an old mobile instead of the GSM Module and what changes i have to do
    Thanks

    Reply
    • admin says

      March 18, 2023 at 1:58 pm

      Hi, an old mobile will not work instead of a GSM

      Reply
  2. Siddhesh says

    February 26, 2023 at 5:24 pm

    Excellent project. Can I get Video link of step bye step procedure.

    Reply
  3. sk jakir says

    September 29, 2020 at 11:51 am

    sir unown number problem

    Reply
    • admin says

      September 30, 2020 at 3:36 pm

      Sorry, I can’t help because the circuit was contributed by another author

      Reply
  4. Fahim says

    July 13, 2020 at 8:14 pm

    GSM send me SMS that motor is OFF/System is ready but it keep rejecting call from the same number.
    What should i do?

    Reply
    • admin says

      July 21, 2020 at 1:30 pm

      The circuit was contributed by an external author, so I can’t help much about it.

      You can approach the Arduino.cc forum for a possible solution.

      Reply
  5. RAJENDRAN says

    March 27, 2020 at 1:56 pm

    RAJENDRAN
    Nice project,i am receiving all messages to my stored mobile no ,but making missed call
    the reply is “unknown no”,”Call rejected”,pl i need ur help

    Reply
  6. venkata sai ram says

    November 27, 2019 at 9:34 am

    Sir please give this PDF format …link

    Reply
  7. Abdulazeez Yusuf says

    September 27, 2019 at 7:24 pm

    nice work. how can we get the gsm library?
    thank you.

    Reply
  8. satya says

    September 8, 2019 at 6:12 pm

    is there any device to get missed call when power is off?

    Reply
  9. k.harish says

    July 21, 2019 at 11:04 pm

    sir please add the coding for the soil moisture with gsm irrigation system…plsss sir its urgent

    Reply
    • admin says

      July 26, 2019 at 9:11 am

      sorry I do not have it with me.

      Reply
  10. GO says

    June 25, 2019 at 3:11 pm

    iS THE CODE APPLICABLE WITH GSM 900A

    Reply
    • admin says

      July 4, 2019 at 2:14 pm

      yes it should be

      Reply
  11. Suroor says

    May 24, 2019 at 6:14 am

    When i compile the sketch it is error message and also like this

    “Sketch_may24b.ino:2:31:fatal error: LiquidCrystal_I2C.h:No such file or directory”

    Hopping ur reply

    Reply
    • admin says

      May 30, 2019 at 12:43 pm

      please search the file online and download it

      Reply
    • Judeson says

      May 22, 2020 at 6:43 pm

      Can I use gsm model Sim800L Gprs Transfer Board Micro Sim Gsm Core Ttl Port Module for Arduino

      Reply
      • admin says

        May 23, 2020 at 7:34 am

        yes you an use it!

        Reply
  12. aslam mujawar says

    January 18, 2019 at 6:27 pm

    please price including items with coding

    Reply
  13. sreek says

    December 21, 2018 at 2:20 pm

    Sir how can insert valid sender for GSM sending sms.

    Reply
    • admin says

      December 22, 2018 at 7:23 pm

      I am sorry I have no idea about it, the article was contributed by anther author

      Reply
  14. Sree says

    December 21, 2018 at 2:17 pm

    sir
    How can insert valid Sender for sending SMS…

    Reply
  15. AHMED says

    December 16, 2018 at 6:24 am

    SIR LIBRARY PLEASE

    Reply
  16. Rahul says

    December 5, 2018 at 7:11 pm

    Sir i want to develop one automatic irrigation system which sense the soil moisture and sends sms to the owner via gsm and the owner operate the motor via missed call.
    I am having difficulties in programming part plzzz send me the code for that arduino gsm dc pump control

    Reply
    • admin says

      December 6, 2018 at 12:12 pm

      Rahul, I am really sorry, I am not good with Arduino so it can be difficult for me to help you in this regard.

      Reply
      • Rahul says

        December 6, 2018 at 6:57 pm

        Sir do the above coding work on arduino

        Reply
        • admin says

          December 19, 2018 at 11:20 am

          Please see the video on youtube…it is 100% working

          Reply
  17. admin says

    November 10, 2018 at 10:42 am

    sorry, I cannot troubleshoot your problem without checking it practically, you can contact Mr. Girish Radhakrishnan in facebook and ask him about the issue

    Reply
  18. Mounika says

    November 7, 2018 at 2:49 pm

    Sir

    Reply
  19. ram says

    November 7, 2018 at 2:37 pm

    sir i connected all wires and uploaded program but it not reponding sms ,LCD and serial monitor sir
    i have used in sim 900A and its working fine other projects

    Reply
  20. Mounika says

    November 7, 2018 at 1:40 pm

    Sir i connected all wires and uploaded program but im have not receiving any information on sms ,LCD and serial monitor sir
    please help me sir
    ……

    Reply
  21. Mounika says

    October 31, 2018 at 8:35 pm

    Sir I fased one problem in this code that is stray error //”352″//, give me suggestion or PDF or other code sir please plz……………….

    Reply
    • admin says

      October 31, 2018 at 8:58 pm

      OK, please check now….

      Reply
  22. Raju says

    October 31, 2018 at 7:17 pm

    Sir this code is stray error 352 ,plz give me PDF sir or other code plz sir ……..,

    Reply
    • admin says

      October 31, 2018 at 8:57 pm

      Raju, please check now, I have converted the qoutes ” into Arduino compatible format..

      Reply
      • Aman says

        November 1, 2018 at 7:59 pm

        sir in line no 38 an error has been shown.

        ‘class LiquidCrystal_I2C’ has no member named ‘init’
        how to fix it.

        Reply
        • admin says

          November 1, 2018 at 8:49 pm

          Aman, sorry I have no idea about it, because this article was contributed by another author.

          You can take this article link and ask the experts in Arduino.cc forums regarding the issue…I am sure somebody in the forum will be able to solve it for you…

          Reply
          • sudheer says

            November 7, 2018 at 2:34 pm

            sir i connected all wires and uploaded program but it not reponding sms ,LCD and serial monitor sir
            i have used in sim 900A and its working fine other projects

  23. sudheerkumar joggu says

    July 27, 2018 at 6:56 pm

    Awesome project sir

    Reply
    • admin says

      August 1, 2018 at 8:55 pm

      Glad you liked it…keep posting

      Reply
  24. Dhivagar8 says

    June 20, 2018 at 6:41 am

    Sir please give this PDF format …link

    Reply
  25. Nikhil Mer says

    April 26, 2018 at 8:32 pm

    Awesome project . What changes I have to make if I want to add instructions saying 0 for off and 1 for on while calling

    Reply
    • admin says

      April 27, 2018 at 10:01 am

      thanks for appreciating the project, I will try to contact the original author and update the reply, if it’s possible

      Reply
    • Narendra v says

      February 4, 2021 at 7:14 am

      Sir,when we start the pump if power fail,after power resume pump starts or not

      Reply
      • admin says

        February 6, 2021 at 9:59 am

        NO, you must have a small battery backup to ensure that the pump starts after power cut….but there’s no way to know by the remote person if the power is ON or OFF in the middle….

        Reply

Leave a Reply Cancel reply

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

Primary Sidebar

Categories

  • 3 Phase (4)
  • 8051 Microcontroller (1)
  • Arduino (11)
  • Audio and Amplifier (102)
  • Automation (8)
  • Battery Chargers (64)
  • Bicycle Projects (4)
  • Car and Motorcycle Projects (39)
  • Datasheets (10)
  • DIY Projects (5)
  • Electrical (15)
  • Free Energy (6)
  • Games Projects (2)
  • High Voltage (14)
  • Hobby Projects (30)
  • Household Circuits (2)
  • IC 555 Circuits (4)
  • Ignition Circuits (2)
  • Indicators (50)
  • Infrared (6)
  • Inverter Circuits (29)
  • Lights and Lamps (97)
  • Medical (8)
  • Meter and Tester Circuits (38)
  • Motor Driver (17)
  • New Circuits (56)
  • Oscillators (30)
  • Pets and Pests (5)
  • Power supply (81)
  • Protection Circuits (25)
  • PWM (8)
  • Remote Control (20)
  • Security and Alarm Circuit (48)
  • Sensors and Detectors (66)
  • Signal Processor (23)
  • Solar Controller Circuits (61)
  • SSR (3)
  • Temperature Controller (20)
  • Timer (25)
  • Transformerless (7)
  • Transmitters (12)
  • Tutorials (45)
  • UPS (2)
  • Voltage Regulators (57)
  • Water Sensor and Controller (29)
  • Home
  • Privacy Policy
  • Contact
  • Disclaimer
  • Copyright

© 2025 · Making Easy Circuits