[Tutorial]리모콘으로 취침등 제어하기 (2)

Aduino/Seeeduino 2015. 12. 11. 04:59 Posted by 생각하는로뎅
반응형

안녕하세요 ㅎㅎ

전편에 간단히 리모콘 조작하는 방법에 이어서 하드웨어 조립 및 마무리를 하려고 합니다.


간단히 준비물을 아래와 같습니다.


1. 준비물

  (1) Relay Module V3.1 (Arduino Compatible)

  (2) 다목적 가위

  (3) 단자 압착기

  (4) 2구 조립형 콘센트

  (5) 파워 케이블

  (6) 취침등

  (7) Y 단자 (4-6)

  (8) 9V 배럴잭 E형 (9V to Barrel Jack Adapter)

  (9) - 드라이버 (조금한거)

  (10) + 드라이버



  대략 준비물은 이렇게 되네요.


 2. 만들기


  (1) 일단 파워케이블의 꼭다리를 과감하게! 다목적 가위로 잘라 버립니다. 


  (2) 꼭다리에서 적당히 간격을 둔 뒤, 가위로 둥글게 흠집을 내서, 아래 사진 처럼 조심스럽게 벗겨 줍니다.


  (3) 전선을 벗기면, 아래 세 가닥이 나오게 됩니다.


  (4) 갈색을 벗겨 낸 후,


  (5) Y 단자에 넣어서, 압착기로 찍어 눌러 줍니다.


  (6) 연두색과 노란색이 같이 있는 선도 같은 방법으로 벗겨 낸 후, Y 단자를 달아줍니다.


  (7) 나머지 파란색 선을 아래 그림과 같아 잘라 주신 후, 피복을 살짝 벗겨 냅니다. 그리고 도마뱀 꼬치처럼 떨어져버린 파란색 선을 (4) , (5) 번과 같이 피복을 살짝 벗겨 낸 후, Y 단자를 장착합니다.




  (8) 릴레이 모듈을 보시면 N/C, NO, NC, COM 으로 이루어져 있습니다.

      여기서 NO는 Nomal Open, NC는 Nomal Close 입니다.

      Nomal Open은 스위치가 열린 상태이기 떄문에, 전기가 흐르지 않고, 스위치가 닫히

      면 전기가 흐릅니다.

      Nomal Close는 Nomal Open의 반대라고 생각하시면 됩니다.

      저희는 Com과 Nomal Open 으로 연결을 합니다.

 



  (9) 2구 콘센트를 분해하고, 아래의 그림과 같이 장착해줍니다. 연두색과 노란색이 같이 있

      는 선은 중앙 접지에 물려 주시고, 나머지는 순서 상관 없이 Y 단자를 밀어 넣은 뒤, 나사

      를 조여 줍니다.


  (10) 다시 2구 콘센트를 조립 후, 취향대로(?) 안전하게 보일 정도로 전기테이프로 꽁꽁 싸매

        거나, 각자의 아이디어에 맞게 안전하게 포장해줍니다. (무책임한!! -ㅅ-)

        이제 릴레이를 샀을때 같이 딸려오는 커넥터 있죠? 그것을 릴레이에 장착합니다.




  (11) 릴레이에 연결된 커넥터에 검은색 라인은 GND, 빨간색 라인은 5v, 커넥터(연두색) 라인과 아두이노 3번(노란색) 라인에 맞춰서 3번 핀에 꼽아줍니다.


이제 거의 다와가네요.


(12) 이제 아두이노 소스를 작성해서, 업로드 해야겠죠?

아두이노 소스는 아래와 같습니다.

  전편에서 만든 소스를 조금 다듬고 추가되었습니다.

  - 리모콘의 전원 버튼을 누르면 릴레이 ON이 되어 전원이 공급 됩니다.

  - 리모콘의 전원 버튼 외에 버튼을 누르면 릴레이가 off가 되어 전원 공급이 차단됩니다.


#include <IRremote.h> // Include the IRremote library

const uint16_t BUTTON_POWER = 0xD827; // i.e. 0x10EFD827

const uint16_t BUTTON_A = 0xF807;

const uint16_t BUTTON_B = 0x7887;

const uint16_t BUTTON_C = 0x58A7;

const uint16_t BUTTON_UP = 0xA05F;

const uint16_t BUTTON_DOWN = 0x00FF;

const uint16_t BUTTON_LEFT = 0x10EF;

const uint16_t BUTTON_RIGHT = 0x807F;

const uint16_t BUTTON_CIRCLE = 0x20DF;


/* Connect the output of the IR receiver diode to pin 11. */

int RECV_PIN = 11;


/* relay pin 3 */

int Relay = 3;


/* On Off */

boolean isOn = false;


/* Initialize the irrecv part of the IRremote  library */

IRrecv irrecv(RECV_PIN);

decode_results results; // This will store our IR received codes

uint16_t lastCode = 0; // This keeps track of the last code RX'd



void setup()

{

  Serial.begin(9600); // Use serial to debug. 

  irrecv.enableIRIn(); // Start the receiver

  pinMode(Relay, OUTPUT);     //Set Pin3 as output

  digitalWrite(Relay, LOW);   //Turn off relay


}


void loop() 

{

  if (irrecv.decode(&results)) 

  {

    

    /* read the RX'd IR into a 16-bit variable: */

    uint16_t resultCode = (results.value & 0xFFFF);


    if (resultCode == 0xFFFF)

      resultCode = lastCode;

    else

      lastCode = resultCode;


    switch (resultCode)

    {

      case BUTTON_POWER:

        digitalWrite(Relay, HIGH);    //Turn on relay

        break;

      case BUTTON_A:

      case BUTTON_B:

      case BUTTON_C:

      case BUTTON_UP:

      case BUTTON_DOWN:

      case BUTTON_LEFT:

      case BUTTON_RIGHT:

      case BUTTON_CIRCLE:

        digitalWrite(Relay, LOW);   //Turn off relay

      default:

        Serial.print("Unrecognized code received: 0x");

        Serial.println(results.value, HEX);

        break;        

    }    

    irrecv.resume(); // Receive the next value

  }

}



 (13) 업로드 방법은 전편을 참고해주세요

     [Tutorial]리모콘으로 취침등 제어하기 (1)


 (14) 정상적으로 업로드 되셨나요? 그러면 전원 콘센트에 전원을 넣은 뒤, 취침등에 전원을 공급해서 리모콘을 조작해 봅니다. 나머지 부분들은 아래 동영상을 참고하시면 될꺼에요^^






반응형