IoTで飲み会を計測したい「概要編」

## はじめに

12月忘年会シーズンです。皆様お酒は好きですか？ 忘年会はその年の苦労を忘れるため年末に催すらしいです。私は残念なことに日常も、ときたま参加する飲み会についても覚えが悪いため忘れないといけない話は多くありません。

今回の記事のテーマである「IoTで飲み会を計測したい」は、何事も忘れがちな私が飲み会についてデータを計測して収集してみたいという思いつきから始まりました。どれだけ飲んだのか、前半のペース、後半のペースは異なるのかというのを紙にメモるのは野暮、粋ではありません。専用のガジェットを用意して計測するのが良いと考えて3ヶ月ほど試行錯誤をしてみました。
この記事では経緯と展望をまとめ、別の記事で技術的な説明（ハードウェア/システム構成）を書く3部構成です。

## 何を計測するのか

弊社では日本酒を飲む同好会があり、不定期で美味しい日本酒を囲んだ飲み会が開催されています。飲み会といえど千差万別で色々な切り口がありますため、今回のこの企画では日本酒をターゲットとしました。日本酒用の酒器である「お猪口」をIoT化し、飲んだ量とそのタイミングを計測します。今後、このIoT化したお猪口を「IoTお猪口」と記載します。


## プロトタイプと試行錯誤（1）

