SSブログ

XBee 100円Wall Routerに温度計測機能を追加する [XBee]

定番中の定番アプリケーションですね。対象はシリーズ1です。
※考えてみたらシリーズ1製品なので、ファームをDigi Meshにでも切り替えないとRouter機能は無いですね(笑)。ま、本当にRouterにする時はDigi Meshにするか、シリーズ2製品を使用してください。

x-ctu_02.pngXBee単体でのアナログ値の取り込みは、実は簡単です。
まずはX-CTUでWall Routerに搭載するXBeeの設定を行っておきます。

I/O Settingを開き、該当するポートのコンフィギュレーションを行います。今回はDIO0に温度センサーICの出力を接続したので、ここをADCとしておきます。

次にIRの項目です。これはサンプリング周期を設定するものです。64と書かれていますが16進でつまり100、単位はmsなので100ms周期と言う事になります。

ITの項目は送信前に何回サンプリングを行うかと言う事で、言い換えればここに設定された数分サンプリングが行われると、アナログ値をサンプリングした値を送信してきます。今回は16進でAなので10回分。
つまり100ms×10の1秒周期でデータが送られてきます。平均化処理をする時にここに適当な回数を設定すると便利ですね。


IMG_2214.JPG温度センサーICと言えば定番はLM35DZですが、あれは動作電圧は4Vからなのでここでは使用できません。代わりにLM61CIZを使用しました。これは最低動作電圧が2.7Vからなので余裕で動かす事が出来ます。

これを100Ωの抵抗と0.1μFのコンデンサで構成した一次フィルターを経由してDIO0に接続します。
比較する為に温度計もケース内に配置しています。
※写真はセリアの100円充電器に収めた様子。


x-ctu_01.png別途用意したデータを受け取る為のXBeeの内容をX-CTUのターミナルで確認しています。
受信したデータはAPIフレーム化されており、バイナリなので直接は読む事ができません。「Show Hex」ボタンを押しておきます。

APIフレームなのでヘッダーだの、フレームタイプだの、データサイズだの、チェックサムだの色々付いて来ますが、着目したいのは1行目の最後のデータからスタートするデータ領域です。
01 1Dまたは01 1Cのデータが10個続いている事が判ります。
XBeeのシリーズ1に搭載されているマイコンのADCの分解能は10bitなので最大は1023、電源電圧は3.3Vです。ここから0x011Cは約915mVである事が判ります。
LM61CIZの温度係数は10mV/℃となっています。0度の時は600mVのオフセットが付いています。
電圧出力は以下の式で表されます。
Vo=温度係数×摂氏+600mV
先の915mVから摂氏を求めると31.5℃ですか。若干高めですね。もっともLM61CIZの確度が25度の時に±3℃もあるので仕様範囲内です(笑)。


xbee_adapter_01.png基板自体の回路図はこんな感じです。わざわざお見せする程の物ではないですね。

本当は温度センサーICはケースの外に出さないと駄目です。ケース内部では他の回路の温度をもろにくらってしまい、何を測っているのか訳がわかりません。まあそのうち外に引き出しておきましょう。



ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発

ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発

  • 作者: 濱原 和明
  • 出版社/メーカー: オーム社
  • 発売日: 2005/04/25
  • メディア: 単行本



nice!(0)  コメント(2)  トラックバック(0) 

nice! 0

コメント 2

asupiyoPaPa

APIモードのパケットの解説ありがとうございます。
サクッと作ってしまわれるのには感心します。

ようやくXBeeのマニュアルをプリントアウトしました。 シリーズ1が扱いやすいので、こちらから見ています。API Identifireが0x83になっていますが、マニュアルにはないので、0x81の解説を参考にデータを見てみると、0x0002がソースアドレスで、0x0Aがサンプル数、0x0200がアナログの0番を使っているというビット表示、その後、アナログのデータが続いているわけですね。10サンプル分。最後にチェックサム。
XBeeのモジュールを注文しているので、届いたら試してみます。

セリアで充電器を買ってきたのですが、コンデンサをあんなところに挿んでいるのですね。すごいなあー。
by asupiyoPaPa (2010-10-17 23:33) 

asupiyoPaPa

0x83は、16bitアドレスのI/Oデータフレームですね。OEM RF Modules マニュアルの13ページにありました。
by asupiyoPaPa (2010-10-18 00:19) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

XBee 100円Wall Router..XBee 100円Wall Router.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。