재료

  • 파티클 포톤 1개
  • 전구 1개
  • 릴레이 쉴드 5V 1개
  • IFTTT 계정 1개
  • 페블 워치 1개
  • 파월 서플라이 5V 1개

               


웨어러블 디바이스 대표 주자는 단연 '스마트 워치' 입니다. 

시간이 지날 수록 더 많은 기능들로 업데이트 되어 출시 되고 있지만,

핸드폰과 흡사해 지면서. 정작 방의 불을 끄고/켜기, 프린터 전원을 끄고/켜기 와 같은 사소하지만

실제 우리가 원했던 웨어러블 디바이스의 기능을 만족시키고 있지 않아 아쉬움이 남기도 했습니다. 


그렇다면, 이런 '스마트 워치'에 우리가 원하는 '기능' 들을 추가해 보는건  어떨 까요? 

instructables 에서 페블에 내가 필요한 기능을 추가한 나만의 스마트 워치 만들기 

프로젝트를 접하여 소개하고자 합니다. 


Step 1. 준비물 


- 페블 워치 

- 파티클 포톤

- 릴레이 쉴드 5V 

- 파워 서플라이 5V 

- 전구 (  Artemide Eclisse Lampada Tavolo Bianco ) 

- IFTTT 계정 


Step 2. 메이킹 


① IFTTT 계정 만들기 


IFLocation 은 웹에서 디바이스에 요청을 보내주는 앱으로 매우 유용합니다. 

우리는 이번 프로젝트에서 IFTTT 를 통해 어떤 요청을 보낼 것 입니다. 

* 만약 IFTTT 를 접하지 못하셨더라도, 이번 프로젝트를 통해 함께 접해 보도록 하겠습니다. 


ifttt.com 에 들어가서 로그인을 합니다. 

* 만약 계정이 없다면 이곳에서 계정을 만듭니다. 


이곳에서 제공하는 서비스는 무료이고, 원하는 목적에 따라 매우 유용하게 사용이 가능합니다. 

여기서 자신만의 요구를 담은 새로운 '레시피' 를 만든다면, IFTTT 를 통해 공유할 수 있고

마찬가지로 다른 사람이 만든 레시피를 '공유' 한다면, 이것을 이용해 여러가지 액션에 활용할 수 있습니다. 

IFTTT 계정을 만든 뒤,< MakeChannel >를 추가합니다.

그리고 자신의 < APIkey >를 기록해 놓습니다. 


 IFLocation 을 페블에 설치하기 


                                                 


페블에 < IFLocation > 을 설치합니다. 

페블 앱으로 들어가서 "+" 사인을 눌러 "install app" 을 누릅니다. 

그리고 CMWen 에 의해 제공된 < IFLocation > 을 찾습니다. 


스마트 폰으로 IFLocation 앱을 열어서, "setting" 버튼을 누릅니다. 

자신의 Make key 로 로그인하고, 이 label 을 컴파일 해 준 뒤, ADD 를 눌러

"particle" 을 추가합니다. 

이후 value 에 "on" "off" 두개의 옵션을 추가해 줍니다. 


 파티클 포톤에 코드 업로드 하기 


                           


파티클 포톤을 인터넷에 연결합니다. 

페블에 < particle > 앱을 다운로드 하고, < TINKER > 앱을 실행합니다. 

Thinker 앱은 초기화 된 앱으로 우리가 이 앱을 통해 새로운 기능을 추가할 수 있습니다. 

이 펌웨어를 이용해 파티클 앱을 사용하는 스마트폰으로 파티클을 컨트롤 할 수 있게 됩니다. 

* 만약 여기까지의 과정에서 문제가 있었다면, 다음을 참고합니다. 


 IFTTT 레시피 만들기 


                       


3번까지의 과정이 잘 수행 되었다면 이제 IFTTT 에 새로운 기능을 추가해 줍니다. 

ifttt.com 에 들어가서, 로그인하여 새로운 레시피를 만듭니다. 

< Make like IF > 를 검색합니다. 

컴파일을 하면 "particle" 이라는 라벨이 없는 상태로 만들어 질 것입니다. 


이제 < Particle > 을 검색하고, 채널에 추가합니다. 

" Then call function " 에서 사용하는 파티클의 이름을 선택합니다. 

그리고 "particle" 함수를 선택합니다. 

이제 < Particle > 로 가서 "off " 시켜 줍니다. 


앞의 선택은 파티클 포톤의 7번 핀을 HIGH 시켜 조명을 키는 기능이고, 

두번째 "off " 는 7번 핀을 LOW 시키는 것 입니다. 


 하드웨어 연결방법 




ⅰ.  5V 의 전압을 파워 서플라이를 통해 브래드 보드에 주었습니다. 

ⅱ. 파티클과 릴레이 쉴드를 LM 317 혹은 LM 315 에 연결합니다. 

ⅲ.릴레이를 전압에 연결합니다. 

ⅳ.5V 전압을 포톤의 VIN 핀에 연결합니다. 

ⅴ. 그리고 포톤의 7번 핀에 릴레이의 컨트롤 핀을 연결합니다. 


▶ 다음은 하드웨어 연결 회로도 입니다. 


                      


 이제 조명을 켜 봅시다 


페블 워치에서 IFLocation 으로 갑니다. 

앱을 선택하고 이전에 레시피에서 만든 Trigger 를 선택해 봅니다. 

'ON' 하면 조명이 켜지게 되고, 'OFF' 하면 조명이 꺼지게 됩니다. 


Step 3. 소프트웨어 연결방법 


1
2
3
4
5
6
7
void setup()
{
  pinMode(7, OUTPUT);
  digitalWrite(7,LOW);
  // register the cloud function
  Particle.function("particle", controlLed); // the name of function on IFTTT
}
cs


▶ setup ( ) 에서 7번 핀을 출력으로 연결시킵니다. 

초기 상태에서 7번 핀은 LOW 로 조명이 'OFF' 된 상태입니다. 

IFTTT 함수인 particle 을 사용합니다. 

그리고 새로 만든 함수 controlled 에 의해 particle 의 상태를 결정해 주도록 하였습니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void loop()
{
  // this loops forever
}
// this function automagically gets called upon a matching POST request
int controlLed(String command)
{
  // look for the matching argument "coffee" <-- max of 64 characters long
  if(command == "on")
  {
    digitalWrite(7,HIGH);
    return 1;
  }
  else if(command == "off")
  {
    digitalWrite(7,LOW);
    return 1;
  }
  else return -1;
}
cs


▶ loop ( ) 에서 command 를 읽어 들여 이것이 'ON' 상태라면 조명을 HIGH 로 설정해 주고, 

'OFF' 상태라면 조명을 LOW 로 바꾸어 줍니다. 


▶ 다음은 전체 코드입니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
int controlLed(String command);
void setup()
{
  pinMode(7, OUTPUT);
  digitalWrite(7,LOW);
  // register the cloud function
  Particle.function("particle", controlLed); // the name of function on IFTTT
}
void loop()
{
  // this loops forever
}
// this function automagically gets called upon a matching POST request
int controlLed(String command)
{
  // look for the matching argument "coffee" <-- max of 64 characters long
  if(command == "on")
  {
    digitalWrite(7,HIGH);
    return 1;
  }
  else if(command == "off")
  {
    digitalWrite(7,LOW);
    return 1;
  }
  else return -1;
}
cs


Step 4. 수행 결과 










댓글 0

MADE BY

인터랙티브 Fitbit 대시보드 만들기 다음글 나만의 스마트 워치 현재글