ノード⑧:検索条件の設定
ここでは、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にあります。ぜひ、下記の資料をご覧ください。(編集部)

              
              
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
															
														
															
														
															
														
    
    
    
    
    
													
													
													
													
													
										
									
                    