#### 体重計の改造一般に、デジタル式の体重計では、ひずみゲージセンサを使った「ロードセル」というデバイスで重さを計測しています。このロードセル、単体でも入手できますが、体重計を作 るなら、市販の体重計をばらしてロードセルと筐体をそのまま流用してしまったほうが、手間もコストもかからず楽です。
というわけで、タニタのシンプルなデジタル式体重計(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)。グラフでログも確認できます。
というわけで、体重を毎日測って健康管理できるようになりました。
※今回のハードとソフトを作るにあたっては、以下の記事などを参考にしました。
- 歪みゲージ(ロードセル)と HX711 を使って重量計測する (Arduino) | tech - 氾濫原
- 体重計をハックして無線化してみた - Qiita
- 4連の７セグメント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スキル開発トレーニング