| tags:raspberry pi logging categories:server
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
走らせます。 ファームウェアバージョン、バッテリー残量、気温、湿度のデーターを取り出すことができます。
いつも身近に置いて、これから先酷暑のため、体調の管理に使えれば良いなと。 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!!!!!