SNShield library (0.1)

がじぇるね岡宮です。

新しいセンサーネットワークシールドのライブラリを作ってみました。

WebコンパイラでKURUMIのプロジェクトを作り、rootで右クリック→ZIPファイルインポートで使用できます。

まずは、センサーの値を取るだけのサンプルです。

#include <Arduino.h>
#include <snshield.h>

SNShield kurumi;

void setup() {
kurumi.begin();
Serial.begin(9600);
}

void loop() {
char ttt[100];
kurumi.getAll();
sprintf(ttt,"Temp: %.2f Lux: %.2f X: %.2f Y: %.2f Z: %.2f",kurumi.temp,kurumi.lux,kurumi.accx,kurumi.accy,kurumi.accz);
Serial.println(ttt);
delay(200);
}

Anonymous
  • いいですねぇ。chobichanさんの資料通りにやったらXivelyアクセスできました。で、丸一日ハマったことがありまして、記載しておきたいと思います。新しいXCTU(V6.x)だと、ASC入力モードで改行が0Dしか付加されず、0Aを足したらうまくいきました。また、GETでGoogle searchなんかも試したところV5.xxだとワラワラ結果が表示されるのですが、V6.xxだとハングするという現象にあいました。結論として、今度は初期設定以外はKURUMIに助けてもらおうと思っています。一応この課題はdigiには連絡しましたが、やっぱりβ版は色々ありそうですね。

  • 新しいSNシールドと新しいSNシールドライブラリであっさりとXivelyへのアップロードできました。

    次回、夜の大人の電子工作教室は是非xbee wifiとSNシールドでやりましょう(笑)。

  • プロトタイプ版SNShield( Kurumi Eyesの呼称は廃止。Arduino Pro Miniでも一応使えるため)用のライブラリで作成したプログラムに対して、今回のライブラリを使う場合、以下を変更してください。

    ●インスタンスの変更

     KurumiEyes インスタンス名 → SNShield インスタンス名

    ●D6のアサインをXBee ResetからSLEEP RQに変更したことによる変更

    SNShield.cppの下記コメントをはずしてください。

    //    pinMode(XBEE_SLEEPRQ, OUTPUT);

    //    digitalWrite(XBEE_SLEEPRQ, HIGH);

    ●加速度センサー読み込みメソッドの変更

     前回ライブラリで、x,y,z軸の加速度をよむメソッド関数は下記でしたが、

     kurumi.getGx

     kurumi.getGy

     kurumi.getGz

     以下のように変更し、値もreturnされるようにしました。

     kurumi.getAccx

     kurumi.getAccy

     kurumi.getAccz

  • 行き違いました。ちょっと出先のため、あとで書きたいと思います。

  • ファイルやフォルダの整理、ライセンス文の追記は行いましたが、ソース自体はそれほど変えていません。XBeeのライブラリは無変更で加速度センサーの部分は抜き出しているだけです。

  • ああん、具体的に対策を提示してもらえると助かります。いまはwebコンパイラを使用しておらず、e2studio上でライブラリは共通化して使っているので。

    xbee.cppもだぶっちゃうんですよね(笑)。

  • XBeeのリセット解除の処理を削除と加速度センサの読み込み関数名を若干変えています。前者の影響でプロトタイプ版シールドではコメントアウトされているSLEEP_RQの処理を復帰する必要があります。

  • 初期バージョン用、前回のKurumiEyesとはソースレベルで随分違うみたいですが、上位互換?置き換えは可能なのですか?