| tags:raspberry pi logging categories:server

Xiaomi 気温湿度計

Xiaomi 気温湿度計

手元に、香港へ寄ったついでに買った、シャオミの気温湿度計があります。 携帯と連動で使えると思っていたのだけれども、ログを取るためにはホームゲートウェイなるものが別途必要。

アンドロイドの端末から呼び出すことはできるのだけれども、表示があるので、別にそこまで、繋げる必要が無いので、デジタル気温・湿度計として使ってます。(今の北タイはベストシーズンです。)

しかし、最近、ラズベリーパイの有効利用を考えている一環で、ちょっと気になって データーが抜き出せないか調べてみたところ、あるでは無いですか。。。

https://zsiti.eu/xiaomi-mijia-hygrothermo-v2-sensor-data-on-raspberry-pi/

ということで、試してみました。

ソフトのアップデートや、ファームウェアの更新やらで、うまくいかないことが多かったりするのですが、ありがたいことにページに載っていた方法ですっきり行きました。


Install Software

git, python3, python3-pip libglib2.0-dev, bluepy(pip) が必要になります。

pi@pi:~ $ sudo apt-get install git python3 python3-pip libglib2.0-dev  -y
pi@pi:~ $ sudo pip3 install bluepy
Collecting bluepy
  Downloading https://www.piwheels.org/simple/bluepy/bluepy-1.3.0-cp35-cp35m-linux_armv6l.whl (515kB)
    100% |████████████████████████████████| 522kB 54kB/s
Installing collected packages: bluepy
Successfully installed bluepy-1.3.0
pi@pi:~ $

そして、二つの必要なプロジェクトをギットハブよりクローンします。

pi@pi:~ $ git clone https://github.com/ratcashdev/mitemp.git
pi@pi:~ $ git clone https://github.com/ChristianKuehnel/btlewrap.git btlewrap-git

btlewrap-gitとフォルダー名をつけているのは、必要なファイルはこの中にあるbtlewrapフォルダーで、混乱を避けるために別の名前にしています。そのフォルダーをmitemp内にコピーします。コピーした後にbtlewrap-gitは必要ありませんで消去します。

pi@pi:~ $ mv /home/pi/btlewrap-git/btlewrap/ /home/pi/mitemp/
pi@pi:~ $ rm -rf /home/pi/btlewrap-git/

データーの抜き出し

温度計のBTのアドレスを調べます。 一覧が出てきます。デバイス名はMJ_HT_V1のところを探します。 BTアドレスは4c:62:a4:d4:f4:7eになります。

pi@pi:~/mitemp $ sudo blescan

  Device (new): 4c:62:a4:d4:f4:7e (public), -54 dBm
    Flags: <06>
    Complete 16b Services: <0000180f-0000-1000-8000-00805f9b34fb,0000180a-0000-1000-8000-00805f9b34fb>
    16b Service Data: <fffff7631dbc9c62>
    Complete Local Name: 'MJ_HT_V1'

そして、温度計からデーターを抜きだすスクリプトを温度計のBTアドレスとともにpython3 /home/pi/mitemp/demo.py --backend bluepy poll 4c:62:a4:d4:f4:7e走らせます。 ファームウェアバージョン、バッテリー残量、気温、湿度のデーターを取り出すことができます。

Xiaomi 気温湿度計

いつも身近に置いて、これから先酷暑のため、体調の管理に使えれば良いなと。 influxDBに書き込んで、grafinoで可視化を目論んでます。が、、現在grafanaインストールで回線状況も悪く、奮闘中。。。

pi@pi:~ $ sudo docker pull grafana/grafana
Using default tag: latest
latest: Pulling from grafana/grafana
9c38b5a8a4d5: Downloading [==================>              ]  1.801MB/3.407MB
7004aec2d325: Download complete
80f0651468b4: Downloading [=========================>]  4.175MB/4.175MB
c78653e72a05: Download complete
b7224c5e7d13: Download complete
d0bc3461ab2a: Download complete
read tcp 192.168.1.120:46572->104.18.121.25:443: read: connection reset by peer

あーーー、またや。。

!!!!Happy!!!!!

comments powered by Disqus