【 릴리패드LilyPAD#3】 우리집 휴지통 스마트하게 바꿔보자! (Plus 영상설명!)
요즘 대세, 샤오미 휴지통 부러워 하지 맙시다!
그냥 여기서 뚝딱 한 번 만들어 보죠~ ^^;;
우선, 고려사항으로 센서는 초음파센서(HC-SR04)를 이용해 보겠습니다. 그리고 메인보드는 아두이노 우노, 미니, 프로미니, 모두다 사용할 수 있지만, 작으면서도 얇은 릴리패드 328을 한 번 사용해보겠습니다. 그리고, 안드로이드 스마트폰이나 각종 충전단자 규격으로 많이 사용되는 마이크로 5핀을 사용하여, 충전 가능한 휴지통으로 구성해보겠습니다.
첨엔, 18650충전지를 두개 사용하였으나, 장착모듈의 사이즈를 작게 하기 위해 18650 하나만(3.7V) 사용하게 되었고, 결과적으로 3.7V의 낮은 전압에서도 동작되는 릴리패드 선택과 딱 맞아 떨어졌네요. ^^
▶ 선수학습 :
1. 릴리패드종류와 특징 소개 ☜ 클릭!
2. 릴리패드 처음사용 설명서(영상포함) ☜ 클릭!
3. 18650 충전지와 TP-4056 충전모듈 안내 ☜ 클릭!
▶ 영상으로 보고 따라하기 :
(아래 영상 클릭하셔서 1080p 고화질로 보세요~)
▶ 제작준비 :
1. 아두이노 코드 전송을 위해 아래와 같은 PC와의 UART통신용 'FT232RL' 과 같은 모듈을 준비한다.
(릴리패드USB 버전은 모듈 필요없이 직접 연결가능함)
- 위 FTDI 모듈의 드라이버 다운로드와 설치에 대한 상세안내는 선수학습 2번 참조할 것
▶ 부품 목록 :
1. 아두이노 릴리패드328 (릴리패드USB, 아두이노 우노, 미니, 프로미니 등등도 가능함)
2. 초음파 센서 (HC-SR04)
3. 서보모터(SG-90 혹은 다른 서보모터 모두 가능)
4. 18650 충전지 (1구 홀더 포함)
5. TP-4056 충전 모듈 ( 위 , 선수학습 참조)
6. 스위치 (3P 슬라이드 스위치, 토글 스위치, 등등 가능)
7. 점퍼케이블(암↔수 케이블) & 연결용 전선
8. 뚜껑 오픈용 막대 (문구점 등에서 판매하는 아이스바 스틱등을 이용하면 됨)
9. 휴지통 (휴지통의 모양에 따라 작업구조가 달라지니 신중하게 선택 할 것)
▶ 회로 연결도 :
▶ 아두이노 코드(Arduino code) :
/* 스마트 휴지통 with LilyPAD */
/* by RasINO IOT rasino.tistory.com/285 */
#include <Servo.h> // 서보 라이브러리를 포함
#define servoPin 5 // 서보 모터핀연결 포트 지정
Servo servo; // 'servo' 라는 이름으로 선언
int angle=0; // 서보 각도(위치)변수 선언과 초기화
int distance; // 거리값 저장을 위한 변수 선언
int triggerPin = 6;
int echoPin = 7;
void setup() {
Serial.begin(9600);
servo.attach(servoPin); // 서보모터 연결된 아두이노 포트 지정
pinMode(triggerPin, OUTPUT); // 트리거 핀을 출력으로 설정
pinMode(echoPin, INPUT); // 에코 핀을 입력으로 설정
}
void loop() {
// ----------- 초음파 거리 측정용 신호 발생부분 -----------------------
digitalWrite(triggerPin, LOW); // 트리거 핀 초기화
digitalWrite(echoPin, LOW); // 에코 핀 초기화
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH); // 트리거 핀으로 10 us의 펄스를 발생
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// ----------- 초음파 거리 계산부분 ----------------------------------
distance = pulseIn(echoPin, HIGH)/58; //에코핀값을 거리값(cm)으로 계산후 저장
Serial.println("Distance(cm) = " + String(distance)); //시리얼모니터로 확인
delay(200);
// ----------------------------------------------------------------
if (distance < 20) { // 물체(사람)가 20cm 이하로 감지되면,
digitalWrite(13, HIGH); // LED 켜기 (아두이노의 빌트인 LED)
servo.write(178); // 서보모터 스팩에 따라 최대 각도로 변경(뚜껑 열기)
delay(3000); // 뚜껑이 열리고 3초 대기
}
else { // 20cm 이하가 아닌 모든 경우는 뚜껑 닫기
digitalWrite(13, LOW);
servo.write(1); // 서보모터의 각도를 변경한다 (뚜껑 닫기)
delay(500); // 뚜껑이 닫히는 최소한의 시간을 준다
}
}
▶ 아두이노 코드 & 라리브러리 다운로드
서보라이브러리는 아두이노 스케치 IDE의 라이브러리 검색에서 검색 후 설치 하여도 되고, 만약 라이브러리 에러가 난다면, 기존 설치된 servo.h 라이브러리를 모두 삭제 후, 아래 서보라이브러리를 zip파일 그대로 추가하면 됨.
▶ 유의사항
1. 휴지통 선택이 중요합니다.
: 휴지통 모양에 따라서 부품을 장착하기 불편 할 수도 있으며, 서보모터를 스틱 바를 이용해서 뚜껑을 열지? 아니면, 직접 서보모터와 고정시켜서 열어야 할지? 가 달라지기 때문입니다.
2. 릴리패드가 아닌 다른 아두이노 보드를 선택할 경우, 최하 5V 이상을 넣어줘야 하기 때문에, 18650리튬 배터리를 사용할경우 두 개를 직렬로 연결(7.4V)하여 5V 이상을 만들어 주어야 아두이노가 동작하게 됩니다. (단, 프로미니는 3.3V 동작과 5V 동작하는 버전이 있음) , 이렇게 되면, 18650이 제대로 충전이 되게 하려면 TP-4056모듈을 각각(2개) 연결 해줘야 합니다.
3. 센서 위치
: 초음파 센서의 위치나 방향에 따라 쓰레기를 버리는데 편할 수도 있고 불편할 수 있으니 충분히 고민해보세요. 이 때 센서를 달아줄 구멍은 인두기를 사용하면 좀더 쉽게 뚫립니다.
4. 지금 제작한 스마트 휴지통은 쓰레기를 담는 몸체에는 아무것도 설치를 하지 않는 방식으로 제작되어서 비닐봉지를 넣고 쓰레기 처리를 하는 등등의 작업이 실생활에서 편하도록 디자인 되었습니다.
따라서 이런점도 고려해서 제작해보세요~ ^^;;
▶ 스마트 휴지통 버전 2.0 에서는 스마트한 기능들을 더 집어 넣어 제작해 볼 예정입니다.
감사합니다~
※ 주의! : 18650과 같은 리튭배터리는 직접적인 합선(쇼트)이나 회로내에서의 합선 등에 의해 불꽃과 소폭발의 가능성이 있는 제품이므로 다루실 때 충분한 주의와 사전지식이 필요하니 주의하시기 바랍니다.
'아두이노 > 4. 프로젝트 LAB' 카테고리의 다른 글
【아두이노 프로젝트#12】아두이노 나노(Nano) OLED 탁상시계 (with Calendar & 온도계) (0) | 2020.11.27 |
---|---|
『 매번 물 주기 귀찮은 화분! 말라죽는 우리 집 화분을 구해주세요! 』 아두이노 활용 프로젝트 콘텐츠 소개! 』 (2) | 2020.11.11 |
【 릴리패드LilyPAD#2】 릴리패드 처음 사용설명서~! (영상설명) (2) | 2019.11.18 |
【 아두이노Proj#8】 사륜구동 4WD 블루투스 RC카 만들기~! (with 모터쉴드) (33) | 2019.07.31 |
【 아두이노Proj#6】 선없는 조이스틱 블루투스 무선 미니카 만들기~! (HC-05) (7) | 2019.06.25 |