고급 예제

다양한 도구들을 가지고 마음껏 응용해보세요.

WIFI 실드-트윗 보내기

2014-09-11 17:34:54

개요

요즘 SNS를 하나 이상하는 것이 당연하게 되었습니다.
그 중에 페이스북, 트위터가 유명합니다.
 

출처 : www.iamday.net

아두이노를 이용해서도 트윗을 보낼 수 있습니다.
아두이노와 연결된 사물의 상태 등을 트윗으로 보낼 수도 있겠죠?
또는 반대로 트윗으로 명령을 내릴 수도 있습니다.

출처 : www.instructables.com

보통 아두이노와 이더넷을 연결하여 트윗을 보내는 방법과
와이파이 쉴드를 이용한 방법이 있습니다.

본문에서는 와이파이 쉴드를 이용하겠습니다.
IP에 보안등의 문제로 접근 할 수 없을 경우 이더넷을 사용할 수 없으므로 
이런 경우 와이파이 쉴드를 사용하는 것이 좋습니다.

 

 

부품목록

NO 부품명 수량
1 아두이노 우노  1
2 와이파이 쉴드 1

 

 

부품명 아두이노 우노 와이파이 쉴드
사진 X1 x1

 

 

하드웨어 Making



 

Software Coding

/*
 와이파이 쉴드를 사용하여 트윗 보내기
 이 스케치는 instructables의 echoalex님의 스케치와 arduino.cc를 참고하였습니다.
*/
//다음 세 개의 라이브러리가 필요합니다.
#include <Twitter.h>
#include <SPI.h>
#include <WiFi.h>


char ssid[] = "network name";  //연결할 무선 네트워크 이름을 입력해주세요.
char pass[] = "password";      //비밀번호를 입력해주세요.

// http://arduino-tweet.appspot.com/에서 토큰을 받으신 후 토큰을 입력하세요.
Twitter twitter("Your token here"); 

//보낼 메세지를 입력하세요.
char msg[] = "tweet test!";

void setup()
{
  delay(1000);
  WiFi.begin(ssid, pass); 

  delay(10000);
  Serial.begin(9600);
 
  Serial.println("connecting ...");  //와이파이 연결후 메세지 보내기 시작 전에 확인

  if (twitter.post(msg)) {           //메세지를 전송 확인

    int status = twitter.wait(&Serial);  //메세지 보내기가 끝난 후 트위터로부터 상태전달 받음
    if (status == 200) {                 //200을 전달받으면 
      Serial.println("OK.");             //성공된 것이므로 시리얼 모니터에 OK출력
    } else {                             //아닐 경우 실패 메세지와 전달받은 값 출력
      Serial.print("failed : code ");
      Serial.println(status);
    }
  } else {                              //연결부터 실패 했을 경우
    Serial.println("connection failed.");
  }
}

void loop()
{
}

소프트웨어 설명

1. 트위터 라이브러리 설치 및 토큰 받기

트윗을 보내기 위해서는 트위터 라이브러리가 필요합니다.
트위터 라이브러리는 링크를 통해 해당사이트를 가서 다운 받으세요.

한 가지 더, 토큰이 필요합니다.
자신이 사용할 계정에 대한 토큰을 다음 링크를 통해 받으세요.
토큰 생성 사이트 에서 Step 1 : Get a token to post a message using OAuth.를 클릭하세요.

2. 스케치 설명

#include <Twitter.h>
#include <SPI.h>
#include <WiFi.h>
 

위 세개의 라이브러리가 필요합니다. 트위터를 제외한 나머지 라이브러리는 기본으로 내장되어 있습니다.
 

char ssid[] = "network name";  //연결할 무선 네트워크 이름을 입력해주세요.
char pass[] = "password";      //비밀번호를 입력해주세요.

// http://arduino-tweet.appspot.com/에서 토큰을 받으신 후 토큰을 입력하세요.
Twitter twitter("Your token here"); 
 

연결하실 무선 네트워크의 이름, 비밀번호를 입력하세요.
아까 받아온 토큰을  "Your token here" 부분에 넣어주시면 됩니다.
 

//보낼 메세지를 입력하세요.
char msg[] = "Automatic tweet!";


이 부분에 트위터로 보내고픈 메세지를 작성해주세요.
시리얼 모니터로 입력 받거나 등으로 응용하셔도 좋습니다.

 

 

if (twitter.post(msg)) {           //메세지를 전송 확인

    int status = twitter.wait(&Serial);  //메세지 보내기가 끝난 후 트위터로부터 상태전달 받음
    if (status == 200) {                 //200을 전달받으면 
      Serial.println("OK.");             //성공된 것이므로 시리얼 모니터에 OK출력
    } else {                             //아닐 경우 실패 메세지와 전달받은 값 출력
      Serial.print("failed : code ");
      Serial.println(status);
    }
  } else {                              //연결부터 실패 했을 경우
    Serial.println("connection failed.");
  }


twitter라이브러리의 post함수를 이용해 메세지를 보냅니다.

트위터로 부터 상태에 관련된 값을 받을 수 있습니다.
Http status code라고 하는데요, 이 값을 받아서 확인하면 전달이 잘 되었는 지 확인 할 수 있습니다.

status라는 변수에 이 값을 저장합니다.
만약 200이 왔다면 전송이 잘 되었다는 뜻입니다.

전달이 잘 되었는 지 문제가 생기면 어디서 생겼는 지 확인하기 위해 각 상황별로 시리얼 모니터에 출력할 수 있는 부분들을 넣어주었습니다.

loop부분에 원하는 동작을 추가해서 사용해보세요.

 

 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

WIFI 쉴드, 아두이노