XBee と BeagleBone Black でワイヤレス温度センシング (ハード編)

電子工作
スポンサーリンク

XBee と BeagleBone Black を使ってワイヤレスで温度を計測する方法を紹介します.

XBee

現時点(‘14.8.24)で,電子工作で無線を扱おうとした場合,手軽に利用できるのが XBee モジュールです.

XBee モジュールはアンテナを内蔵したモジュールで,3.3V 単一電源を供給するだけで動作し,マイコンとの間の通信は一般的なシリアルとなっています.

とはいえ,XBee は様々な機能を持っているため,使おうと思って調べてみると膨大な情報が出てきて最初は圧倒されてしまいます.


しかし,無線のメリットを活かせる乾電池駆動で使うことに限定した場合,次のような機能を持ったモジュールだと理解しておけば十分です.

  • 定期的に wake し,端子電圧の A/D 変換を実施
  • A/D 変換の結果を特定アドレスの XBee モジュールに無線で送信
  • 無線でデータを受信した場合,UART(シリアル)通信でホストに通知

つまり,A/D 変換の無線化ですね.

Xbee の基本機能

これ以外の使い方,例えばシリアル通信の無線化や,強引な I2C の無線化などの用途にも使えますが,その場合は消費電力が大幅に増加し,乾電池駆動で運用するのが非現実的になってしまいます.そういった用途であれば思い切って AC アダプタ駆動にして無線 LAN 使った方が簡単でしょう.

このページでは,A/D 変換の無線化の応用例の一つとして,ワイヤレス温度計の作り方について紹介します.作成するのはこんな感じのものです.

ワイヤレス温度計

ワイヤレスにすることで,室内だけでなく屋外の温度測定も可能となり,こんなグラフも簡単に作れてしまいます.

温度グラフ

以降では,ホストとして BeagleBone Black を使用します.それ以外のボード(Raspberry Pi 等)を使う場合は適宜読み替えてください.

スポンサーリンク

必要な部品

では早速,必要な部品を紹介します.(私のように)電子工作になれていない方でも失敗しないように,細かいものまで残らず掲載しています.

Strawberry Linux で入手するもの

モバイルパワー XBee 変換モジュール 「MB-X」
MB-X

XBee 用の電源とユニバーサル基板向けのピッチ変換基板が組み合わさったモジュールです.1~6〔V〕の電圧から XBee に必要な 3.3V を作ってくれますので,乾電池2本で XBee を駆動するのに最適です.

乾電池の電圧が低下してきてもしっかり昇圧してくれますので,外の機器では使えなくなった乾電池を活用することもできます.(エネループ等の充電池は,過放電になりますので,避けた方が無難です)


XBee ピッチ変換基板
XBee ピッチ変換基板

上のものから,電源機能を省いたものになります.XBee をユニバーサル基板に取り付けるのに必要になります.


秋月電子 で入手するもの

リンクをクリックして商品ページが表示されない場合,リロードしてみてください.

XBee USB インターフェースボードキット

XBee USB インターフェースボードキット

XBee をパソコンと接続するための基板です.XCTU を使って XBee のファームウェアを書き換えるのに使用します.いろんなメーカから出ていますが,秋月電子のものは安価で頻繁に使う RESET ボタンが押しやすいのでお勧めです.


片面ガラス・ユニバーサル基板 Cタイプ めっき仕上げ (72×47mm)
ユニバーサル基板 Cタイプ

センサ用の基板です.XBee を使うならこのサイズがお勧めです.


電池ボックス 単3×2本用
電池ボックス

乾電池を収納するボックスです.こちらのものはカバーとスイッチがついているので使いやすいです.


高精度IC温度センサ LM60BIZ
LM60BIZ

温度センサです.安価で測定温度範囲が広いのが特徴です.


千石電商 で入手するもの

1608(0603) チップ抵抗 1MΩ
チップ抵抗

XBee 変換モジュール「MB-X」の低電圧検出機能を使うためのものです.1MΩを基板に実装することで,電池ボックスの出力電圧が 1.8V になった段階で LBO 端子が H → L に変化します.

低電圧検出機能を使わない場合不要です.その場合,電池がなくなってきて MB-X の出力も落ちてくると,XBee の A/D 変換の値もおかしくなるので注意してください.


【QIコネクタ】2550小信号用コネクタセット (ケース付き)
QI コネクタセット

電池ボックスの配線を基板に接続するときにあると便利です.


ダイソーで入手するもの

タッパー
タッパー

ユニバーサル基板 Cタイプにピッタリサイズのタッパーです.


必要な道具

続いて必要な道具について紹介します.

Amazon で入手するもの

精密圧着ペンチ PA-09
精密圧着ペンチ

QI コネクタを圧着する工具です.QI コネクタを使わない場合は不要です.


これ以外に,ケースに穴を開けるための道具が必要になります.BeagleBone Black で作るロギング機能付き電力計 (ハード編)で紹介したものがあると良いです.

電子部品のはんだ付け

センサ側とホスト側に分けて記載します.

センサ側

ワイヤレス温度計の回路

回路自体は簡単ですので,接続するものについてポイントのみ紹介します.以下の 6 点を行えば OK です.
最後の 2 点は低電圧検出機能を使わない場合不要です.

  • MB-X 基板の「ON」,「R」,「T」の 3 つのジャンパをはんだ付け.
  • 温度センサに VOUT 端子および GND 端子を接続.
  • 温度センサの出力を DIO3 端子に接続.
  • 電池ボックスの出力を VBAT(+) 端子および GND(-)端子に接続.(QI コネクタ経由がオススメ)
  • 1MΩ のチップ抵抗をはんだ付け.
  • LBO 端子と DIO5 端子を接続.

関連する部分を以下に示します.

MB-X の配線

1M〔Ω〕の位置づけについて,少し補足しておきます.
MB-X の電源 IC である TPS61020 [キャッシュ] は LBI が 0.5〔V〕になると,LBO 端子を L にします.一方,MB-X の基板には pull down 側に 390k〔Ω〕が元々実装されています.従って,1M〔Ω〕を実装してやれば,下記の計算により入力電圧が 1.78〔V〕にになったところで LBO 端子が L となります.

     \begin{eqnarray*} X \times \frac{390}{1000 + 390} & = & 0.5 \\ X \times 390 & = & 0.5 \times 1390 = 695 \\ X & = & \frac{695}{390} = 1.78 \end{eqnarray*}

今回は乾電池2本を直列に接続して使用するので,乾電池1本当たりだとその半分の 0.89〔V〕が検出閾値となります.

回路を作成する上で1点だけ注意点があります.それは,XBee の向き.アンテナの感度を高めるため,下図で斜線で示された領域にはなにも来ないようにレイアウトするのがお勧めです.(冒頭に示した写真の回路は,これに気付くのが遅れたため従えていませんが…)

XBee アンテナ用の空きスペース

以上が完了したら,センサに外気が触れやすくなるようにタッパーに穴をあけて基板を納めておきます.

ホスト側

XBee に電源を接続し,XBee と BeagleBone Black を UART で接続するだけです.具体的には以下を行います.

  • XBee ピッチ変換基板の「VCC」に 3.3V ,「GND」に GND を接続.
  • XBee ピッチ変換基板の「DOUT」を BeagleBone Black の「P9 11」(UART4_RXD) に接続.
  • XBee ピッチ変換基板の「DIN」を BeagleBone Black の「P9 13」(UART4_TXD) に接続.

BeagleBone Black の関連する部分を以下に示します.

BeagleBone Black の端子配列

これでハードは完成です.ソフト編に続く.

コメント