はやみずの「は」

小動物用ネットワーク体重計作り:下調べ(2) 通信モジュール

ネットワーク体重計を作る上で、無線通信は避けて通ることができない問題。だけど、なににするのかが悩ましい。

いまのところ、自宅サーバか温度センサ用のRaspberry Piを親機にして、なんとかして親機にデータを送りつけて、そこから先はLinux上のソフトウェアが開発しやすい環境でちゃちゃっと済ませる、という設計が簡便であろうと考えている。なので、体重計の組込み基板の中ではあまり複雑なことはできなくともよく、最低限センサ値取得とPCへの送信さえできればよい。

また、キッチンスケールを改造して作るので、できればケースの中に収まる程度の部品で実装したい。 ついでにキッチンスケールに付いている電池電源(手元にあるKD-187だと単4電池2本)で、半年くらいはしっかり駆動できる程度の消費電力が実現できればなおよい。

電力周りに関しては、電池駆動の電子工作はこれまでしたことがないので別途しらべることにする。ちょっと調べてみると、http://airvariable.asablo.jp/blog/2012/08/21/6548884 など乾電池2本から3.3Vや5Vをとりだす方法は出てくるので、さほど難しくはなさそう。

検討候補

ZigBee

ZigBeeは無線通信規格の一つで、電子工作によく使われるZigBeeを使った通信モジュールとしてXBeeがあまりにも有名。

XBee ZB / ワイヤアンテナ型 - スイッチサイエンス

XBeeは、ざっくり言ってしまうとシリアル通信の通信路を無線化したもの(?)。 XBeeだけでなく、TWE-Lite というモジュールのシリーズもある。XBeeとTWE-LiteはZigBeeを使っているものの、互換性はない(はず)。

超小型IEEE802.15.4/ZigBee無線モジュール TWE-Lite(トワイライト) - TOCOS-WIRELESS.COM

Linuxサーバは当然ZigBeeは直接喋れないので、USBスティック等でZigBee用のモジュールを取り付ける必要がある。その代わり、デバイスとはシリアル通信するようにプログラムを書けるので、とりあえず動くものを作るには便利そうである。

WiFi

Linuxサーバ側に機器を追加せずに通信するとなると、WiFiを使ってTCP/IPで通信するというのが王道だろう。 マイコンからWiFiにつなげてデータをやりとりするようなものは作ったことがなく、どのくらい面倒なものなのかよく知らない。SSIDとかパスワードの設定は、できれば簡単に変えられるとうれしい。

ArduinoWiFiシールドつなげると割と簡単にできるという話は聞いたことがあるが、プロトタイプはできても、本番環境としてキッチンスケールのケース内に物理的に収まらないものは、今回は却下する。

とりあえず見つけためぼしいパーツをメモしておく。マイコンWiFiというのは電子工作の書籍でも見かけた気がするので、後日書店にいって調べてみることにする。

GainSpan GS1011MIC

低消費電流 Wi-Fiモジュール

WiFi接続周りの機能に加えて、ARM7のデュアルコアCPUがモジュールにパッケージされていて、ADCやUART、I2CなどのI/Oポートも持っているので、やろうと思えば体重計機能は全部実装できそうではある。ただ、これらを使ったファームを開発するには、どうもそこそこいいお値段のする開発キットが別途必要な模様。リンク先ではmbedからUART経由で、単なる通信モジュールとして使っているので、そのようにするのが無難そう。 パスワード無しのアクセスポイントモードで起動すると、ブラウザからSSIDとパスワードを設定できるのは便利げ。

実売6000円くらい。値段的にもスペック的にも高級路線な印象。

XBee Wi-Fi

http://www.switch-science.com/catalog/1363/

4000円くらい。別途XBeeを設定するためのUSBアダプタも必要。 基本的に、UARTでXBeeに送ったデータを固定の宛先に送り続けるもののように見える。TCPで喋ることは可能なようなので、自宅サーバのIPに向けてセンサデータを吐くようにすれば使えそう。 汎用的なWiFiモジュールという感じではないが、機能が限定されている分、扱いやすいのかもしれない。

Microchip WiFly

RN-XV WiFly Module - Wire Antenna - WRL-10822 - SparkFun Electronics

PICを作ってるメーカの汎用WiFiモジュール。 組込みWebサーバによる設定ができたり、NTPクライアント機能を持っていたりと割と便利そう。 国内の代理店が見つからないのと、TELEC認証が無さそうなのが残念。

型番違いのRN-131というのは秋月に売ってる マイクロチップ Wi−Fi評価キット RN−131 Evaluation Platform: 無線、高周波関連商品 秋月電子通商 電子部品 ネット通販 こちらは技適OK。

CC3000 WiFi Breakout

https://strawberry-linux.com/catalog/items?code=18253 Arduinoのシールドが主な目的で、他の用途となると?という感じ。データシートをみてもいまいち掴みどころがないというか。

赤外線

体重計とデータを受け取るサーバの間に遮蔽物があると通信できなくなってしまうので、ちょっとつらいので今回は候補から外す。

Linux側で赤外線データを受け取るには、lircが使える。Raspberry Pi を使うと、GPIOに繋げた赤外線受光モジュールから簡単にデータを読み込むことができる。

超音波

干渉がすくない&PC側がマイク等でとれる音の周波数に、載せたいデータを変調して送ってやればよい。 最近だと、Chromecastのペアリングやら、スマートホンのO2Oソリューションに超音波通信が使われたりしている。 ただ、電子工作であまり使っているという話は聞かないし、変調とか、デコードとか自分で作るのはやや面倒そう。

方針

ZigBee系モジュールのほうが比較的安価で、まず無線通信をできるようにするという意味では手軽そうなので、ZigBeeを使って最初のプロトタイプ作りをすることにする。 その後、体重計の機能を一通り実装した後にWiFi化する。

ここまでのまとめ