RFduino 実験 (3) 温度を計るサンプル
RFduino BLEのサンプルをテストしてみました。
RFduinoのチップには温度センサーが付いていて、摂氏または華氏で、その温度を取得できます。
●温度を取得する
float temp = RFduino_temperature(CELSIUS);
float temp = RFduino_temperature(FAHRENHEIT);
この温度をBLEで送信するというサンプルプログラムが用意されていますので、このプログラムを使って少し勉強してみたいと思います。
- Arduino IDEの「スケッチの例の「RFduinoBLE>Temperature」を開き、RFduinoに書き込む。
- iOSアプリ:「RFduino Temperature」をインストールする。もしくは、ダウンロードしたRFduinoの中に入ってるiPhone Appsの中の「rfduinoTemperature」をビルドして使う。
- 「RFduino Temperature」iOSアプリを起動すると、電波状況とパケットの通信状況が表示されます。この部分をタップすると
- 温度が表示されます。
●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度であることがわかりますね。
ということで、少しずつ、中身が分かってきました
----------------
にほんブログ
| 固定リンク
「無線(RFduino)」カテゴリの記事
- SBBLEController 1.1.0 公開(2014.06.21)
- RFduino 実験 (6) techBASICで温度計(2014.01.13)
- RFduino 実験 (5) techBASICで動かしてみる(2014.01.11)
- RFduino 実験 (4) LED Buttonサンプル(2014.01.10)
- RFduino 実験 (3) 温度を計るサンプル(2014.01.08)
この記事へのコメントは終了しました。
コメント