Enebular でTwitterをトリガーにNefry(古いほう)をLチカ
はじめまして。yukinolinです。
IoT初心者。2年ほど前にNefryをいじり始めたけど、訳あって1年ほど休眠。先日Enebularの勉強会に参加して、久々にやる気が出たので今回とりあえずやってみました。
作ったものは以下の通り。
「指定のハッシュタグがつけられたツイートがあれば、フォロワーの人数に合わせて、NefryのLEDの色が変わる」
大変だったのは、TwitterのDeveloper申請。申請目的を英語300字超で書く必要があります。適当に書きましたが、ここで心が折れる人も多いだろうな。
使ったもの
開発環境:Enebular
デバイス:Nefry(ESP8266)
クラウド:Nefryクラウド
EnebularのFlow
こんな感じでつなぎました。
ノードを配置して、つなぐだけなら30秒もかからないですね。すごく簡単。
手順1 twitterノードを設定する
Twitterノードをダブルクリックすると、以下のウィンドウが出てくるので、ここに設定を入力。
Twitter ID:Twitter Developerを申請したID
検索対象:全ての公開ツイート、フォローしているユーザ、特定のユーザ、ダイレクトメッセージから選択
検索条件:@(ユーザ),#(ハッシュタグ)が設定可能 とりあえず、#JAPANとしました。
名前:ノードの名前(好きにつけて良さそう)
ここで、Twitter IDを設定するには横の鉛筆マークをクリックして以下のウィンドウに入力する必要があります。
Twitter developerの申請ができていない方は、「1.次のURLから・・・」のリンクから申請をする必要があります。
冒頭でも言いましたが、ここが最難関でした。英語300字以上でこれから作るAppの説明を求められます。そんなもんねーよ!と言いたいところですが、ここは我慢して、大人の対応で乗り切りました。
関連記事もググればいくつか見つかったので、今からやる人は頑張ってみてください。
とりあえず、ここまでの設定で、Twitterノードに検索したTweetの情報が入ってきます。それをmsg
オブジェクト?に入れて次のFunctionノードに渡しているようです。
(あまり理解していないので、間違っていたら誰か教えてください)
手順2 ほしい情報をJSON形式に整える
次にFunctionノードを設定します。
あらかじめ、Nefryクラウドの登録しておきます。
そこでつけたuser
(ユーザー名)と、送られてくるkey
をそれぞれ入力します。
この辺りは、ちゃんとくさんのこちらの記事を勉強させていただきました。
(ありがとうございます)
最後の一行data: msg.tweet.user.friends_count
は、ツイートから取り出したい情報です。
こちらにTweet Objectの詳細があります。ここを見ると、いろんなデータを取り出せることがわかります。またの機会にいろいろ試してみようと思います。
手順3 NefryクラウドへPOSTする
最後にHTTP requestノードを以下のように設定します。
メソッド:POST
URL:http://cloud.nefry.studio:1880/nefrysetting/setdata
出力形式:JSON
名前:ノードの名前(好きにつけて良さそう)
これでデプロイすると、デバッグ画面にこんな感じでデータが上がってきます。
手順4 Nefry側のコードを作成してアップロード
コードは以下のように書きました。
ツイート主のフォロワーが100人以下なら赤、1000人以下なら緑、それ以上は青色が光るようになっています。
#include <Nefry.h>
#include <NefryCloud.h>
NefryCloud nefryCloud;
char* USER = "Nefryクラウドのユーザ";
char* KEY = "Nefryクラウドのkey";
void onpush(int count);
void setup() {
nefryCloud.begin(USER, KEY);
nefryCloud.on(onpush);
}
void loop() {
nefryCloud.loop();
}
void onpush(String str) {
Nefry.println(str);
long num = str.toInt();
if (num < 100) {
Nefry.setLed(255, 0, 0);
} else if (num < 1000) {
Nefry.setLed(0, 255, 0);
} else {
Nefry.setLed(0, 0, 255);
}
}
コンパイル時に、NefryクラウドはESP32向けなので、ESP8266ではうまくいかないかも、と警告されますが、結果的にはうまくいきました。
Nefry開発者の皆さん、ありがとうございます。
結果
こんな感じでできました。
ツイートがあったときに、デバッグエリアのデータが更新され、ほぼ同時にNefryのLEDも色が変わっています。
ところでこれ、Enebularの編集画面を落としても、Nefryが電源ON・Wifi接続中なら動き続けますね。どういう仕組みなんだ・・・?
全然理解してなくても、とりあえずこれくらいはできる、ってことですね。
今後、いろいろ試してみようと思います。
Author And Source
この問題について(Enebular でTwitterをトリガーにNefry(古いほう)をLチカ), 我々は、より多くの情報をここで見つけました https://qiita.com/yukinolinlin/items/328f5c2992a4317f6902著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .