マサルの備忘録

ハイオク仕様のトルクフルな備忘録

NIFTY Cloudのモバイルバックエンドにデータをアップロードしてみる話(JavaScript編)

スポンサーリンク

今度はJSで書きます。

f:id:domomasarudesu:20160308233820j:plain

前回はAndroidからmBaaSに絡む話でした

masaru.hateblo.jp

Arduinoやら単純なマイコン
あまりインターネット接続性がない。

Etherモジュールをつけたり、
Wi-Fiシールドを購入すると結構な額になる。

前回は、Android端末をいわゆる
インターネットへのゲートウェイとして、
センサーのデータをmBaaSへ
アップすることを想定して実装しました。

Raspberry Piならインターネット接続が容易に可能

とはいえ、Arduinoにも電力を供給して、
Android端末にも電力を供給して、
AndroidArduinoはBTやら、
OTGで繋いだりするとなると、
結構めんどくさい。

というわけで、現実解として存在するのが
Raspberry Pi。
今回は、RPi上でJSを動かして、
GPIOにつながったセンサーデータを
そのままmBaaSにアップロードするような
ケースを想定して実装してみる。

サンプルコードはオフィシャルを見て下さい(笑)

ドキュメント : 開発者向けドキュメント | ニフティクラウド mobile backend

この辺を見れば、きっと幸せになれます。
JS向けのSDKGitHubに公開されてます。

github.com

$ npm install ncmb -S

npmコマンドでインストール完了。
早すぎます。

初期化もAndroid同様、非常にシンプル。

var NCMB = require("ncmb");
var ncmb = new NCMB(appKey, clientKey);

あまりスクリプト言語に慣れてないので、
ちょっと気持ち悪いですが、シンプルなので
非常にわかりやすいです。

JSは正直良くわからないので、
合ってるかわかりませんが、

とりあえず現在時刻と乱数を
mBaaSにアップするコードを書いてみました。

(function () {
    var appKey = "hogehoge";
    var clientKey = "fugafuga";

    var NCMB = require("ncmb");
    var ncmb = new NCMB(appKey, clientKey);
    
    var JsData = ncmb.DataStore("jsdata");
    var jsData = new JsData();
    jsData.set("date", new Date().getTime())
        .set("value", Math.floor(Math.random() * 11))
        .save()
        .then(function (jsData) {
            console.log("success");
        })
        .catch(function (error) {
            console.log(error);
        });
})();

短い。
Androidもかなり短めのコードで完結できましたが、
JSもUI部分がないのでかなりシンプルなコードになりました。

JSでコードを書いた理由

RPiであれば、JSでなくても何でも良いのですが、
NiftyがJSでSDKを公開してたのと、
JSであればJohnny-Fiveを使うことで、
GPIOの制御もできるため、
センサーデータをmBaaSにアップする
ユースケースで、その力を発揮します。

github.com

誰だこいつ。
なんでもできちゃうRPi。
もう、RPiでいいよ。
早くPi Zeroが安定供給されると良いなぁ。