프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

[LCDX적외선 감지 센서] 가까이오면 꺼지는 눈 지킴이 TV 만들기

2018-04-12 09:45:26

 

 

개요

 

어렸을 때 재밌는 만화나 영화를 볼 때 조금 더 실감나고 크게 보기 위해 TV 속에 들어갈만큼 가까이서 본 적이 있으신가요? 

 

이럴 때면 어김없이 부모님께서는 한 마디 하곤 했습니다.

 

'TV가까이서 보면 나중에 커서 눈 나빠진다!!'

 

<출처 : http://www.wonderbaby.org>

 

 

 

 

 

 

 

 

TV를 가까이서 보게 되면 눈의 피로가 빠르게 누적되는 것은 물론 초점이 계속 바로 앞에서 맺히기 때문에

나중에는 멀리 있는 것을 잘 보지못하는 근시안이 생길 수 있습니다.

 

하지만 최근들어서 TV를 보는 거리는 시력 악화에 큰 영향을 미치지 않는다는 연구 결과가 있습니다.

 

어느 이론이 사실일지는 모르겠지만 중요한 건 가까이서 보는 것은 결코 시력에 도움이 되지 않는 사실입니다.

 

<어두운 곳에서 가까이서 TV를 보는 행위는 정말 좋지 않습니다!>

 

 

 

 

 

 

 

 

사실 TV를 가까이서 보게되는 원인은 '집중'하기 때문입니다. 집중을 하게 되면, 시야에 내가 보고자 하는 것을 채워놓고자 하기 때문이죠.

 

즉, 사람이 TV를 가까이서 보는 것은 어쩌면 자연스런 행위일지 모릅니다 :) 

 

 

 

 

 

 

 

 

 

그래서!

 

TV에 가까이 다가갔을 때 TV가 자동으로 꺼지게금 제어한다면, TV를 가까이서 보는 것을 예방할 수 있지 않을까요?

 

스마트 홈 키트에서는 적외선 장애물 감지 센서와 LCD를 이용해 '가까이 오면 꺼지는 눈 지킴이 TV'를 구현해 볼 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

적외선 장애물 감지 센서와 LCD의 활용 용도는 아래와 같습니다.

 

 

- 적외선 장애물 감지 센서

  스마트 홈 키트에 구성되어 있는 장애물 감지 센서는 센서 상단의 가변 저항을 통해 측정할 거리 조정이 가능합니다. 

  적외선 장애물 감지 센서를 이용해 TV에 앞에 사람이 있는지 없는지의 유무를 판단합니다. 

 

 

- LCD

  TV의 역할을 합니다. 적외선 장애물 감지 센서에 장애물이 감지되면 화면을 OFF하고, 적외선 장애물 감지 센서에 장애물이 감지되지 않으면, 화면을 ON합니다.

 

 

 

 

 

 

 

필요한 부품 목록

 

NO 부품명 수량 상세설명
MDF 외관  
2 우드락 가구 2 TV
3 오렌지보드 BLE 1 블루투스 4.0 포함 보드
4 적외선 장애물 감지 센서 1  
5 피에조 부저 1  
6 LCD 1 I2C
7 브레드보드 1  
8 점퍼케이블    

 

부품명 MDF, 우드락 외관 오렌지보드 BLE 적외선 장애물 감지 센서 피에조 부저
파트

 

부품명 LCD 브레드보드 점퍼케이블
파트 관련 이미지
 

 

 

TIP / 조도센서와 피에조 부저의 사용 방법을 알아보도록 하겠습니다. 

적외선 장애물 감지 센서 사용법 알아보기

LCD 사용법 알아보기

 

 

TIP / MDF 및 가구 제작 방법에 대해 알아보도록 하겠습니다. 

MDF 외관 조립하기

스마트 홈 구성하는 우드락 가구 만들기

 

 

 

 

하드웨어 making

 

 

 

 

소프트웨어 coding

 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  // I2C LCD를 사용하기 위한 라이브러리 호출하기

LiquidCrystal_I2C TV(0x3F, 16, 2);  // I2C LCD를 TV라는 이름으로 선언

