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

Arduino-Controlled Automated Hygiene Station with Ultrasonic Sensors and Relay-Activated Pumps and Fan

View and Edit Project In Cirkit DesignerImage of Arduino-Controlled Automated Hygiene Station with Ultrasonic Sensors and Relay-Activated Pumps and Fan

Circuit Documentation

Summary

The circuit is designed to interface an Arduino UNO with multiple sensors and actuators for a system that likely serves as an automated handwash station, water dispenser, and hand dryer. It includes ultrasonic sensors to detect the presence of hands or objects, relay modules to control power to the actuators, and actuators such as a water pump and a fan. The Arduino UNO controls the logic of the system, reading sensor inputs and activating the actuators accordingly.

Component List

Arduino UNO

KY-019 Relay Module (1 Channel)

HC-SR04 Ultrasonic Sensor

Mini Water Pump

9V Battery

Fan

Wiring Details

Arduino UNO

KY-019 Relay Module (1 Channel)

HC-SR04 Ultrasonic Sensor

Mini Water Pump

9V Battery

Fan

Documented Code

// Pin definitions for ultrasonic sensors and actuators
const int trigPin1 = 2;  // Handwash sensor
const int echoPin1 = 3;
const int relayPin1 = 8;  // Water pump for handwash

const int trigPin2 = 4;  // Water dispenser sensor
const int echoPin2 = 5;
const int relayPin2 = 9;  // Relay for water dispenser

const int trigPin3 = 6;  // Hand dryer sensor
const int echoPin3 = 7;
const int relayPin3 = 10;   // Fan for hand dryer

// Function to measure distance using ultrasonic sensor
long readUltrasonicDistance(int trigPin, int echoPin) {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration * 0.034 / 2;
}

void setup() {
  // Initialize sensor pins
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(relayPin1, OUTPUT);

  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  pinMode(relayPin2, OUTPUT);

  pinMode(trigPin3, OUTPUT);
  pinMode(echoPin3, INPUT);
  pinMode(relayPin3, OUTPUT);

  // Start with all actuators off
  digitalWrite(relayPin1, LOW);
  digitalWrite(relayPin2, LOW);
  digitalWrite(relayPin3, LOW);
  Serial.begin(9600);
}

int isHandWash = 1;
void loop() {
  // Handwash system
  long distance1 = readUltrasonicDistance(trigPin1, echoPin1);
  
  if(distance1 < 15 && distance1 != 0) {
    if(isHandWash) {
      digitalWrite(relayPin1, HIGH);
      delay(1000);
      isHandWash = 0;
    }
      else {
      digitalWrite(relayPin1, LOW);
      isHandWash = 1;
    }
  }
}

The code provided is for the Arduino UNO microcontroller. It initializes the pins connected to the ultrasonic sensors and relay modules, defines a function to read distances from the ultrasonic sensors, and contains a loop that checks the distance from one of the sensors to control a relay. The relay presumably controls a water pump as part of a handwash system. The code includes commented-out sections for additional functionality, which can be enabled and adapted as needed.