enebularでクリスマスイルミネーション

毎年、この時期になると書いてるネタですが、Twitterのハッシュタグ付きツイート数を集計して、点灯していくクリスマスイルミネーションを作ってます。イベントで使ってもらったり、自分のネタの反響を可視化するアイテムとして使ってたりしてます。

これは星形のバージョン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/78b63db7-eb10-4e56-a55a-1b7b13cd3b14.png)

目標の数を超えると豪勢に光ります。（動画リンクです）
[![](https://img.youtube.com/vi/lGHxk4-QLSI/0.jpg)](https://www.youtube.com/watch?v=lGHxk4-QLSI)

12月21日（土）に私が主催している[mbed祭り@ウフル](https://mbed.doorkeeper.jp/events/101635)があるので、使おうと動かしてみたところ動かなかったので、原因を調べました。

ちなみに集計する仕組みは簡単で、Twitterノードとmilkcocoaノードを使ってるだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/e1ca44c4-2ab1-3c1d-219c-283bf17ca75f.png)

Twitterノードはハッシュタグ付きのツイートがあるとトリガがかかり、milkcocoaにそのツイートをしたusernameをpushしてるだけです。
イルミネーション側のハードは、よくある[NeoPixel](https://www.switch-science.com/catalog/list/?keyword=neopixel)と[JKsoft Blue mbed Board](http://www.runele.com/ca3/32/p-r-s/)を使っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/f7682edf-81ae-3444-75a2-e2a7222c4dd6.png)


# 動かない原因
## twitterノードの仕様変更？
twitterAPIの仕様が変わったせいかDeveloper登録が必要になってました。Developer登録してもよかったのですが、そこまでではないのと数日かかるということだったので、別な方法を考えました。

## milkcocoaのサービス終了
そういえばサービスが終了していました。

# とりあえず動く形に

## twitterノードの代わり
[IFTTT](https://ifttt.com/)を使いました。IFTTTとは、Webサービスを簡単に繋げることができるサービスです。こちらではtwitterアカウントでの認証のみで済みました。
### IFTTTの設定
IFTTTでアカウント登録をしたら、CreateからAppletを作ります。

#### If This Then ThatのThis
IFTTTでtwitterのハッシュタグツイートをトリガになるように設定します。初めて設定するときは、twitterアカウントで認証する必要があります。
serviceとしてtwitterを選び、以下のトリガを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/4a73286e-ecab-f3b3-2d9d-5a1dd65324ad.png)

ハッシュタグを記入します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/fd00c4f1-1ef6-6d67-f074-dfb9042bf84e.png)

#### If This Then ThatのThat
方法はいろいろあると思いますが、heroku上で動作しているフローに通知するため、http requestでつなげます。
そのため、webhoocksを使います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/622c98fb-e1f4-0c55-f7e0-3a52f45f05fd.png)

アクションはMake a web requestを選びます。（これしかないけど）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/b33eacd2-8474-7d95-74b8-5202a9e7d150.png)

設定はこんな感じです。herokuのURLを指定し、json型でtwitterから取得したUserNameをpostします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/5812f3af-e236-33b6-0c7e-360b6396379e.png)


## enebularのフロー
enebularのフロー側で、ifttt(twitter)からの通知を受け取って集計し、その結果をhttp requestでgetできるようにしました。

フローは単純です。
ifttt(twitter)からpostがあったら、globalコンテキストのsns_echo_countをインクリメントします。
イルミネーション装置からgetが来た場合は、sns_echo_countを返します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/2564e07b-dbae-8d19-c5b3-78e780080600.png)

# とりあえず
これで動きました。イベントのハッシュタグ付きのツイート数に応じて、LEDが点灯していきます。

[![](https://img.youtube.com/vi/p-E0263MPKk/0.jpg)](https://www.youtube.com/watch?v=p-E0263MPKk)

# 宣伝
2019年12月21日（土）のイベントには、まだ空きがあるのでご興味ある方はぜひ！
mbedとは？という方には体験コーナーもあります。

[mbed祭り 2019@師走の虎ノ門](https://mbed.doorkeeper.jp/events/101635)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/88f0205a-4280-bc41-1f29-2a87d99be864.png)


# 関連リンク

* [ハードウェアとの連携](https://qiita.com/jksoft/items/c5e7e702dfc7dda56cf7)
* [Facebookのいいね！で光るソーシャルツリー開発秘話](http://media.looops.net/kensuke/2013/12/09/socialtree/)