Raspberry Piを使用したXiaomi Smart Scaleからのデータの取得

Xiaomi Smart Scaleスケールをお持ちの場合は、このドキュメントの手順に従って、Raspberry Piから体重を読み取ることができます, Bluetooth経由で接続することにより、レコードをMySQLデータベースに保存します, したがって、必要に応じて、Grafanaを使用してそれらを非常に簡単に活用できます! 私たちの生活を制御し、それを超クールな方法で視覚化するさまざまなデバイスから情報を取得するのに非常に興味深いと思う一連のドキュメントをあなたに残します!

 

データベース,

そこで, Raspbianがインストールされ、更新されたRaspberryPiが必要になります. 次に、データベースサーバーがない場合は、データベースを管理するために、MySQLとクライアントをオプションでインストールする必要があります, 然も無くば, 非常に簡単に、このコンピューターのリモートベースをリモートで管理したい場合は、WindowsからHeidiSQLを使用して管理できます. 悪くありません, MySQLをインストールするには:

[ソースコード]sudo apt-get mysql-server mysql-clientをインストールする[/ソースコード]

 

インストール後, これで、MySQLに接続できます, データベースの作成, そして、計量記録を保存するテーブルを作成します, これは非常に簡単です, それがそうであるとしましょう 2 田畑, 「ペソ」と呼ばれる重量が保管される最初のもの’ どうしてそうしないのですか, そしてもう一つは「created_at’ これには、スクリプトが実行された日付が入力されます. 私たちはこれを行います:

[ソースコード]mysql -u ルート -p
データベースNOMBRE_BASE_DATOSの作成;

テーブル 'NOMBRE_TABLA' の作成 (
DECIMAL '重み'(4,2) NULL でない,
'created_at' タイムスタンプが NULL でない 更新時のデフォルト CURRENT_TIMESTAMP CURRENT_TIMESTAMP
)
;
[/ソースコード]

 

そして、これが私たちが作成したものです, はい? 私たちのすべての体重を保管するテーブル! そして、少しの時間で、体重が増えるかどうかを分析して確認することができます!!!

 

Bluetooth,

DBの準備後, 次に、Raspberry PiからXiaomiSmartScaleへのBluetoothアクセスを構成します, PythonでBluetoothを使用するための要件をインストールします, ランニング:

[ソースコード]sudo apt-get bluez python-bluez python-mysqldb をインストールする[/ソースコード]

 

先に進む前に, Raspberry Piを使用していない場合 3, スケールに接続できるようにするには、小さなBluetoothドングルを接続する必要があります, 準備ができていることを確認するため, 次のコマンドを実行して、BluetoothデバイスがPiによって認識された場合は、BluetoothデバイスのMACアドレスを返す必要があります:

[ソースコード]彼はツール開発をしました[/ソースコード]

 

スキャンしてみて、どのBluetoothデバイスが見つかったかを確認できます:

[ソースコード]ハイツールスキャン[/ソースコード]

 

スクリプト,

スケールに接続する次のPythonスクリプトを作成する必要があります, 私が置いたスクリプトは、 これをGitHubで. En mi caso lo llamaré lee_bascula.py:

[ソースコード]BleScanのインポート
インポートシステム
インポート時間

bluetooth._bluetoothをBluezとしてインポート

dev_id = 0

ソックス = bluez.hci_open_dev(dev_id)

blescan.hci_le_set_scan_parameters(靴下)
blescan.hci_enable_le_scan(靴下)

measured_anterior = 0

試みる:
トゥルー:
returnedList = blescan.parse_events(靴下, 1)
len の場合(returnedList (返されたリスト)) > 0:
(マック, UUIDの, 少佐, マイナー, TXパワー, RSSI) = 返されたリスト[0].割る(‘,’, 6)
# CAMBIAR LA DIRECCION MAC
もしMac == '88の場合:0f:10:XXさん:XXさん:XXさん’ と UUID[0:22] == ‘01880F1096AB190D161D18′:
measunit = uuid[22:24]
測定 = int((UUIDの[26:28] + UUIDの[24:26]), 16) * 0.01

