Smart Toilet System

ห้องน้ำอัจฉริยะแบบไร้การสัมผัสด้วย AI

Arduino AI Hand Tracking IoT PictoBlox Smart Automation

Overview

นวัตกรรมห้องน้ำสาธารณะต้นแบบที่นำเทคโนโลยีเซนเซอร์และปัญญาประดิษฐ์ (AI) มาประยุกต์ใช้เพื่อลดการสัมผัส (Touchless) ป้องกันการแพร่ระบาดของเชื้อโรค โดยผู้ใช้งานสามารถสั่งการเปิด-ปิดประตู, กดชักโครก และเปิดถังขยะได้ผ่านสัญลักษณ์มือ (Hand Gesture) พร้อมระบบแจ้งสถานะการเข้าใช้งานอัตโนมัติ

overview of Smart Toilet System (Front)
Hand Gesture Recognition
overview of Smart Toilet System (Above)

System Architecture & Logic

ระบบควบคุมด้วยบอร์ด Arduino UNO ทำงานร่วมกับโปรแกรม PictoBlox และ AI Hand Pose Classifier โดยใช้ Ultrasonic Sensor ตรวจจับคนเข้า-ออก และใช้กล้องจับภาพสัญลักษณ์มือเพื่อสั่งการ Servo Motor ในการควบคุมกลไกต่างๆ ภายในห้องน้ำ

# Source Code

index.html
// Smart Toilet System Logic (Arduino Concept)
#include <Servo.h>
#include <LiquidCrystal_I2C.h>

// Define Sensors & Actuators
#define TRIG_PIN 9
#define ECHO_PIN 10
#define DOOR_SERVO_PIN 3
#define FLUSH_SERVO_PIN 5
#define TRASH_SERVO_PIN 6

Servo doorServo;
Servo flushServo;
Servo trashServo;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  doorServo.attach(DOOR_SERVO_PIN);
  lcd.begin();
  lcd.print("Welcome"); //
}

void loop() {
  long duration, distance;
  // Ultrasonic Detection Logic
  digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration = pulseIn(ECHO_PIN, HIGH);
  distance = (duration / 2) / 29.1;

  // 1. Enter Bathroom Logic
  if (distance < 50) { // Person Detected
    lcd.clear();
    lcd.print("Unavailable"); //
    openDoor();
    turnOnLights();
    delay(5000); // Wait 5s
    closeDoor();
  }

  // 2. AI Gesture Logic (Receive Signal from PictoBlox)
  if (Serial.available() > 0) {
    char gesture = Serial.read();
    
    if (gesture == '1') { // 1 Finger Gesture
       flushToilet(); 
       openTrashCan();
    } 
    else if (gesture == '5') { // 5 Fingers Gesture
       openDoor(); // Exit
       turnOffLights();
       lcd.print("Welcome"); // Reset Status
    }
  }
}
← Back to Portfolio