私は電子工作と3Dプリンターを少し嗜んでいるため、計測の手段としては電子工作用のセンサー、造形の手段は3Dプリンターとしました。大前提として[熱溶解積層方式](https://www.3d-printer.jp/knowledge/classification/#fdm)の3Dプリンターの印刷物は製造工程上細かい隙間があり、雑菌が繁殖しやすいため食器には使用できません。そのため、お猪口やコップにデバイスをつけて拡張する形で実現することにしました。

最初に試したのは、ロードセル（体重計やキッチンスケールのセンサー）と傾きを計測するジャイロセンサーを併用することで水平時の重さを測る案です。このジャイロセンサーで飲んだ時の傾きも計測することができるため、人間の動作の状態も取得することにしました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/b685b2c6-e3c7-a839-d850-da21a930ace4.jpeg" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/c988aa24-6df4-2bb8-b335-1816a994842f.jpeg" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/21c07d0d-4e44-41fb-5f2f-044b4909b604.jpeg" width=50%>


体重計に載せたお猪口で酒を飲むようなものですので、ロードセルの値は乱高下しました。取得したデータはノイズが多くかつ非常に神経質で、計測後の後処理でデータを補正しても使い物になりません。おそらく机に置いたタイミングでしか安定しなかったことでしょう。今回は飲んだタイミングと量を計測したいこともあり、デバイスを毎回机に置く想定ができないためボツとなりました。この設計を通して、なぜキッチンスケールは手に載せて重さを測らないのか、なぜ体重計はあの形状をしているのかをより深く理解することができました。やはり、市販プロダクトは考え尽くされています。


## プロトタイプと試行錯誤（2）

次のプロトタイプは超音波センサーで液面を測る方式です。ジャイロセンサーは傾きと水平の計測のため引き続き使用しています。距測センサーには超音波の他に赤外線、レーザーなどの方式がありますがフロートなどを置かずに透明の液体の液面を判別するのには超音波センサーが適していました。また、センサーの取得できる最短距離が超音波距測センサー（US-015やHC-SR04）は2cmであり今回のデバイスの要件に合っていたことも好都合でした。センサー選定時の笑い話なのですが安価でかつ防水型であるセンサー（AJ-SR04M）は取得できる最短距離が20cmでありそのスペックでお猪口の水面を測るためにははるか頭上にそのセンサーを設置しないといけなくなり全く要件に合いませんでした。さらに余談ですが、後日RCWL-1670という超音波センサーを見つけました。このセンサーは最短距離がUS-015と同等に短く、かつ防水仕様であるためこちらは状況によって今後採用するかもしれません。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/2f3f2f4d-df46-d3d4-f4fe-dc15dd426877.jpeg" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/f61889ce-e34c-ef7b-50cb-5ff4488813d5.jpeg" width=50%>

距測センサーの選定について補足すると、レーザー・赤外線ともに水やそれに近い透明な液体を透過するためフロートなどを浮かせる必要がありました。飲食物に何かしら物を浮かせると誤食・誤飲の可能性があることもあり今回は選定から外しています。

このプロトタイプ時点で使用していた超音波距測センサー US-015 はこちらです。

https://akizukidenshi.com/catalog/g/g118344/

今回使用する超音波センサーは金属製の円筒（トランスデューサ）が2個1組あり、この筒から超音波を送信・受信して距離を測定しています。つまり、この2つの筒をお猪口の範囲に収める必要があります。かつ、超音波の照射か反射に関係するのか詳細は不明ですが壁面からは少し離す必要があり、お猪口自体はタンブラーのように垂直な形状であることが求められます。結果として、大きなタンブラーの端にセンサーを取り付けることにしました。飲み口が大きくないとセンサーが口に当たって飲めない事情もありました。

ここで問題となったのが量の増減です。日本酒1合は180mlです。大きなタンブラーで日本酒を飲むと一度に飲む量によって生じる液面への距離の変化が少なすぎてセンサーの計測誤差に負けてしまいます。いわば、少しだけ飲んだ場合にセンサーの値を前後比較して計算すると量が増える計算になってしまったりするということです。また、タンブラーはお猪口ではないため、日本酒を飲むための酒器に適していないという指摘もありました。口で迎えにいくなんて表現がある通り、器に対しての液量には風情があります。大きなタンブラーの底に少しだけ日本酒が溜まっているのはあまり気持ちの良いものではありません。


## プロトタイプと試行錯誤（3）

この反省を経て、次のプロトタイプはお猪口を再び小さくしました。小さいお猪口に超音波センサーの2つの円筒を据え付けるとセンサーに口と鼻が当たって飲めません。その打開策としてセンサーを動かすことにしました。動力源は定番のサーボ（SG-90）です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/7d47215e-81fc-de81-76a8-7a1c24b9d252.gif" width=50%>

アームの先に据え付けたセンサーがジンバルのように動けば飲む際にも邪魔にならないため良いのではないかというアイデアです。結果としては、単4電池2個の電源では満足にサーボが動かないこと、単純なジンバルの挙動だと酒を注ぐ動作で邪魔になり、それを防ぐことを考えるとアームの制御が複雑になること、この2点に対して上手い解決方法が見つからずボツになりました。


## 最新のプロトタイプ

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/4667e8a6-4f36-bcad-e21b-b26cbe1eac49.jpeg" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/379ba913-bb80-a5f3-e54e-bb995f778e90.jpeg" width=50%>

アームの先につけた超音波センサー、小さいお猪口のアイデアを踏襲しつつアームを人力で動かすことにしました。アームは常に同じ場所に戻る必要がありますので輪ゴムで引いています。アームを人が動かせるようにアーム本体に小さな取っ手を設け、さらにスライド式のボタンも設けました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/27b11fd9-3c3f-1022-6c56-2d3238776a47.jpeg" width=50%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/5ac0629e-cd53-5bee-7c31-53ea5cb4f64a.jpeg" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/06932ac3-25a0-9cb1-833a-8955f3160540.gif" width=50%>

センサーをアームの先に設置して動かすことにより、センサーの計測誤差は増大しますがお猪口を小さくするためには必要な処置でした。むしろアームを動かすことを飲む・注ぐなどの動作のトリガーとみなすことにしています。具体的にはアームの根元に磁石とホールセンサーを装着することでアームを指で開いているかどうかの判別をするようにしました。指でアームを開いている状態で、かつ本体が傾いておりその結果として超音波センサーで取得している液面との距離が増大している事象をうまく拾うことができれば飲んだ瞬間と飲んだ量が従来よりも判別しやすいはずです。また、アームを指で開いて本体が比較的水平のままセンサーと液面の距離が縮小すれば注いだ瞬間と注いだ量を判別するのも従来より容易となるはずです。

計測の結果です。「shirakobato」「yurikamome」はデバイス名です。各デバイスは都道府県の県鳥の名前から名付けておりまして、最終的には十数個のIoTお猪口を用意したい気持ちです。一つ目のグラフのX軸の「28 19:58」は11月28日19時58分の意味で、Y軸は傾きの角度（XX°）です。二つ目のグラフのX軸は一つ目のグラフと同様で、Y軸はアーム先端の超音波センサーから水面までの距離を示しています。距離が長いほどお猪口は空に近く、距離が短いほどお酒でお猪口が満たされています。距離に関しては100mm以上 or アームが指で動かされている状態での計測結果を外れ値として0に置換しています。

![グラフ1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/4718bbcd-6d15-798c-00fe-e262abb51bf1.png)

![グラフ2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/dcb4940f-f901-2160-77f2-985f9e70a351.png)

下記のグラフの通り、2時間近く稼働させても問題ありませんでした。

![グラフ3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/98efe9fe-3690-eab8-0ed4-5ffd4d941df1.png)

![グラフ4](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/b953f0ae-2eed-0d73-64a6-d618cd61256f.png)


## 社内活動としてのIoTお猪口

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/085714d2-1cff-44e4-ecc5-e9cb4a96d7b8.jpeg" width=50%>

この一連の活動は[BrainPad](https://www.brainpad.co.jp/company/)社員が企画提案できる取り組み「[D会議](https://blog.brainpad.co.jp/entry/2024/12/16/103014)」と社内の日本酒の同好会の協力の元に行っております。「[D会議](https://blog.brainpad.co.jp/entry/2024/12/16/103014)」では社長に向けてプロトタイプのIoTお猪口を片手にプレゼンし、このデバイスを用いて「IoTで飲み会を計測したい」というテーマに賛同していただけるようにアピールしました。とても怪しいデバイスゆえに、爆弾の製造・盗撮・産業スパイと間違えられることは絶対に避けないといけません。事前に表舞台で存在を共有しておくことは重要との考えで企画を提出しておりました。

結果として社長から承諾をいただき、晴れて個人プロジェクトとして「IoTで飲み会を計測したい」は歩み始めます。BrainPadの[VISION](https://www.brainpad.co.jp/company/mission.html#:~:text=PURPOSE-,VISION,-MISSION)である「息を吸うようにデータが活用される社会をつくる」を口実に、私の気まぐれと思いつきで「IoTで飲み会を計測したい」と考え、そして明らかに怪しいデバイス「IoTお猪口」を使って社内で実験することに賛同いただいた懐の広い弊社BrainPadとその社員に大変感謝です。

BrainPadの「D会議」の詳細についてはこちらの会社公式ブログをご参照ください。

https://blog.brainpad.co.jp/entry/2024/12/16/103014

## 今後の展望

![sumaho_00_21_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3948175/6e388ed4-4a84-2752-d3c3-c805e9f90069.png)

飲み会を計測するための第一歩は踏み出せましたが、まだまだ課題は山積みです。いかに世の中に出回っているプロダクト・電気製品が優れているかを身に染みて感じました。日本酒の同好会の方達にIoTお猪口を実際に使用していただいて感想・アイデアをいただき、また社内のIoTに詳しい方からもアドバイスをいただきまして次の一手を考えております。具体的には下記です。

- センサーの誤差の改善は難しいため、ソフトウェア側での判別に力を入れる
- 小型化すべきかどうかは要検討。基板を導入すれば大幅に小型化できるが、意外と現在の形は握りやすく使いやすい可能性もある
- 調査の意味では、観察対象に普段とは異なる不自然な動作を強要していることになる
- プロダクトデザイン的な観点で、形状と使用者に期待する動作がまだ一致していない
    - 傾きを計測する前提でない角度に傾けても飲めてしまう
- 現在のガジェットは見栄えが怪しいため、それをもっとエンタメに昇華すると良いかもしれない
- まだ着手できていないが付加価値をつけたい。LEDなどは設置可能
- 酒をこぼすなどのトラブルに対して堅牢にする必要がある
- 現在IoTお猪口は2個のみ。飲み会を計測するにはもう少しデバイスの数が欲しいがまだプロトタイプの域を抜けられていない
- やはりアームなしでセンサーを動かさずに上手いことデータを取れないか？
- （個人的に）やはりレーザー距測センサーを使いたい。レーザーはロマン！ 精度的にもメリットがある

次の記事ではIoTお猪口を技術的な側面で解説します。お楽しみに。

## 参考

先行の事例や参考資料です。

https://qiita.com/kitazaki/items/14e5d8d24b181c16e106

https://qiita.com/kitazaki/items/1a1cdf77c6b9ccaa03d9

https://www.macnica.co.jp/business/semiconductor/articles/basic/144755/

非接触型センサを用いた水位計測 に関する基礎的研究

https://www.jstage.jst.go.jp/article/jsceim/1/1/1_306/_pdf/-char/ja