Arduinoで遊ぼう - TwitPicに画像をポストするライブラリ
Posted by arms22 on 2010年01月02日 6 0Twitter上で画像を共有するサービス「TwitPic」にArduinoから画像をポストするライブラリを作ったよ!ArduinoからTwitterにつぶやきをポストするライブラリはあったけど、画像をポストするライブラリはなかったでしょ?
JPEGカメラモジュールと組み合わせれば定点観測カメラなんかも簡単に作ることができるよ!ご利用は計画的にね!
追記2010/1/5
そうそうArduinoをインターネットに接続するにはイーサネット・シールドが必要だよ。
Arduinoと接続する
Arduinoで遊ぼう - JPEGカメラモジュールで写真を撮る
http://arms22.blog91.fc2.com/blog-entry-261.html
ライブラリをダウンロードする
TwitPicライブラリ
http://arms22.googlecode.com/files/TwitPic_002.zip
ダウンロード+解凍してできたTwitPicフォルダをArduinoフォルダのHardware/librariesにコピーしてください。Mac用のArduino IDEでバージョンが0017以上の場合~/Documents/Arduino/librariesにTwitPicフォルダをコピーしてください。librariesフォルダがない場合は新規作成してください。
サンプルスケッチ
サンプルを実行させると次のような画像とメッセージをポストするよ。
※IPアドレスやMACアドレスはあなたの環境に合わせて変更してください。
#include <Ethernet.h>
#include <TwitPic.h>
#include "SampleImage.h"
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
TwitPic twitpic("Yourname","Password");
uint32_t sampleImageTransfer(Client *client)
{
if(client){
for(uint32_t i=0; i<sizeof(sampleImage); i++){
client->print(pgm_read_byte(sampleImage+i));
}
}
return sizeof(sampleImage);
}
void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(9600);
delay(3000);
int ret = twitpic.uploadAndPost("Sample Image Post from Arduino", &sampleImageTransfer);
if(ret < 0){
Serial.print("post failed : err code = ");
Serial.println(ret);
}
else{
Serial.println("OK.");
}
}
void loop()
{
}
Ethernet.hとTwitPic.hをインクルードします。あなたの環境にあわせてMACアドレス、IPアドレスを変更します。TwitPicクラスのインスタンスを作成します。この時、あなたのTwitterIDとパスワードを指定します。setup関数でEthernetライブラリの初期化を行います。
画像のポストにはuploadAndPost関数またはupload関数を使います。uploadAndPost関数はTLにメッセージを流しますが、upload関数は画像のポストのみ行います。
uploadAndPost関数の第1引数にはポストするメッセージ、第2引数には画像を転送するユーザ関数のポインタを渡します。
ユーザ関数は2つの機能をライブラリに提供する必要があります。1つは転送する画像サイズをライブラリに通知すること、もう1つは画像の転送を行うことです。
ライブラリは最初に引数0を渡しユーザ関数を呼び出します。この時ユーザ関数はこれから転送する画像のサイズを返します。次に引数にClientクラスのポインタを渡して呼び出します。この時ユーザ関数はClientクラスを使って画像を転送します。
画像の転送が完了しポストに成功したらuploadAndPost関数は0を返します。失敗した場合、負の値を返します。-1は致命的なエラー。-1001はTwitterIDまたはパスワードが無効です。-1002は画像が見つかりません。-1003は無効な画像タイプです。-1004は画像サイズが4MB以上です。
今のところこのライブラリはJPEG画像のポストにしか対応していません。
Ads by Google
6 Comments
すごいですね。夢がふくらみますね。あ、あけましておめでとうございます。
船田さん
あけましておめでとうございます。
今年もよろしくお願いします。
いろいろ組み合わせていくと楽しそうですけど、そろそろArduinoだとメモリとか厳しそうです。
あけましておめでとうございます。
今年もよろしくお願いします。
いろいろ組み合わせていくと楽しそうですけど、そろそろArduinoだとメモリとか厳しそうです。
このコメントは管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
twitpicのAPI仕様が大きく変わったようです。
後日対応しようと思います。
後日対応しようと思います。
申し訳ありません....対応していただけると助かります。
宜しくお願いします。
宜しくお願いします。
Leave a reply
該当の記事は見つかりませんでした。