ノード⑧:検索条件の設定
ここでは、Cloudantから過去の気象データを取り出すときの検索条件を設定します。 Functionノードを配置して、次のJavaScriptコードを設定します。
msg.payload = { 'query': 'discomfort:' + msg.payload , 'limit': 200 }; return msg;
2行目:ノード⑦で計算した不快指数を指定しています。
ノード⑨:気象データを検索
ノード⑧で設定した検索条件を使って、Cloudantから過去の気象データを取得します。 左右両方にポートがあるCloudantノードを配置して、次表のように設定してください。
項目 | 設定値 | 備考 |
---|---|---|
Service | [アプリ名]-cloudantNoSQLDB | |
Database | [データベース名] | 例:meteorologicaldata |
Search by | search index | |
index/[インデックス名] | 例:indexByDiscomfort | |
Name | [任意] |
ノード⑩:Tweet文書の作成
ノード⑨で取り出した気象データを使って、ここでツイートする文を組み立てます。 Functionノードを配置して、次のJavaScriptコードを設定します。
//体感温度 var getWindchillFactor = function( discomfort ) { var comment = ''; if (discomfort < 55) { comment = 'に寒いですね!'; } else if ( discomfort >= 55 && discomfort < 60 ){ comment = 'に肌寒いですね!'; } else if ( discomfort >= 60 && discomfort < 65 ){ comment = 'ですね!'; } else if ( discomfort >= 65 && discomfort < 70 ){ comment = 'に快いですね!'; } else if ( discomfort >= 70 && discomfort < 75 ){ comment = 'に暑くはないですね!'; } else if ( discomfort >= 75 && discomfort < 80 ){ comment = 'にやや暑いですね!'; } else if ( discomfort >= 80 && discomfort < 85 ){ comment = 'に暑くて汗が出ますね!'; } else { comment = 'に暑くてたまらないですね!'; } return comment; }; var total = msg.cloudant.total_rows; var date = context.global.date; var temp = context.global.temp; var humidity = context.global.humidity; var discomfort = context.global.discomfort; tweetText = date + '頃のデバイス近辺の平均気温は' + temp + '度、平均湿度は' + humidity + '%、不快指数は' + discomfort + 'です。'; if ( total === 0 ){ msg.payload = tweetText + ' ' + '似た気候の場所はどこだろう?'; } else { var obj = msg.payload; msg.payload = tweetText + obj[0].year + '年' + obj[0].month + '月の' + obj[0].place + 'のよう' + getWindchillFactor( discomfort ) + '(最高気温:' + obj[0].max + '度、最低気温:' + obj[0].min + '度)'; } return msg;
1~22行目:不快指数から体感温度のコメントを作成しています。
24行目:検索結果のデータ件数(msg.cloudant.total_rows)を取得しています。
25~28行目:グローバル変数から日付、平均気温と湿度、不快指数を取得しています。
30行目~:ツイートする文章を作成しています。
ノード⑪:Tweet
最後の処理として、ノード⑪で組み立てた文をTwitterにツイートします。 Twitterノードを配置して「Node-REDの使い方 - Twitterへのツイートを行ってみる」の手順に従ってTwiiter IDを設定してください。
Twitterアカウントが準備できない場合は次のステップに進んでください。 ツイートする代わりにデバッグコンソールで確認だけは可能です。
Debugノードの設定
最初に示したフローの図にはありませんでしたが、ノード⑪までの処理の結果を確認するために、フローの最後にDebugノードを配置してください。
以上で、フローは完成です。次ページで実行してみます。
IoTを始めたい方も・本格導入を検討中の方も:おすすめソリューションのご紹介
ビジネスのパフォーマンスを高めようとさまざまな業種・企業で、IoT活用を前提とするプロジェクトが動き始めています。ただし、検討を始めて最初に出てくるのは、こんな要望ではないでしょうか。
「最初は実験的にスタートしたいから、小さく簡単に素早く始めたい」
「実運用に移ったときには10万・100万単位のセンサ/デバイスに対応できるスケーラビリティも確保したい」
これにお応えできるサービス・製品がIBMにあります。ぜひ、下記の資料をご覧ください。(編集部)