お寿司ツイートボタン(Processing+Arduino+twitter4j)

おすしたべたいです。

 

食べたすぎておすしツイートしてしまう🍣

 

そういうわけで、お寿司の絵文字をツイートするボタンをつくりました。

(という名目でProcessing+Arduinoを試したかった)

 

・なにをしたの

Arduinoにスイッチつないで、Firmata接続したProcessing側で"スイッチが押されたらお寿司の絵文字をツイートする"という動作をさせただけ。

純正ArduinoじゃなくてJapaninoだけど許して。わりと備忘録。

 

・準備

1. ProcessingにArduinoのライブラリを入れる

2. Processingにtwitterライブラリのtwitter4jを入れる。

 -注意: 公式から落としてきたまま放り込むと認識されないので、ちゃんとわかってくれるようにフォルダ構造を作ってあげる必要があり。ググると作ってアップしてくださってる方がいるので、それをDLして最新版と.jarを入れ替えるといいかも。

3. ArduinoにはFirmataのStandardFirmataを書き込んでおく。

4. TwitterAPIを取得して、KeyとかTokenを用意しておく。

 

Arduino

スイッチをプルダウンで接続、今回は12番ピン。

f:id:Mijinko:20180417040722j:plain

こっちはこれでおわりです。

 

・Processing側

ライブラリをインポートして、処理はこっちで全部書きました。

import twitter4j.conf.*;
import twitter4j.internal.async.*;
import twitter4j.internal.org.json.*;
import twitter4j.internal.logging.*;
import twitter4j.http.*;
import twitter4j.internal.util.*;
import twitter4j.api.*;
import twitter4j.util.*;
import twitter4j.internal.http.*;
import twitter4j.*;
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
Twitter twitter;
int pin = 12;

String consumerKey = "***";
String consumerSecret = "***";
String accessToken = "***";
String accessSecret = "***";

void setup() {
size(400,200);
arduino = new Arduino(this, Arduino.list()[1], 57600);
arduino.pinMode(pin,Arduino.INPUT);
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey(consumerKey);
cb.setOAuthConsumerSecret(consumerSecret);
cb.setOAuthAccessToken(accessToken);
cb.setOAuthAccessTokenSecret(accessSecret);

twitter = new TwitterFactory(cb.build()).getInstance();
}

void draw() {
background(0);
fill(255);
if(arduino.digitalRead(pin) == Arduino.HIGH) {
tweetSUSHI();
delay(100);
}
}

//ツイートする関数 void tweetSUSHI() { try{ String sushi = "🍣"; twitter.updateStatus(new StatusUpdate(sushi+" at"+hour()+":"+minute())); println("Successfully Post SUSHI"); } catch(TwitterException e){ e.printStackTrace(); } }

***の箇所はご自分のものに。

ツイート内容に時刻が入っているのは、APIによる同一内容連投はどうやら403で弾かれるようなので。

"Status is a duplicate"とか言われます。

 

ArduinoをPCと接続したまま実行し、ボタンを押すとお寿司がツイートされます。

 (36:40になってるのは分:秒にしてたため)

 

・おわり

私は数回で飽きた。