carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

探していたワイヤレス体重計!

今年一発目のブログ書き込みは、ワイヤレス体重計の解析から。(明日から仕事です・・・・)

昔から、体重計が欲しかったんです。
普通の体重計はあるので不要ですが、重量を外部出力できる体重計が欲しかった。
RS-232Cで出力できる、業務用体重計や、最近の健康ブームにのったBluetoothタイプ等がありますが、割と高価だったりします。

そこで!

赤外線通信で体重を外部出力するであろう、体重計を購入し、その出力を解析してInputとして得ようというマイプロジェクトを勝手に立ち上げました。


イメージ 1

これは、トレンドたまごで製品を紹介していて、値段も手ごろ(2,500円程度)だったので速攻で注文し、年明けの2013/1/2に届きました。

イメージ 2

この商品のうりは、液晶部が取り外し可能なので、本体に乗ったまま、手元で値を確認できるので覗き見防止や、近眼、老眼でも値を良い感じに確認できるというものです。(コンセプトがいいですね。)

製品の紹介はこの程度にしておいて、早速仕組みを理解してみましょう。

イメージ 3

本体が届くまで、何で通信するのかわかりませんでしたが、結論としては赤外線でした。(本体は、ワイヤレス体重計とあるだけで、赤外線とは書かれてない。)
体重計本体に、赤外線送信部(Lの上にホンノリ赤く光るLED)があり、数値の表示装置に赤外線の受光素子が入っています。(下の写真)本体も、表示装置も3Vのボタン電池で動作します。

イメージ 4

なので、双方向ではなく、テレビと同じ一報通行の方式です。
本体から、送られてきた重量の情報を、モニタ側は受信して表示するだけ。なので表示装置側にはPUSHボタン等はありません。

表示装置側を開封するとこんな感じでした。かなりシンプルですね。受光素子の型番は分からず・・・

イメージ 5

イメージ 6
イメージ 7
イメージ 8

そこで、バイパスしてオシロで計測できるようにして、あんなことこんなことしながら、秋月の赤外線38KHzを受信できる受光素子(OSRB38C9AA)でも受信できるようにして両方の波形を測定してみました。

結果としては、38KHzで大当たりです。同じ波形を受信することができています。
下記は、受光素子で受信した値です。1CHは、表示装置側、2CHは、OSRB38C9AAの出力です。(同じ値です。)

赤の↑がbit1(約1ms)
緑の↑がbit0(約1.5ms)
※今回の場合、上記のように解釈すると分かりやすいことが実験で分かりました。

イメージ 9

これをがじぇるね(arudino互換機)を使って数値化した通知列が以下です。(解析データの一部)

1111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111111111101111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111111111101111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111111111101111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111111111101111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111111111101111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111111111101111111100000000111111111111111111111110111111110000000011111111111111111111111011111111000000001111111111111111

101010111000000000000001010011010111101
101010111000000000000000110010101111011
101010111000000000000000110010101111011
101010111000000000000000110010101111011
101010111000000000000000110010101111011
101010111000000000000000110010101111011
101010111000000000000000110010101111011
101010111000000000000000110010111111011
101010111000000000000000110101100000001
101010111000000000000000110101100000001
101010111000000000000000110101100000001
101010111000000000000000110101100000001
101010111000000000000000110101100000001
101010111000000000000000110101100000001



省略

これをどう解釈するか?・・・・・(いや~悩んだ。)
まず、最初に、0xFF, 0x00, 0xFF・・・と連続しているのは後で説明するので飛ばします。

ここで、問題は、39bitのデータです。
メーカーの情報がある訳ないので、自分で勝手に解釈の方法です。
39bitを以下に分割します。
A.8bit + B.8bit + C.16bit + D.7bit

A.メーカーコード?
B.制御コード?
C.数値
D.チェックサム?(パリティ?)

で、この数値の部分に体重の情報が入っています。
例えばこの値が、0x00FFの場合、10進数で255になりますので、これは25.5kgを意味します。
暗号化されている訳でもなく、生の値が入っています。

この情報を利用すれば、あんなことやこんなことができそうですね。(笑)

最後に、以下は体重計に乗ったときに本体から送信される赤外線の情報ブロックです。

イメージ 10

最初に2秒間のバーストモード?があり、この信号を受信することで、表示装置の電源が投入?されて表示開始するものと思われます。実際に、表示装置側のセンサー電源は、一定周期で間欠動作していました。省電力のための工夫ですね。
先の1111111100000000111111・・・・は、表示装置側に、「これから情報を送りたいから電源を投入してくれ~」という情報だと思われます。(あまり意味のある情報ではない。)

その2秒後に出力される体重の情報は、一発だけでなく、連続して約128ms程度の周期で、そのときの瞬時値が送られています。

これを使った応用作品ができたら、紹介させてもらいます。

ワイヤレス体重計「SALUTE」は値段も手ごろですし、電子工作と相性が良いかもしれません。本体側は未開封ですが、圧電素子が気になりますね。(4隅に搭載されています。)

それでは、今年もよろしくおねがいします。