2018/07/07

体重計をインターネットにつないでスマートスピーカーと連携させてみた

体重計を改造して、測った体重を無線LAN経由でクラウドに記録できるようにしてみました。さらに、一台の体重計を家族で共有するために、スマートスピーカーで誰の体重かを知らせてあげられるようにしました。

体重計の改造

一般に、デジタル式の体重計では、ひずみゲージセンサを使った「ロードセル」というデバイスで重さを計測しています。このロードセル、単体でも入手できますが、体重計を作 るなら、市販の体重計をばらしてロードセルと筐体をそのまま流用してしまったほうが、手間もコストもかからず楽です。
というわけで、タニタのシンプルなデジタル式体重計(HD-661)を購入して分解・改造。ロードセルを使った重さの計測には、HX711というICチップを使ったロードセル用のADコンバータを、マイコンには無線LAN内蔵のESP-WROOM-02(ESP8266)を、体重の表示には4桁の7セグメントLEDロジックIC(シフトレジスタ)の74HC595を使います。体重計そのものとこれらの部品など含めて、部品代は総額3500円くらい。
過程はすっ飛ばして、出来上がった体重計はこんな感じです。



回路図は以下の通り。7セグメントLEDと74HC595の周辺の配線が多くて苦労しました。。。
(回路図を書くためにFritzingを初めて使ってみましたが、便利ですねこれ)

マイコン側はArduinoで体重を計測してHTTP POSTするプログラムを、クラウド側はAWSのAPI Gateway + Lambda + DynamoDBで計測した体重を記録するだけのWEBサービスを、それぞれ作りました。

スマートスピーカーとの連携

このままだと誰の体重かが分からないので、Alexa Skill Kitでカスタムスキルを作って、スマートスピーカー(Amazon Echo dot)に誰の体重を測ったのかを伝えられるようにしてみました。使う人とスマートスピーカーとのやり取りはこんな感じ(やり取りがわかりやすかったのでテスト用の画面で)。

これで、人ごとにデータを記録できるようになります。
実際のデータ記録先は、IoT向けのセンサデータなどの記録・分析用WEBサービスであるThingSpeak(運営しているのはMatlabのMathWorks)。グラフでログも確認できます。


というわけで、体重を毎日測って健康管理できるようになりました。

※今回のハードとソフトを作るにあたっては、以下の記事などを参考にしました。