Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino-Based Smart Water Management System with TDS and Ultrasonic Sensors

View and Edit Project In Cirkit DesignerImage of Arduino-Based Smart Water Management System with TDS and Ultrasonic Sensors

Circuit Documentation

Summary

This circuit involves two Arduino UNO microcontrollers, an HC-SR04 Ultrasonic Sensor, a TDS Sensor, a Water Level Float Switch Sensor, a 16x2 LCD, a Membrane Matrix Keypad, a 1 Channel Relay, and a 5V 8 Channel Relay. The circuit is designed to measure water levels and TDS (Total Dissolved Solids) in a tank, control various relays for water flow, and display information on an LCD. The user can interact with the system using a keypad.

Component List

  1. Arduino UNO

    • Description: Microcontroller board based on the ATmega328P.
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
  2. HC-SR04 Ultrasonic Sensor

    • Description: Ultrasonic distance sensor.
    • Pins: VCC, TRIG, ECHO, GND
  3. 12V Pneumatic Solenoid Valve

    • Description: Solenoid valve for controlling water flow.
    • Pins: VCC, GND
  4. 16x2 LCD

    • Description: 16x2 character LCD display.
    • Pins: VSS, VDD, V0, RS, RW, E, D1, D0, D2, D3, D4, D6, D5, D7, A, K
  5. TDS Sensor

    • Description: Sensor for measuring Total Dissolved Solids in water.
    • Pins: P1, P2, +, -, A
  6. Water Level Float Switch Sensor

    • Description: Sensor for detecting water level.
    • Pins: Wire2, Wire1
  7. 1 Channel Relay 5V

    • Description: Single channel relay module.
    • Pins: VCC, GND, IN, NC, COM, NO
  8. 5V 8 Channel Relay

    • Description: 8 channel relay module.
    • Pins: GND, IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8, VCC, NC, C, NO
  9. Membrane Matrix Keypad

    • Description: 4x3 membrane keypad.
    • Pins: Row 1, Row 2, Row 3, Row 4, Column 1, Column 2, Column 3

Wiring Details

Arduino UNO (1)

Arduino UNO (2)

HC-SR04 Ultrasonic Sensor

12V Pneumatic Solenoid Valve

16x2 LCD

TDS Sensor

Water Level Float Switch Sensor

1 Channel Relay 5V

5V 8 Channel Relay

Membrane Matrix Keypad

Code Documentation

Arduino UNO (1)

#define RelayNF 2
#define RelayRO 3
#define RelayPump 4
#define RelayMixing 5
#define RelayUV 6
#define RelayOut 7
#define RelayIn 8
#define trigPin 9
#define echoPin 10
#define floatControllerPin 13

#define TDS_SENSOR_PIN A0
#define VREF 5.0            // ADC reference voltage
#define SCOUNT 30           // Number of sample points for averaging

int analogBuffer[SCOUNT];     // Store analog values from ADC
int analogBufferTemp[SCOUNT]; // Temporary array for median filtering
int analogBufferIndex = 0;
float averageVoltage = 0;
float temperature =