2015年12月22日火曜日

Arduino+ubidotsでセンサー・データをリアルタイムで可視(グラフ)化する

 「ubidots」は、IoTのクラウドサービスです。ubidotsを使うと、センサー・データをリアルタイムで可視(グラフ)化したり、センサー・データを監視することができます。たとえば、温度データをリアルタイムに取得、監視して、30℃を超えたら、メールやSMSなどで通知することができます。



①ubidotsの準備
1.ubidotsに登録し、ログインします。
2.「Source」をクリックし、「Add Data Sources」をクリックします。 
 
3.Data Sources(データソース)の名前を変更します(([Enter]キーで確定))。 
 
4.作成したData Sourcesをクリックします。
5.「Add Variable」をクリックします。
6.データの種類(Type)を選択(ここでは、「Default」を選択)します。
 
7.Variableの名前を入力します([Enter]キーで確定)。
 
8.作成されたVariableのパネルの右上の(i)アイコンをクリックし、Variable IDを確認します。
 
9.右上のユーザー名をクリックし、「My Profile」を選択します。
10.「API Key」をクリックし、API Keyを確認します。

②Arduinoのセットアップと回路の配線 
1. 「ArduinoをJavaScriptで制御する」の手順でセットアップします。 
2.温度センサー(LM35)を次のように接続します。
















③ubidotsライブラリ(Node.jsのモジュール)のインストール 
1.コマンドププロンプトを起動し、作業用フォルダに移動します。 
2.「npm install ubidots」と入力します。 

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

var five = require("johnny-five");
five.Board().on("ready", function() {
var temperature = new five.Thermometer({
controller: "LM35",
pin: "A0",
freq: 60000 // サンプリング間隔(ms)
});
var ubidots = require('ubidots');
var client = ubidots.createClient('<Your API Key>');
client.auth(function () {
this.getDatasources(function (err, data) {
console.log(data.results);
});
// データ保存先のVariableを取得
var v = this.getVariable('<Variable ID>');
temperature.on("data", function() {
v.saveValue(this.celsius); // Variableにデータを保存
console.log(this.celsius + "°C", this.fahrenheit + "°F");
});
});
});
view raw Temperature.js hosted with ❤ by GitHub
⑤動作の確認 
1.コマンドププロンプトを起動し、作業用フォルダに移動します。 
2.「node Temperature.js」と入力します。 
3.ubidotsの管理画面で「Temperature」Variableを開きます。

0 件のコメント:

コメントを投稿