2016年1月8日金曜日

Raspberry Pi +M2XでIoT

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



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


















②M2Xの準備
 「Arduino+M2XでIoT」の②の手順でM2Xのアカウントを作成し、デバイス(Device)とストリーム(Stream)を登録します。

※補足
・登録済みのデバイスにストリームを追加するには、デバイスの管理画面の[Add Stream]をクリック、「Stream ID」「Display Name」を入力し、[Save]をクリックします。
・新しいデバイスとストリームを対話形式で登録するには、 「Setup your Device」にアクセスします。
・デバイスの管理画面からデバイスを追加するには、[Device]をクリックしてデバイスの一覧画面を表示し、[Create New]→[Device]を選択し、「Device Name」にデバイス名を入力し、[Create]をクリックします。その後、デバイスの管理画面が表示されるので、[Add Stream]をクリックし、ストリームを追加します。

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

④プログラムの作成と実行
1.次のJavaScriptコードを入力し、「bright_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 raspi = require('raspi-io');
var five = require('johnny-five');
var board = new five.Board({
io: new raspi()
});
board.on("ready", function() {
var virtual = new five.Board.Virtual(
new five.Expander("PCF8591")
);
var a = new five.Sensor({
// PCF8591 module YL-40
// A0:LDR(Light Dependent Resistor)
// A1:NC
// A2 Thermistor
// A3:Potentiometer
pin:"A0",
board:virtual,
freq: 10000
});
a.on("data", function() {
options.form.value = this.value;
console.log(this.value);
// データを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 bright_m2x.js hosted with ❤ by GitHub
 [PRIMARY API KEY][DEVICE ID][STREAM ID]には、デバイスの管理画面に表示される「PRIMARY API KEY「[DEVICE ID」「STREAM ID」を入力します。


2.ターミナルから「sudo node bright_m2x.js」と入力します。

0 件のコメント:

コメントを投稿