本記事は、2018年7月に別の場所へ書いた記事の転載です
概要
体重計を改造して、測った体重をWi-Fi経由でクラウドに記録できるようにしてみました。さらに、一台の体重計を家族で共有するために、スマートスピーカーで誰の体重かを知らせてあげられるようにしました。
ハードウェア
一般に、デジタル式の体重計では、ひずみゲージセンサを使った「ロードセル」というデバイスで重さを計測しています。このロードセル、単体でも入手できますが、体重計を作るなら、市販の体重計をばらしてロードセルと筐体をそのまま流用してしまったほうが、手間もコストもかからず楽らしい。
というわけで、タニタのシンプルなデジタル式体重計 HD-661 を購入して分解・改造。ロードセルを使った重さの計測には HX711 というICチップを使ったロードセル用のADコンバータ を、マイコンには小型Wi-Fiモジュールの ESP8266 (ESP-WROOM-02) を、体重の表示には4桁の7セグメントLEDとロジックIC(シフトレジスタ)の 74HC595 を使います。体重計そのものとこれらの部品など含めて、部品代は総額3500円くらい。
過程はすっ飛ばして、出来上がった体重計はこんな感じです。
回路図は以下の通り。
7セグメントLEDと74HC595の周辺の配線が多くて苦労しました。。。
ソフトウェア
マイコン側は Arduino で体重を計測して HTTP POST、WEB サービス側は AWS の API Gateway + Lambda + DynamoDB で受信した体重を記録、するものをそれぞれ作りました。
また、このままだと誰の体重かが分からないので、Alexa Skill Kit でカスタムスキルを作って、スマートスピーカー (Amazon Echo dot) に誰の体重を測ったのかを伝えられるようにしてみました。使う人とスマートスピーカーとのやり取りはこんな感じ (やり取りがわかりやすかったのでテスト用の画面で)。
さらに、実際のデータ記録先は、IoT向けのセンサデータなどの記録・分析用WEBサービス ThingSpeak (運営しているのは Matlab の MathWorks だそうです) を活用。
というわけで、体重を毎日測って健康管理できるようになりました。
※コードがきれいにまとまっておらず公開できてませんが、「参考」で紹介されているものをうまく組み合わせていくと、一通り動くものが作れると思います。
参考
今回のハードとソフトを作るにあたっては、以下の記事などを参考にしました。
- 歪みゲージ(ロードセル)と HX711 を使って重量計測する (Arduino) | tech - 氾濫原
- 体重計をハックして無線化してみた - Qiita
- 4連の7セグメントLEDをシフトレジスタで制御してピン数を節約する | ものづくりとプログラミング日記
- ESP-WROOM-02 Arduino互換ボードのGPIOはこうやって使う - Qiita
- ESP8266でSPI通信する - Qiita
- ESP8266 (ESP-WROOM-02) の便利ライブラリまとめ (Ticker編) - Qiita
- esp8266 - What is the secret of the arduino yield() function? - Stack Overflow
- Alexa | アレクサ | Alexaスキル開発トレーニング
- [日本語Alexa] ダイアログモデルでスロットを自由自在に操作するためのドキュメント | Developers.IO