본문 바로가기
아두이노

휴대용 물병 충전 스테이션

by 모빌리티키즈 2025. 3. 17.
728x90
반응형

일어나지 않고 물병 채우기? 휴대용 충전 스테이션 등장! 여러분도 물병을 채우고 싶지만 귀찮아서 그냥 물을 마시는 걸 포기한 적이 있나요? 이제는 걱정 마세요. 휴대용 물 충전 스테이션이 여러분을 위해 준비되어 있습니다! 간단한 센서 작동 펌프로 물병을 손쉽게 채울 수 있는 이 기기는 새로운 생활의 변화를 가져올 혁신적인 아이템입니다.

 

필요한 준비물

회로 부품:

  • 아두이노 우노 키트
  • 초음파 센서
  • 솔레노이드 밸브
  • 잠수정 12V 펌프
  • LCD 화면

외부 케이스:

  • 3/4인치 합판
  • 플라스틱 물병
  • 유연한 튜빙
  • 아크릴 시트 (2개)

필요 도구:

  • 절삭 공구 (레이저 절단기 또는 전동 톱)
  • 뜨거운 아교 총
  • 와이어 커터 및 스트리퍼

단계별 제작 과정

1단계: 회로 구축하기 TinkerCAD를 이용해 회로를 설계합니다.

  • 초음파 센서를 통해 물병의 위치를 탐지합니다.
  • 솔레노이드 밸브와 펌프를 릴레이로 제어합니다.
  • LCD 화면에는 거리 및 상태가 표시됩니다.

2단계: 코드 작성 코드를 작성하여 시스템이 작동하도록 합니다.

  • 초음파 센서로 물병의 거리를 측정합니다.
  • 센서 값이 지정된 거리에 도달하거나 버튼을 누르면 펌프가 작동합니다.
  • LCD 화면은 현재 상태를 실시간으로 보여줍니다.

3단계: 상자 제작하기 합판과 아크릴 시트를 사용하여 기기의 외부 케이스를 제작합니다.

  • 물병이 안정적으로 자리할 수 있도록 상자 내부를 설계합니다.
  • 기기의 모든 부품을 상자에 단단히 고정합니다.

4단계: 급수 시스템 구축 펌프와 튜빙을 이용하여 물을 공급하는 시스템을 만듭니다.

  • 물 공급이 원활한지 테스트합니다.
  • 누수 여부를 체크하고 필요한 조정을 합니다.

공급

회로:

  1. 아두이노 우노 키트
  2. 초음파 센서
  3. 솔레노이드 밸브
  4. 잠수정 12V 펌프
  5. LCD 화면

 

상자:

  1. 3/4" 합판
  2. 플라스틱 물병
  3. 유연한 튜빙
  4. 아크릴 시트 (2)

 

도구:

  1. 절삭 공구(레이저 절단기 또는 전동 톱)
  2. 뜨거운 아교 총
  3. 와이어 커터, 와이어 스트리퍼

1 단계 : Tinkercad에 회로 구축

TinkerCAD에서 다음 회로를 조립하십시오. 전구는 펌프와 밸브를 활성화하는 릴레이의 자리 표시자입니다.

2단계: 코드 작성

이 시스템을 실행하는 코드의 논리는 다음과 같습니다.

1. 설정

  1. LCD 디스플레이를 초기화합니다.
  2. 초음파 센서 핀(트리거 및 에코)을 구성합니다.
  3. 릴레이 핀 출력으로 설정합니다.
  4. 버튼 핀 입력으로 설정합니다.
  5. 릴레이가 OFF로 시작되는지 확인합니다.
  6. LCD에 "거리:"를 표시합니다.

