mbed HRM1017 (4)温度を計測(nRF Toolbox編)
「mbed HRM1017をはじめよう」の中で「BLE_Health_Thermometer_IRC」というサンプルプログラムがあります。このサンプルはTMP102というI2Cの温度計を使ったサンプルなんですが、(私が持ってないということで)ADT7410というI2Cの温度計でも動くような、mbed HRM1017で使ってみたいと思います。
ADT7410について
ADT7410は秋月で購入できます。
主な仕様および外観は以下です。
プログラムをインポートする
今回使用するプログラムは、TMP102用のプログラム(BLE_Health_Thermometer_IRC)をアレンジして作ったADT7410用のプログラムです。こちらのページ(BLE_ADT7410_TMP102_Sample) から「Import this program」で取り込んで下さい。
- ※プラットフォームは(mbed HRM1017がまだ未登録の場合は)、Nordic nRF51822を選択して下さい。
- ※ADT7410のライブラリーは、ライブラリーの検索で見つけたものを使っています。
このようなファイルになります。
配線する
mbed HRM1017の
- P0_20 = SCL
- P0_22 = SDA
と、ADT7410のSCLとSDAを接続します。秋月のADT741のページにあるマニュアルを参考にして下さい。
ADT7410のコード
ADT7410クラスの
コンストラクタは
- ADT7410(PinName sda, PinName scl, char addr, int hz)
となってます。
アドレスは、0x48x2=0x90で、BUSスピードは400kHzとして、それから、ADT7410とTMP102は、使い分けられるように以下のようにしました。
温度取得は
- float getTemp()
で、温度が得られます。updateServiceValuesが周期的に呼ばれるのでそこで温度を取得します。
nRF Toolboxで動作テスト
Nordic社のテスト用アプリ「nRF Toolbox」で動作チェックしてみましょう。以下からダウンロードできます。
動作チェック
- nRF Toolboxを起動
- 「HTM」をタップ
- 「Connect」をタップ
- 「nRF5x」をタップ
さて、上手く取得できたでしょうか?今回は、以上です。次回は、既存のアプリを使うのではなく、konashi.jsで自作したアプリで温度表示してみたいと思います。
----------------
にほんブログ
| 固定リンク
「無線(mbed HRM1017)」カテゴリの記事
- mbed HRM1017 (7)techBASICでナイトライダー(2014.07.28)
- mbed HRM1017 (5)温度を計測(konashi.js編)(2014.07.26)
- mbed HRM1017 (4)温度を計測(nRF Toolbox編)(2014.07.22)
- mbed HRM1017 (3)konashi.jsでナイトライダー(2014.07.29)
この記事へのコメントは終了しました。
コメント
最近電子工作を始めたばかりで、大変参考になりました!ありがとうございます
1点基本的な質問で申し訳無いのですが、I2Cのバスアドレスは秋月のデータシートでは0x48としているのを記事の上では「0x48x2=0x90」としているのは何らかの決まり事なのでしょうか?
お手数ですが、参考になるページや考え方など教えて頂けるとありがたいです。
投稿: 初心者(`・ω・´) | 2014年11月11日 (火) 04時17分
コメントありがとうございます。
2倍することは左に1ビットシフトすることです。上位7ビットがアドレスで下位1ビットがRead/Writeのフラグ だったかとおもいます。どちらがReadでWriteか忘れましたが0x90と0x91となります。間違った認識をしてるかもしれませんので完全に鵜呑みにしないで下さいね
投稿: micono | 2014年11月11日 (火) 08時40分
迅速にご回答いただき有り難うございます(´;ω;`)
なるほど!!自分だけで考えていたら、その考えに辿り着くまでかなり時間がかかっていました。。教えて頂いた情報から調べてみると
http://ekousaku.web.fc2.com/doc/I2C.pdfのp13に書かれている内容から最下ビットは0:Write 1:Readに対応しているようですね。
とても勉強になりました。ブログも興味深く読ませて頂いております。今後ともよろしくお願いします((´^ω^))
投稿: 初心者(`・ω・´) | 2014年11月11日 (火) 21時30分