I needed a system to water my lemon tree, with an hardware regulation of duration and frequency of waterings.
First of all I tried with a moist sensor, but the vase is very large and the result wasn't good. Moreover the problem is to water the tree during winter, when we bring it inside our home and there isn't the contribution af the rain.
So I decided to realize a system based on watering schedule, activated with a 12V mini pump. Time is setted via a dip-switch and schedule is regulated by a real time clock (RTC).
To assembly all the parts, I started with e breadboard, but I finally preferred to realize a custom PCB, as sown in the following.
Some important things:
1. as shown in the drawing, place the pump (C) under the lower level of the water, otherwise the pump will not work;
2. the level of the drain of the water pipe (A) must be at higher level then the maximum water level in the barrel (B);
3. place the barrel in a basin, so, if something goes wrong, you will not flood your home!!!
In spite of I needed only one pump, I designed a PCB with two circuits to command two pumps separately; so I didn't assemble the parts for the second one -MOS FET, diode, connector,... - as you can see in the picture below (lower side view).
In the upper side view you can see the display and the DIP switch. The display is connected with I2C interface.
You can also see the RTC, also connected with I2C interface.
The DISP.ON push-button must be connected to the display to light it using one couple of contacts available. You can also connect the second couple to light on the display permanently or to connect a switch.
I used the four holes (4mm) to fix the display using nylon spacers.
On the right side there are two screw terminals for 5V= and 12V= power supply, provided for future extensions.
On the bottom there are two 4 pins screw terminals; the one on the left, near diode D1, to connect pump 1 (Arduino pin D11).
On the left side there are two 4 pins and one 2 pins screw terminals; the two 4 pins are used to connect the display and the RTC, whereas the 2 pins screw terminal to connect the PCB to Arduino pins A4 (SDA) and A5 (SCL) for I2c comunication.
There is also an output for a buzzer, not used in this project, directly connected to pin D10 of the Arduino.
In the following image are shown all parts connected to the PCB board.
Obviously, after you have connected Arduino pins A4 and A5 to the 2 pins screw terminal, you must insert the Arduino board on the PCB. As you can see in the next image, I used two 12 positions headers to insert the Arduino board:
To program watering frequency and duration, you should use the dip-switch, following the instructions given in the header of the code.
For example, in the Lower side view image, watering is stetted for 10" (J1=0, J2=0, J3=0) every 3 days (J4=0, J5=1, J6=0).
I used only 6 of the 8 switches. You can use the two unused switches for more conditions or to program the second pump (to exclude/insert the second pump or to select one or both, to program a delay between the intervention of the two pumps,...).
SOMETHING MOREYou can use this project to drive lights, motors, heating resistors and any other device that needs a time scheduling and a continuous voltage.
The only limit is the MOS-FET. I used an IRF520, with a maximum continuous drain current of 9, 2A (with an adequate cooling!!!!). You could also rise the voltage: the maximum drain-source voltage is 100V.
But you must be very careful: high voltage = high danger!
Moreover you must verify the characteristics of the voltage regulator to avoid damages to the Arduino board and to the regulator itself. With an L7805CV, you can rise the voltage to 24V=.
If you want to power devices with alternating current, you can substitute the MOS-FET with a TRIAC. Here you will find something more.
Comments
Please log in or sign up to comment.