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

Aduino/Seeeduino 2015. 12. 8. 16:34 Posted by 생각하는로뎅
반응형

안녕하세요 ㅎㅎ

마누라가 취침등을 리모콘을 끄고 켜고 싶다고해서, 만들게 되었습니다.


리모콘으로 취침등을 On/Off 만들어 보면서, 차근히 정리해보았습니다.


주제는 리모콘으로 취침등 제어하기입니다.

먼저, 리모콘이 동작을 해야겠죠?


첫번쨰는 리모콘 기능으로 한번 만들어 봅시다.


1. 준비물 (클릭시 링크 이동)

  (1) 정품 안드로이드 ADK 개발용 아두이노 R3 (Arduino Mega ADK R3)

   ( 와이파이 모듈 설치해서 원격으로도 해볼 생각입니다^^)


 (2) 적외선 송수신 킷 (SparkFun IR Control Kit)

 



  2. 아두이노 소프트웨어 다운로드 및 환경 구축

   (1) https://www.arduino.cc/en/Main/Software#


  windows를 누르시면, 바로 zip 파일이 다운로드가 됩니다. 용량이 크네요. (100메가 이상)


  (2) 적당한 곳에 압축을 풀어서 아두이노 소프트웨어를 실행 시켜 봅시다.





  일단 한번 Ctl + S 를 누른 후, 저장을 해줍니다. 

  기본 저장 폴더

  C:\Users\사용자명\Documents\Arduino


 (3) 업로드할 보드를 선택해줍니다.

    툴 -> 보드 -> Arduino/Genuino Mega or Mega 2560 선택



  (4) 적외선 송수신 킷에서 제공하는 라이브러리를 다운로드 받습니다.

    다운로드 <- 클릭

    다운 받으신 후, 압축은 풀지 않으셔도 됩니다.


  (5) 라이브러리 포함하기 -> ZIP 라이브러리 추가

      클릭 후, (4)에서 받은 파일을 추가해줍니다.



  (6)  C:\Users\사용자명\Documents\Arduino 에 들어가시면, [libraries] 폴더가 하나 생성되어 있습니다. 이것이 (5) 에서의 영향으로 생성된 폴더입니다. (안에 보시면, 라이브러리가 추가되어 있군요.)


  (7) 이제 보드와 pc와 연결해줍니다.

  


    이런.. 책상에 머리카락이!!

    아무튼 저렇게 연결을 하면, pc에서 COM 포트를 설치하게 됩니다. 



  저는 COM 14로 잡혔네요. 여러분도 확인하셨나요? 장치관리자에서 확인 하시면 되요.


  아두이노 소프트웨어에서 포트 번호를 꼭 지정해줍니다. 저는 COM 14이기 떄문에, COM 14로 선택했습니다.


  

  (8) 이제 아두이노에 소스를 업로드해 봅시다.

  아두이노 소스는 아래와 같습니다. 물론, 예제 코드를 참고 한 것이지만, 일단 쓸대없는 것을 다 지워버리고, 필요한 부분만 남겨 두었습니다.


#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;

/* 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

}


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:

        Serial.println("Power");

        break;

      case BUTTON_A:

        Serial.println("A");

        break;

      case BUTTON_B:

        Serial.println("B");

        break;

      case BUTTON_C:

        Serial.println("C");

        break;

      case BUTTON_UP:

        Serial.println("Up");

        break;

      case BUTTON_DOWN:

        Serial.println("Down");

        break;

      case BUTTON_LEFT:

        Serial.println("Left");

        break;

      case BUTTON_RIGHT:

        Serial.println("Right");

        break;

      case BUTTON_CIRCLE:

        Serial.println("Circle");

        break;

      default:

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

        Serial.println(results.value, HEX);

        break;        

    }    

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

  }

}



 이제 업로드를 해봅시다. 상단 툴바에 화살표 모양을 누르면 보드에 업로드가 됩니다.



  아.. 이런 에러가 났네요


아두이노:1.6.7 Hourly Build 2015/12/04 02:17 (Windows 7), 보드:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

G:\arduino\arduino-nightly-windows\arduino-nightly\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope


 int RECV_PIN = TKD2; // the pin the IR receiver is connected to


                ^


"IRremote.h"를 위한 복수개의 라이브러리가 발견되었습니다

 사용됨: G:\arduino\arduino-nightly-windows\arduino-nightly\libraries\RobotIRremote

사용되지 않음: C:\Users\SUNGJIN\Documents\Arduino\libraries\Arduino-IRremote-master

exit status 1

컴파일 오류 발생.


  같은 라이브러리가 있다네요. 전 홈페이지에서 받은 라이브러리를 쓸것이기 때문에 일단 기존 라이브러리는 과감하게 삭제해버리겠습니다.

 


  다시 화살표를 눌러서 업로드해봅니다.

  아래와 같이 나오면, 정상적으로 업로드가 된것입니다.

  



(9) 이제 회로를 구성해보죠.

노란색으로 칠해진 구역만 회로를 구성할꺼에요.



  

실제 연결하면 아래와 같습니다.


꼽는 곳이 해깔리시면, 아래 그림을 참고해서 꼽아줍니다.



  1. OUT : PWM 11번 핀

  2. GND : GND
  3. Vs : 5V


(10) 이제 리모콘에 건전지 장착 후, [툴 -> 시리얼 모니터]를 호출합니다.



  리모콘을 눌러봐주세요. 로그 찍히는 것이 보이시나요?





와 잘 작동 되네요.


일단 리모콘 기능은 할 수 있겠네요.




다음글 보러 가기

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


반응형