Arduino-Controlled Automated Watering System with Soil Moisture and Flow Sensing
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This circuit is designed to monitor soil moisture and water flow, and control a water pump accordingly. It uses an Arduino UNO as the central microcontroller to process sensor data and manage the water pump operation. The system is powered by a 12V battery and includes a water flow sensor, a soil moisture sensor, and a water level sensor. An IRF520 PWM module is used to control the water pump based on the sensor inputs.
Component List
Arduino UNO
- Microcontroller board based on the ATmega328P
- It has 14 digital input/output pins, 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header, and a reset button.
Water Pump
- An electric pump for moving water
- Typically powered by a DC voltage source
12V Battery (Small Size)
- A small-sized battery providing a 12V DC power supply
IRF520 PWM
- A MOSFET driver module with a PWM input
- Used for controlling high-power devices like motors
SparkFun Soil Moisture Sensor
- A sensor that measures the volumetric content of water in soil
- Outputs an analog signal that can be read by a microcontroller
Water Sensor
- A sensor that detects the presence of water
- Outputs a digital signal indicating water presence
Water Flow Sensor
- A sensor that measures the rate of water flow
- Outputs a pulse signal proportional to the flow rate
Wiring Details
Arduino UNO
5Vconnected to the Vcc of the water flow sensor, IRF520 PWM, SparkFun Soil Moisture Sensor, and Water sensorGNDconnected to the GND of the water flow sensor, IRF520 PWM, SparkFun Soil Moisture Sensor, and Water sensorA3connected to the Signal pin of the Water sensorD10connected to the Signal pin of the water flow sensorD9connected to the SIG pin of the IRF520 PWMD8connected to the SIG pin of the SparkFun Soil Moisture Sensor
Water Pump
VCCconnected to the V+ of the IRF520 PWMGNDconnected to the V- of the IRF520 PWM
12V Battery (Small Size)
VCCconnected to the Vin of the IRF520 PWMGNDconnected to the GND of the IRF520 PWM
IRF520 PWM
Vccconnected to the 5V of the Arduino UNOGNDconnected to the GND of the Arduino UNO and the GND of the 12V BatterySIGconnected to the D9 of the Arduino UNOV+connected to the VCC of the Water PumpV-connected to the GND of the Water PumpVinconnected to the VCC of the 12V Battery
SparkFun Soil Moisture Sensor
VCCconnected to the 5V of the Arduino UNOGNDconnected to the GND of the Arduino UNOSIGconnected to the D8 of the Arduino UNO
Water Sensor
VCCconnected to the 5V of the Arduino UNOGNDconnected to the GND of the Arduino UNOSignalconnected to the A3 of the Arduino UNO
Water Flow Sensor
Vccconnected to the 5V of the Arduino UNOGNDconnected to the GND of the Arduino UNOSignalconnected to the D10 of the Arduino UNO
Documented Code
Arduino UNO Code (sketch.ino)
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Note: The provided code is a template and does not contain any functional code. It needs to be populated with the logic for reading sensors, controlling the water pump, and any other required functionality.