2. 메인 루프(연속 반복)

  1. 초음파 센서를 사용한 거리 측정
  2. 트리거 핀에 LOW 펄스를 보냅니다.
  3. HIGH 펄스를 보냅니다.
  4. 에코 시간을 마이크로초 단위로 읽습니다.
  5. 에코 시간을 거리(센티미터)로 변환합니다.
  6. 읽기 단추 상태
  7. 버튼(A0)이 눌렸는지(HIGH) 확인하십시오.//펌프 테스트용
  8. LCD에 표시 거리
  9. 커서를 두 번째 행으로 이동합니다.
  10. 이전 거리 판독값을 지웁니다.
  11. 인쇄 거리 값 뒤에 " cm"가 붙습니다.
  12. 릴레이가 활성화되어야 하는지 확인
  13. 거리가 5cm < OR 버튼을 누른 경우:
  14. 릴레이를 켭니다.
  15. LCD에 "ON"을 표시합니다.
  16. 다른:
  17. 릴레이를 끕니다.
  18. LCD에 "OFF"를 표시합니다.
  19. 다음 읽기 전에 500ms 동안 기다립니다(LCD 업데이트 깜박임을 방지하기 위해).

3단계: 빌드 박스

지정된 대로 이 상자를 빌드합니다.

4단계: 급수 시스템 구축

그림과 같이 이 급수 시스템을 구축하고 누수 여부를 테스트하십시오.

5단계: 물리적 회로 조립

tinkercad 이미지에 표시된 회로를 조립하고 조명을 펌프와 밸브로 교체하십시오. 배럴 잭 전원 케이블에 탭하도록 지정된 대로 펌프와 밸브를 배선합니다(펌프와 밸브는 표준 12v 플러그에서 전원이 공급됨). 상자에 하드웨어를 설치하기 전에 이를 사용하여 모든 구성 요소를 테스트하십시오.

6단계: 회로와 급수 시스템을 박스에 맞추기

회로를 후면 구획에 끼우고 급수 시스템을 상단에 밀어 넣은 다음 스크린을 슬롯에 연결하고 초음파 센서를 슬롯에 연결할 수 있을 만큼 충분히 긴 전선을 사용하는지 확인하십시오.

7단계: 닫고 즐기세요!

 

소스

#include <LiquidCrystal.h>

// LCD 핀 설정
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// 초음파 센서 핀 설정
const int triggerPin = 7;
const int echoPin = 6;

// 릴레이 핀
const int relayPin = 8;

// 버튼 핀
const int buttonPin = A0;

// 변수를 초기화
long duration;
int distance;
int buttonState;

void setup() {
  // LCD 초기화
  lcd.begin(16, 2);
  lcd.print("Distance:");

  // 핀 모드 설정
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(relayPin, OUTPUT);
  pinMode(buttonPin, INPUT);

  // 릴레이 OFF로 시작
  digitalWrite(relayPin, LOW);
}

void loop() {
  // 초음파 센서를 사용한 거리 측정
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; // 거리 계산 (cm)

  // 버튼 상태 읽기
  buttonState = digitalRead(buttonPin);

  // LCD에 거리 표시
  lcd.setCursor(0, 1);
  lcd.print("                "); // 이전 값 지우기
  lcd.setCursor(0, 1);
  lcd.print(distance);
  lcd.print(" cm");

  // 릴레이 활성화 조건
  if (distance < 5 || buttonState == HIGH) {
    digitalWrite(relayPin, HIGH); // 펌프 활성화
    lcd.setCursor(10, 0);
    lcd.print("ON ");
  } else {
    digitalWrite(relayPin, LOW); // 펌프 비활성화
    lcd.setCursor(10, 0);
    lcd.print("OFF");
  }

  delay(500); // LCD 업데이트 간격
}

코드 설명

  1. LCD 디스플레이: 물병과 센서 간의 거리를 표시하며, 상태(ON/OFF)를 보여줍니다.
  2. 초음파 센서: 거리 감지용으로 사용됩니다.
  3. 릴레이 제어: 거리가 5cm 미만이거나 버튼이 눌렸을 때 펌프와 밸브를 작동합니다.
  4. 버튼 제어: 수동으로 펌프 테스트 및 작동 상태를 확인할 수 있습니다.

추가 팁

  • 거리 임계값을 필요에 따라 조정할 수 있습니다.
  • 에러 처리와 같은 추가 기능을 구현하여 더 안정적으로 작동할 수 있도록 만들어 보세요.

이 코드를 아두이노에 업로드하여 테스트해 보세요! 작동을 확인하면서 필요한 부분을 커스터마이즈할 수도 있습니다. 🚀

728x90
반응형