코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-09-11 17:34:54
요즘 SNS를 하나 이상하는 것이 당연하게 되었습니다.
그 중에 페이스북, 트위터가 유명합니다.
출처 : www.instructables.com
보통 아두이노와 이더넷을 연결하여 트윗을 보내는 방법과
와이파이 쉴드를 이용한 방법이 있습니다.
본문에서는 와이파이 쉴드를 이용하겠습니다.
IP에 보안등의 문제로 접근 할 수 없을 경우 이더넷을 사용할 수 없으므로
이런 경우 와이파이 쉴드를 사용하는 것이 좋습니다.
NO | 부품명 | 수량 |
1 | 아두이노 우노 | 1 |
2 | 와이파이 쉴드 | 1 |
부품명 | 아두이노 우노 | 와이파이 쉴드 |
사진 | X1 | x1 |
/*
와이파이 쉴드를 사용하여 트윗 보내기
이 스케치는 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()
{
}
트윗을 보내기 위해서는 트위터 라이브러리가 필요합니다.
트위터 라이브러리는 링크를 통해 해당사이트를 가서 다운 받으세요.
한 가지 더, 토큰이 필요합니다.
자신이 사용할 계정에 대한 토큰을 다음 링크를 통해 받으세요.
토큰 생성 사이트 에서 Step 1 : Get a token to post a message using OAuth.를 클릭하세요.
#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
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!