int piezoPin = 2; // 피에조 부저의 +극을 오렌지보드 2번에 연결
int irPin = 9;  // 적외선 장애물 센서를 오렌지보드 9번에 연결

int Flag;
int notes[] = {6900, 4906, 6900, 4906, 6900};
// 가까울 시 울릴 경보의 멜로디 작성

void setup()
{
  // 시리얼 통신을 위해 통신속도(Baudrate)를 9600으로 설정
  Serial.begin(9600);
  pinMode(piezoPin, OUTPUT); // 피에조 핀을 출력핀으로 설정
  pinMode(irPin, INPUT);  // 적외선 장애물 센서 핀을 입력핀으로 설정

  TV.init(); // I2C LCD의 기본 설정
  TV.backlight();  // I2C LCD의 백라이트를 켜줌
  TV.setCursor(0, 0); // I2C LCD의 커서위치를 0, 0으로 설정(첫번째 줄, 첫번째 칸)
  TV.print("Looking TV...."); // I2C LCD에 "Looking TV...." 메세지 출력
}

void loop()
{
  // 적외선 장애물 감지 센서 값 측정 후 시리얼 모니터에 출력
  int IRVal = digitalRead(irPin);
  Serial.println(IRVal);

  // 거리가 가까울 경우
  if (IRVal == 0) {
    if (Flag == 0) {
      // 경보 멜로디를 출력
      for (int i = 0; i < 5; i++) {
        tone(piezoPin, notes[i], 150);
        delay(150);
      }
      Flag = 1;
    }

    // TV를 끔
    TV.noBacklight();
  }

  // 거리가 멀 경우
  else {
    // TV를 킴
    TV.backlight();
    Flag = 0;
  }

  delay(100);
}

 

 

 

소프트웨어 코드 설명

 

LiquidCrystal_I2C TV(0x3F, 16, 2);  // I2C LCD를 TV라는 이름으로 선언

 

LCD를 설정하는 코드입니다. 

 

매개변수 안에는(LCD의 I2C주소, LCD의 열 개수, LCD의 행 개수)를 작성합니다.

 

 

 

LCD의 I2C주소를 찾는 방법은 LCD의 예제를 확인해주세요.

 

LCD사용하기 튜토리얼 링크 : https://kocoafab.cc/tutorial/view/727

 

 

 

 

 

 

 

  // 거리가 가까울 경우
  if (IRVal == 1) {
    // 경보 멜로디를 출력
    for (int i = 0; i < 5; i++) {
      tone(piezoPin, notes[i], 150);
      delay(150);
    }
    // TV를 끔
    TV.noBacklight();
  }

  else {
    // TV를 킴
    TV.backlight();
  }

 

적외선 감지 센서에 물체가 인식이 되면(사람이 가까이 오면) 멜로디를 출력하는 코드입니다.

센서 중간에 있는 민감도 조절하는 감도조절부 가변저항을 돌려서 적당한 거리를 인식하게 맞추고 사용하세요.

(자세한 내용은 https://kocoafab.cc/tutorial/view/729 에서 소프트웨어 코드 설명 부분을 참고하세요)

 

 

적외선 장애물에 대한 이미지 검색결과

 

 

 

 

 

 

 

적외선 장애물 감지 센서 감도 조절 방법

 

 

 

 

 

 

 

 

 

 

프로젝트 시연 영상

 

kocoafabeditor

코코아팹, 오렌지보드, 아두이노, 오픈소스하드웨어, SW교육, SW코딩, 코딩, 코딩 교육, 스마트홈, IoT 홈, IoT, DIY, 키트, kit, kocoafab, ornage board, arduino, opensource hardware, Software, education, physical computing, LCD, 적외선 장애물 감지 센서, IR sensor
profile

김주안 2018-06-02 20:51:38

적외선 센서 말고 초음파 센서를 이용해도 원리가 같다고 생각하는데 굳이 적외선 센서를 이용하는 이유가 있나요?
초음파 센서를 이용하면 위의 코딩을 변형해야 하나요?