2016年1月7日木曜日

Arduino+M2XでIoT

 AT&T M2Xを使用して、Arduinoで計測したセンサ・データを収集する方法を説明します。



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

















②M2Xの準備
1.M2Xのアカウントを作成します。アカウントを作成すると、デバイスを設定画面が表示されます。
2.「Virtual Device」を選択します。


 「Device」を選択しても、構いません。 「Device」を選択した場合は、「4」の手順でデバイスの種類を選択する項目が表示されます。

3.デバイス名(M2Xでデバイスを識別するための名前)を入力し、[Save]をクリックします。


4.「Stream ID」にStreamのIDを、「Display Name」にStreamの表示名を入力し、[Save]をクリックします。

 ※Streamとは、データを保存したり管理したりするためのオブジェクトです。

5.ページ下部の[Go to Device]をクリックします。


6.作成したデバイスの管理画面が表示されるので、「DEVICE ID」「PRIMARY API KEY」を確認します。


③「request」モジュールのインストール
 M2XのRESTful APIを使用するため、Node.jsの「「request」モジュールをインストールします。
1.コマンドプロンプトを起動し、作業用フォルダに移動します。
2.「npm install request」と入力します。

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

var request = require('request');
var key = '[PRIMARY API KEY]';
var deviceId = '[DEVICE ID]';
var streamId = '[STREAM ID]'
var url = 'http://api-m2x.att.com/v2/devices/' + deviceId + '/streams/' + streamId +'/value';
var options = {
uri: url,
form: {},
json: true,
headers: {'X-M2X-KEY': key}
};
var five = require("johnny-five");
five.Board().on("ready", function() {
var temperature = new five.Thermometer({
controller: "LM35",
pin: "A0",
freq: 10000 // サンプリング間隔(ms)
});
temperature.on("data", function() {
options.form.value = this.celsius;
console.log(this.celsius + "°C");
// データをPUTメソッドで送信
request.put(options, function(error, response, body){
if (!error && response.statusCode == 202) {
console.log(body.status);
} else {
console.log('error: '+ response.statusCode);
}
});
});
});
view raw temp_m2x.js hosted with ❤ by GitHub
[PRIMARY API KEY][DEVICE ID][STREAM ID]には、②-6の画面で確認した「PRIMARY API KEY「[DEVICE ID」「STREAM ID」を入力します。

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

0 件のコメント:

コメントを投稿