« RFduino 実験 (2) Arduino IDEの設定 | トップページ | RFduino 実験 (4) LED Buttonサンプル »

RFduino 実験 (3) 温度を計るサンプル

Itunesscreensnapz001

RFduino BLEのサンプルをテストしてみました。

RFduinoのチップには温度センサーが付いていて、摂氏または華氏で、その温度を取得できます。

●温度を取得する

float temp = RFduino_temperature(CELSIUS);
float temp = RFduino_temperature(FAHRENHEIT);

この温度をBLEで送信するというサンプルプログラムが用意されていますので、このプログラムを使って少し勉強してみたいと思います。

  1. Arduino IDEの「スケッチの例の「RFduinoBLE>Temperature」を開き、RFduinoに書き込む。
  2. iOSアプリ:「RFduino Temperature」をインストールする。もしくは、ダウンロードしたRFduinoの中に入ってるiPhone Appsの中の「rfduinoTemperature」をビルドして使う。
  3. RFduino Temperature」iOSアプリを起動すると、電波状況とパケットの通信状況が表示されます。この部分をタップすると
    Itunesscreensnapz002
  4. 温度が表示されます。
    Img_4345

●Arduinoスケッチ

RFduinoのリファレンスファイルはRFduinoのドキュメントのページの「RFduino BLE Programming Reference」です。詳しくはそちらを参考にして下さい。

【setup】:アドバタイズメントをtempにして、BLE通信開始

  • アドバタイズメント
    RFduinoBLE.advertisementData = "temp";
  • 通信開始
    RFduinoBLE.begin();

【loop】:1秒待って、摂氏を取得して、BLEで温度を送信

  • Ultra-low-power Delay
    RFduino_ULPDelay( SECONDS(1) );
  • 温度取得
    float temp = RFduino_temperature(CELSIUS);
  • データを送信
    RFduinoBLE.sendFloat(temp);

●iOSプログラム

  • RFduino.mから、service_uuidが2220で、receive_uuidが2221となってます。
  • ついでに、send_uuidが2222で、disconnect_uuidが2223ですね。つまり、キャラクタリスティックは受送信と切断の3種類だけなんですね。
  • RFduinoから送信されたデータはreceive_uuidで受け取ることになりますね。
    - (void)peripheral:(CBPeripheral *)aPeripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
    で受け取って、セレクター名didReceiveで処理することなるようです。
  • lightBlueで受信してみました。
    floatで0x0000F441が送信されてました。変換すると30.5度であることがわかりますね。
    Img_4368x

ということで、少しずつ、中身が分かってきました

RFduino資料館

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ

|

« RFduino 実験 (2) Arduino IDEの設定 | トップページ | RFduino 実験 (4) LED Buttonサンプル »

無線(RFduino)」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: RFduino 実験 (3) 温度を計るサンプル:

« RFduino 実験 (2) Arduino IDEの設定 | トップページ | RFduino 実験 (4) LED Buttonサンプル »