2016年1月6日水曜日

Arduino+Node-RED+Adafruit IOでIoT

 Node-REDとAdafruit IOを使用して、Arduinoで計測したセンサ・データの収集、およびデバイスを制御する方法を説明します。

 ※Adafruit IOのアカウントは作成済みのこととします。

■センサー・データの収集
 センサーデータを計測するためのArduinoのセットアップ、および回路については、「Adafruit IO+Arduino+MQTTでIoT‐センサー・データの収集」を参照してください。

1.フロー(flow)の作成
 次のように「arduino in」「fuinction」「mqtt out」ノードを接続し、フローを作成します。


 「debug」ノードは確認のために入れています。

2.プロパティの設定
 各ノードのプロパティを次のように設定します。

・arduino in


・function


次のコードを入力します。

msg.payload= msg.payload * 5 / 1024 * 100;
return msg;

















・mqtt out

 「Topic」には、トピック名を「<ユーザー名>/feeds/<フィード名>」の形式で指定します。「Welcome Dashboard」の各ブロックは、「Welcome Feed」フィードに紐づけされているので、ユーザー名が「taro」なら、「taro/feeds/Welcome Feed」になります。









 「Server」の設定は、「鉛筆」アイコンのボタンをクリックし、「Connection」タブと「Security」タブで次のように設定します。


 「Username」のAdafruit IOのユーザー名を、「Password」のAIO KEYを入力します。AIO KEYは、ダッシュボード右上の鍵アイコン(Your secret AIO KEY)をクリックすると確認できます。

3.フローのデプロイ
 「Deploy」をクリックします。

4.動作の確認
 ブラウザでAdafruit IOのWelcome Dashboardを開きます。



■センサー・データの監視と通知
 温度が30℃より大きくなったら、Gmailで通知するようにフローを作成します。

1,次のように、「switch」「template」「email」ノードを追加します。


2.プロパティの設定
 各ノードのプロパティを次のように設定します。

・switch


・template


・email

「To」に送信先のメールアドレスを、「Userid」にGoogleアカウントのユーザー名(通常はGmailのアドレスと同じ、「Password」にGoogleアカウントのパスワードを入力します。














注意点:Googleアカウントの設定
 Googleアカウントの「ログインとセキュリティ」の設定で、「安全性の低いアプリの許可」を「有効」にします。この設定が有効でないと、ログインエラーは発生します。




■デバイスの制御
 Arudinoのセットアップと制御回路、およびデバイスを制御するのためのAdafruit IOのフィード、ダッシュボード、ブロックの作成方法については、「Adafruit IO+Arduino+MQTTでIoT‐デバイスの制御」を参照してください。

1.フロー(flow)の作成
 次のように「mqtt in」「fuinction」「arduino out」ノードを接続し、フローを作成します。


2.プロパティの設定
 各ノードのプロパティを次のように設定します。

・mqtt in

 「Topic」には、トピック名を「<ユーザー名>/feeds/<フィード名>」の形式で指定します。今回は、「LED」フィードを使用するので、ユーザー名が「taro」なら、「taro/feeds/LED」となります。









 「Server」の設定は、「鉛筆」アイコンのボタンをクリックし、「Connection」タブと「Security」タブで次のように設定します。


・function

次のコードを入力します。

if(msg.payload === 'ON') {
msg.payload = 1;
} else {
msg.payload = 0;
}
return msg;












・arduino out


3.フローのデプロイ
 「Deploy」をクリックします。

4.動作の確認
 ダッシュボードのスイッチを操作し、LEDがオン/オフすることを確認ます。




0 件のコメント:

コメントを投稿