2016年1月4日月曜日

Adafruit IO+Arduino+MQTTでIoT‐センサー・データの収集

 Adafruit IOは、IoTのクラウドサービスです(2016年1月現在、ベータ版として提供)。Adafruit IOを使って、Arduinoで計測したセンサー・データを収集する方法を説明します。


 Adafruit IOはMQTTをサポートしているので、デバイスとの通信には、Nodo.jsのモジュール「MQTT.js」を使用します。

①Arduinoのセットアップ
1.「ArduinoをJavaScriptで制御する」の手順でArduinoを開発環境をセットアップします。
2.次のように回路を配線します。
















②「MQTT.js」のインストール
1.コマンドプロンプトを起動し、作業用フォルダに移動します。
2.「npm install mqtt」と入力します。

③Adafruit IOの準備
1.Adafruit IOのアカウントを作成します。
2.アカウントを作成すると、「Welcome Dashboard」が表示されるので、右上の鍵アイコン(Your secret AIO KEY)をクリックし、AIO KEYを確認します。


 ダッシュボードは、カスタマイズすることも、新しく作成することもできますが、今回は、この「Welcome Dashboard」をそのまま使用します。

④プログラムの作成と実行
1.次のJavaScriptコードを入力し、「publisher.js」と名前を付けて作業用フォルダに保存します。

var five = require("johnny-five");
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://io.adafruit.com', {
port:1883,
username:'[USER NAME]',
password:'[YOUR AIO KEY]'
});
client.on('connect', function () {
five.Board().on("ready", function() {
var temperature = new five.Thermometer(
controller: "LM35",
pin: "A0",
freq: 10000
});
temperature.on("data", function() {
var temp = this.celsius.toFixed(2);
console.log(temp+ "°C");
// Topic Name(トピック名)は「<user name>/feeds/<feed name>」の形式で指定
client.publish('[Topic Name]',String(temp));
});
})
});
view raw publisher.js hosted with ❤ by GitHub
  [USER NAME]には、Adafruit IOのユーザ名を、[YOUR AIO KEY]には③-2で確認したAIO KEYを入力します。
  [Topic name]には、トピック名を「<ユーザー名>/feeds/<フィード名>」の形式で指定します。「Welcome Dashboard」の各ブロックは、「Welcome Feed」フィードに紐づけされているので、たとえば、ユーザー名が「taro」なら、トピック名は「taro/feeds/Welcome Feed」になります。
 Adafruit IOのFeed(フィード)は、いわゆるデータを管理するオブジェクトです。このFeedを使用して、データの送受信を行います。

2.コマンドプロンプトから「node publisher.js」と入力します。


0 件のコメント:

コメントを投稿