単位 = ”

measunit.startswith の場合((’03’, 'b3')): 単位 = 'lbs’
measunit.startswith の場合((’12’, 'b2')): 単位 = 'JIN’
measunit.startswith の場合((’22’, 'A2')): 単位 = 'Kg’ ; 測定された=測定された / 2

IF単位:
測定した場合 != measured_anterior:
プリント(「測定済み : %s %s" % (測定, 単位))
measured_anterior = 測定
MySQLdbのインポート
db = MySQLdb.connect("127.0.0.1",「ルート」,「CONTRASEÑA_ROOT_MYSQL」,「NOMBRE_BASE_DATOS」)
カーソル = db.cursor()
cursor.execute("""挿入NOMBRE_TABLA (ペソ) 価値観 (%s) """,(測定))
db.コミット()
時間.スリープ(2)

KeyboardInterruptを除く:
sys.exit(1)[/ソースコード]

 

スクリプトを詳しく見て、いくつかの変更を加えると、すぐに実行できるようになります! スケールのMACアドレスを変更する必要があります, MySQL root ユーザーのパスワード, BDの名前とそれ以外はほとんどない! 次のコマンドで実行を試みることができます 誰かが自分自身の体重を量るのをリッスンします, それは、スケールに足を踏み入れるたびに、メッセージで重量を伝えるだけでなく、各計量を表示します, それは私たちがあなたに言っているMySQLDBにあなたを置きます. 試みる:

[ソースコード]sudo python /home/pi/lee_bascula.py[/ソースコード]

 

さて, すべてがうまくいけば, Raspberry Piが再起動したときに、スクリプトを直接ロードして準備が整うようにする必要があります! cronでそれを行い、追加します:

[ソースコード]crontab -e

@reboot sudo python /home/pi/lee_bascula.py[/ソースコード]

 

グラフィック,

覚えているなら, この前のドキュメントでは、, Grafanaの組み立て方法を見ました, あなたがそれを広げているなら、私たちはそれをデータを視覚化し、いくつかの信じられないほどのパネルを作成するためにそれを使用するつもりなので素晴らしいです! そして、あなたがそれをインストールしていない場合… 使用するのでインストールすることをお勧めします, ドキュメントの手順に従って、マシンにインストールします (バーチャル) 専用またはRaspberryPi自体にさえ.

 

Grafanaをマウントした後, 私たちが通常すべきことは、新しいダッシュボードを作成することです, この簡単な例では、MySQL DBにクエリを実行して、保存したレコードを表示するグラフィカルなものを作成します, その後、誰もが自分の好みに合わせてチャートをカスタマイズします. しかし、まず第一に, ダッシュボードからクエリを作成するには、MySQLデータソースを作成する必要があります. これを行うには、, から “データソース” クリックします “足す” そして、RaspberryであるMySQLサーバーへの接続を追加します, 接続を正しく設定し、 “セーブ & 試験”,

 

これで、ダッシュボードを作成できます, グラフパネルを追加しました, タイトルをクリックして編集します, 私たちは、適切と思われるようにすべてを変更します, 色, 情報, 軸… しかし、 “メトリック” DBにクエリを実行するSELECTを入力する必要があります, 次のようなものを指定します:

[ソースコード]選ぶ
UNIX_TIMESTAMP(created_at) とてもtime_sec,
値としての重み,
「重さ" メトリックとして
チルトから
どこで $__timeFilter(created_at)
created_at順, time_sec ASC[/ソースコード]

 

 

そして何もない, いじくり回した後、あなたはいくつかのクールなグラフを作ることができることがわかります, もちろんです, テーブルにレコードを入力する必要があります, だから時間には時間を与えてください!!! この投稿は、私が言うように、私たちができるようになる驚異への第一歩です, パズルのすべてのピースを組み立てる… じゃあね, 自分を大切にする!!

 

おすすめの投稿

著者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 私に連絡することを躊躇しないでください, できる限りお手伝いします, シェアリングは生きていること ;) . ドキュメントを楽しむ!!!