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
  • コンパイルエラー表示しなくなりました。SNShieldのシリアルモニターできません。

  • 大変すみません。0.4.0から0.4.1で削除してしまったようです。

    恐れ入りますが、以下からzipをダウンロードいただき、メニュー「スケッチ」→「ライブラリを使用」→「ライブラリをインストール」から適用いただいて、試していただいても宜しいでしょうか。

    japan.renesasrulz.com/.../209.aspx

  • SNShield使いたいです。コンパイルエラーになりました。

    IDE GR0.4.1コンパイルエラー表示

    ReadSensors.ino:2:22: fatal error: snshield.h: No such file or directory

    compilation terminated.

     This report would have more information with

     "Show verbose output during compilation"

     enabled in File > Preferences.

  • 昨日やっていて気付いたんだけれど、XBee wifiの熱をくらって温度出力が5度位大盛りにでてきますね。

    向きを工夫するとか、xbeeは省電力で動かすとか。

  • スケッチの例から行ってみてください。すみませんがまだ販売されてないため、あまり充実してません。

  • SN Shield を 使いたいのですが、IDE for GR 0.4.0 でビルドしたいんですが、どのようにやればよろしいでしょうか?

    スケッチ → ライブラリ使用 → kurumi_snShield とかやっても #include が出ません。 Wire とかは出ます。

  • たぶんxivelyに登録するだけで結構時間掛かっちゃうと思うし、アップロードの方はお手軽にスカッとアップ!で行きましょう。

    GW前ですね。休み中はくるみちゃん+xbee+SNシールド三昧で!

    今回のSNシールドにはコミッショニングボタンを付けてもらったので、APSが使えますよ。

  • feedとkeyは、、えぇ、私のアカウントにアップし放題です。確かにWiFi板についてはトランスペアレントの方が直感的ですし、複数のIPにアクセスするようなことはあまりないため、あまり恩恵がないんですよね。夜活ではトランスペアレントでいきたいと思います。GW前に一回やりたいですね。

  • > ちょっとXivelyライブラリを使ったArduino WiFiシールドドライバのポーティングが難しそうなた> め、まずはXBee Arduinoライブラリを工夫してアップする方法を考えたいと思います。

    思うんだけれど、ここでxbeeのapiモードを使う理由って、DNSによる名前解決以外はあまり強い理由付けは無いと思うんだよね。

    でもDNSによる名前解決はAPIコマンドを駆使して自力で解決する必要がある。まあ誰かがライブラリ化するのかもしれないけれど。

    夜のお楽しみ電子工作会ではトランスペアレントモードでやってもらった方がいいんじゃない?。

  • feed idとapi keyが丸出しなので、みんなで岡宮さんのチャネルにアップし放題ですね(笑)。

    httpのレスポンスですが、まずxbeeを起動後モデムステータスを確認しています?

    xbeeが起動→参加可能なネットワークを探す→ネットワークに参加

    と言う手順を取るので、このネットワークに参加が確認されるまで外部とのやり取りはできません。

    モデムステータスで2が帰るか、AIコマンドで0が返るまで待つ必要がありますヨ。

  • chobichanさん、まずはごくごく単純に下記ソースで、Xivelyにアップできることを確認しました。お騒がせしました。これはトランスペアレントモードであらかじめIPとポートを指定してますので非常に簡単でした。

    ちょっとXivelyライブラリを使ったArduino WiFiシールドドライバのポーティングが難しそうなため、まずはXBee Arduinoライブラリを工夫してアップする方法を考えたいと思います。

    #include

    #include

    #include

    SNShield kurumi;

    String str;

    void setup() {

       kurumi.begin();

       Serial.begin(9600);

       Serial2.begin(115200);

       str="PUT /v2/feeds/2128669808.json HTTP/1.1\r\n";

       str += "Host: api.xively.com\r\n";

       str += "User-Agent: GR-KURUMI/1.0\r\n";

       str += "Connection: close\r\n";

       str += "X-ApiKey: YvYvhAfLrGnigaqLGdx0DvisFTBVcVCqpm5I1g44KyBj0Y09\r\n";

       str += "User-Agent: GR-KURUMI-XBee-wifi/1.0\r\n";

       str += "Content-Length: 90\r\n";

       str += "\r\n";

       str += "{\r\n";

       str += "\"version\":\"1.0.0\",\r\n";

       str += "\"datastreams\" : [\r\n";

       str += " {\"id\":\"eye_lux\",\"current_value\":\"110\"}\r\n";

       str += " ]\r\n";

       str += "}\r\n";

       str += "\r\n";

       Serial2.print(str);

    }

    void loop() {

       while(Serial2.available()){

           Serial.print((char)Serial2.read());

       }

       delay(500);

    }

  • chobichanさん、お願いがあるのですが、XBee wifiを使ってXivelyにあげるサンプルをいただくことはできないでしょうか?ここのところずっとArduino WiFiシールド用のドライバ部分をポーティングして、XBee ArduinoライブラリとXivelyライブラリによるアップロードができるように試していたのですが、どうしてもHTTPのレスポンスが返ってこず辟易しておりまして、、

  • X-CTUのバージョン6だとそんなこと有るんですか。私の場合まずテキストファイル上でHTTP文を書いて貼り付けで上手く行ったのですが。でもX-CTUはバージョン5も用意して置く事を私は薦めています。だってバージョン6だとシリアルの制御線を操作できないんですよね。なんであの機能止めたのかなぁ?