본문 바로가기
모빌리티 프로젝트

♻️ Arduino로 만드는 스마트 쓰레기통

by 모빌리티키즈 2025. 6. 13.
728x90
반응형

습식, 건식, 금속 폐기물 자동 분리 DIY 프로젝트

🧭 프로젝트 개요

환경 보호는 생활 속 작은 실천에서부터! 이번 프로젝트는 Arduino와 다양한 센서를 이용해 습식, 건식, 금속 폐기물을 자동으로 분리하는 스마트 분리수거 시스템입니다.

  • 습식 감지: 빗방울 센서
  • 금속 감지: 근접 센서
  • 물체 감지 및 배출: IR 센서 + 서보 모터
  • 자동 분류: 스테퍼 모터 + 회전 쓰레기통

센서로 감지 → 플랩 방향 전환 → 쓰레기통 회전 분류 실제 기성품처럼 작동하는 멋진 프로젝트예요!

📦 재료 목록

항목수량설명
Arduino Uno 1 마이크로컨트롤러
빗방울 센서 1 습식 폐기물 감지
근접 센서 1 금속 탐지용
IR 센서 1 물체 감지용
서보 모터 1 배출 슈트 제어
스테퍼 모터 + 드라이버 1 쓰레기통 회전 제어
부저 1 상태 피드백
점퍼 케이블, 18650 배터리팩 - 전원 및 연결
합판(30x12x2cm), PVC 파이프(1/2", 2.5", 3") - 본체 조립
샤프트 어댑터, 볼트류 - 회전 연결용
아두이노 코드 및 라이브러리 링크 참조 아래 코드 참고

🛠️ 1단계: 기본 구성 및 배선

    • 합판 위에 아두이노 보드, 스테퍼 드라이버, 부저 부착
    • 모든 센서와 모터를 Arduino에 핀별로 연결
    • IR → 물체 감지 (입구 센서)
    • 빗방울 센서 → 습식 여부
    • 근접 센서 → 금속 탐지
    • 서보 → 배출 플랩 회전
    • 스테퍼 모터 → 쓰레기통 회전
    •  

분류 메커니즘 구성

    1. 1/2" UPVC 파이프를 잡고 나사를 사용하여 엔드 캡을 설치합니다.
    2. 파이프 상단에 1/2" UPVC L-보우를 부착합니다.
    3. 다른 1/2" UPVC 엔드 캡에 구멍을 뚫고 이를 2.5" PVC 파이프에 부착합니다.
    4. 이 2.5" PVC 파이프 어셈블리를 L-보우에 연결합니다.
    5. 2.5인치 PVC 파이프의 한쪽에 IR 센서를 장착하고 반대쪽에 근접 센서를 장착합니다.
    6. 분류 슈트용 플랩을 만들려면 3인치 PVC 파이프(길이 30cm)를 사용하여 수직으로 자른 다음 가열하여 시트로 평평하게 만듭니다.
    7. 서보 모터 부착 장치의 확장을 포함하여 이 PVC 시트에서 원형 모양을 추적하고 자릅니다. 이것은 폐기물을 지시하는 플랩이 될 것입니다.
    8. 서보 모터를 2.5인치 PVC 파이프 어셈블리에 부착합니다.
    9. PVC 플랩에 구멍을 뚫고 접착제를 사용하여 서보 모터 혼을 부착합니다.
    10. 마지막으로 빗방울 센서를 PVC 덮개에 부착합니다.
    11.  
    12. 쓰레기통 조립
      1. 납작한 PVC 시트를 사용하여 쓰레기통의 회전 베이스 역할을 할 세 잎 클로버 모양을 추적하고 자릅니다. 3 개의 3 인치 PVC 파이프를 크기 가이드로 사용하십시오.
      2. 이 클로버 모양의 바닥에 3개의 3인치 PVC 파이프를 붙입니다.

🧱 2단계: 구조 설계

  • PVC 파이프와 시트로 분류 슈트 및 쓰레기통 구성
  • 플랩은 3인치 PVC 시트를 평평하게 펴서 자름
  • 플랩에 서보 모터 부착 → 방향 전환 제어
  • 아래는 세잎클로버 형태의 3칸 쓰레기통
  • 각 통은 DRY, WET, METAL로 라벨 지정

전기 연결

  1. 비디오에 제공된 회로도에 따라 모든 전자 부품을 연결하십시오.
  2. 스테퍼 모터를 스테퍼 드라이버에 연결합니다.
  3. 빗방울 센서, 부저, 서보 모터 및 IR 센서를 Arduino에 연결합니다.
  4. 스테퍼 드라이버와 배터리 홀더를 Arduino에 연결합니다.

💡 3단계: Arduino 코드 로직 요약

  1. IR 센서가 쓰레기 인식
  2. 습식 센서 → 일정 전압 이상이면 WET 통으로 분류
  3. 금속 센서 → 감지되면 METAL 통
  4. 둘 다 아니면 → DRY 통
  5. 플랩 방향 전환 후, 쓰레기통 회전

> 플랩은 서보 모터로 방향 바꾸고, 스테퍼는 정확한 각도로 회전하여 목표 통으로 이동

💻 4단계: 코드 & 라이브러리 다운로드

  • Arduino 전체 코드 다운로드
  • 서보 모터 라이브러리
  • 스테퍼 모터 라이브러리
  • Arduino IDE 설치 파일
#include <CheapStepper.h>
#include <Servo.h>
Servo servo1;
#define ir 5
#define proxi 6
#define buzzer 12
int potPin = A0; //input pin
int soil=0;
int fsoil;

CheapStepper stepper (8,9,10,11);

void setup()
{Serial.begin(9600);
  pinMode(proxi, INPUT_PULLUP);
  pinMode(ir, INPUT);
  pinMode(buzzer, OUTPUT);
  servo1.attach(7);
  stepper.setRpm(17); 
  servo1.write(180);
delay(1000);
servo1.write(70);
delay(1000);
  
}

void loop() 
{
  fsoil=0;
  int L =digitalRead(proxi);
Serial.print(L);
if(L==0)
{
  tone(buzzer, 1000, 1000);
 stepper.moveDegreesCW (240);
delay(1000); 
servo1.write(180);
delay(1000);
servo1.write(70);
delay(1000);
stepper.moveDegreesCCW (240);
delay(1000); 
} 

if(digitalRead(ir)==0)
{
   tone(buzzer, 1000, 500);
   delay(1000);
  int soil=0;
  for(int i=0;i<3;i++)
    {
    soil = analogRead(potPin) ;
      soil = constrain(soil, 485, 1023);
        fsoil = (map(soil, 485, 1023, 100, 0))+fsoil;
          delay(75);
      }
    fsoil=fsoil/3;
    Serial.print(fsoil);
    Serial.print("%");Serial.print("\n");

    if(fsoil>20)
           {
            stepper.moveDegreesCW (120);
            delay(1000); 
              servo1.write(180);
              delay(1000);
              servo1.write(70);
                delay(1000);
              stepper.moveDegreesCCW (120);
                delay(1000); 
              } 

      else {
         tone(buzzer, 1000, 500);
           delay(1000);
            servo1.write(180);
              delay(1000);
              servo1.write(70);
                delay(1000);}
}

}

> ⚙️ 보드 포트 확인하고 업로드 완료 후, USB 분리해 자율 작동시킬 수 있어요!

🧪 5단계: 최종 조립 및 테스트

  • 샤프트 어댑터로 클로버형 쓰레기통과 스테퍼 모터 연결
  • 각 쓰레기통 입구는 컬러 페이퍼로 꾸미고 라벨 부착
  • 전원 연결 후 다양한 폐기물(물 묻힌 티슈, 금속 캔 등)을 테스트
  • 자동으로 플랩이 돌아가고 쓰레기통이 회전하면서 올바르게 분류됩니다!

🟢 습식 → 녹색 통 🟡 건식 → 노란색 통 🔴 금속 → 빨간색 통

🌱 확장 아이디어

  • 초음파 센서 추가 → 쓰레기통 수위 체크
  • Wi-Fi 모듈 추가 → IoT 분리통 관리 시스템
  • LCD or OLED → 분류 상태 디스플레이
  • 부저 음성 출력 → “금속 폐기물입니다”

 

728x90
반응형