家具家電付アパートの自室の冷蔵庫をスマートIoT化した話

## 概要
冷蔵庫のトレイを自作し、クラウドカメラ（Atom Cam Swing）を固定することで、アパートの冷蔵庫内の状況を外出先からスマホで確認できるようにIoT化しました。
さらに、ローコードツール「SORACOM Flux」を活用し、クラウドカメラと生成AI（GPT-4o）を連携。冷蔵庫内の画像を定期的に撮影し、その画像をもとに毎日おすすめの料理を提案＆メール通知してくれるようにスマート化しました。


## 完成品の動画像
### ①IoT化の様子：外出先からスマホで庫内をくまなく確認可能
<iframe width="498" height="886" src="https://www.youtube.com/embed/yaXGBLSv8os" title="IoT冷蔵庫" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

### ②スマート化の様子：庫内画像を解析＆オススメレシピをメール通知
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/9d9a785b-fd48-7dbd-86b8-7c6fa8cdac67.png)

## 製作の動機

### ①IoT化したいと思った動機
#### a) 冷蔵庫の中身を忘れて二重買い

  仕事終わりにスーパーに寄って夕食何しようか考えているとき、あれっ？そういえば、冷蔵庫にこの前買ったあの食材やあの調味料まだあったっけって思うことが結構あります。一人暮らしの為、家族に電話して確認することもできない。でもその食材がなかったら困るので念のため買って帰ると二重買いしてしまってた事実に気付きます。二重買いならまだかわいい方で時には三重買いなんてことも。買い物の度に増えていくシチューの素、ポン酢、焼肉のタレ...。この無駄な二重/三重買い、なんとか無くしたいなと思っていました。

　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/cdc9249e-d841-9229-02ac-b84d0b223635.png)

#### b)家具家電付物件の為、IoT冷蔵庫への買い替え不可

実はすでに世の中にはIoT冷蔵庫という便利な商品が各社から発売されています。冷蔵庫内を自動で撮影しスマホで画像を確認できたりするので、そういった冷蔵庫を買えば私が抱えている課題を解決してくれそうです。しかし、私の住んでいるアパートは家具家電付物件の為、特定メーカーの特定型番の冷蔵庫が欲しいと思っても簡単には交換ができません。そもそも電機屋さんに行ってみても、写真のような私のアパートの自室の冷蔵庫収納エリアにぴったり収まるようなちょうどいいサイズのIoT冷蔵庫なんて今の所まだ見たことがありません。店頭に並んでいたのは家族用の大きなサイズのものばかりでした。なんとかして今ある備え付けの冷蔵庫にIoTの機能を付けるしかないっ！と思いました。

　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/a07a9a69-dfcc-3cc6-f52e-012ac801c86a.png)

### ②スマート化したいと思った動機

私は一人暮らしのため、今日何食べたい？って聞ける人がいません。そのため、忙しくなるとつい自分が作れる料理のレパートリーだけで回してしまい新しい料理を覚えるのを後回しにしがちです。結果、何サイクルか回してるうちに自分でも何が食べたいか分からなくなり飽きてしまう。冷蔵庫にあるこの食材を活用したら実はこんな料理のアイデアもあるんやで！って教えてくれる優しいお姉さんがいれば...。お姉さんと言わずとも庫内の画像をAI解析し料理の提案してくれる冷蔵庫に改造したいなと常々思っていました。
 
　 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/ecc03807-6af8-f9e0-1293-3530a832f966.png)


## 目標

アパートの自室の冷蔵庫を改造し、スマートIoT冷蔵庫に生まれ変わらせる！
さっそく夢のスマートIoT冷蔵庫化を実現すべく頭の中のアイデアを具現化＆試行錯誤しながら開発に取り組むこととしました。


## アパートの冷蔵庫をIoT化するにあたり解決すべき3つの課題
大きく以下の3つの課題を解決する必要がありそうだと分かりました。
① 冷蔵庫は扉が閉まっていると真っ暗な為、LEDをつけるなどして明るくする必要がある。
② 各階のトレイに何があるか確認する必要がある為、カメラが上下する機構が必要。
③ (借り物なので) 冷蔵庫に穴をあけずに部品を固定する必要がある。

①と②の課題についてはざっくりな絵になりますが下図のような形にすればなんとかなるかもと思いましたが、③の課題は穴を開けずに直動モータ等を冷蔵庫内壁に固定する方法がどうしても思い浮かばなかった為このアイデアは没案にしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/3e97b92c-4e6d-22e1-3a41-fb94002d031a.png)



## Atom Cam Swing(クラウドカメラ)の利用
アイデアを練り直した結果、Atom Cam Swingの活用が冷蔵庫内の観察に適していそうと考えました。理由は以下の3つです。

①ナイトビジョンモードが搭載されている。つまり赤外線LEDが使用できるので外部光源を新たに準備しなくてよい。
②広い可動範囲(垂直180°、水平360°)により直動機構なしで各階のトレイの状態を確認できる可能性がある。
③底面にある固定用の取付用ネジ穴が利用できる。冷蔵庫のトレイの互換品を自作し、自作の互換トレイに穴を開けたりネジを取り付ければ、Atom Cam Swingを固定できそう。

先のアイデアで問題になっていた部品固定の問題も解決出来そうな為、本案にて進めることにしました。

また補足となりますが動作温度も‐20℃　～　55℃となっており、冷蔵庫/冷凍庫内の温度環境　(冷蔵室：約4℃。冷凍室の温度：－18～20℃）を満足してた点も本案採用の一つの理由です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/7da777aa-1849-a679-5711-56f2a6549e10.png)

## 準備するもの
・アクリル板　(300×450 mm　厚さ5 mm) ※別の階が見えるように透明を選ぶとよい。ホームセンタで購入しました。
・[Atom Cam Swing 2台 (1台：冷蔵室用、1台：冷凍室用)](https://soracom.jp/sora_cam/)
・[1/4オス-M6オスネジ](https://www.amazon.co.jp/dp/B0854HKFVX?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1)
・[どこでも貼れるミラー](https://www.amazon.co.jp/dp/B0B5GZ5148?ref=ppx_yo2ov_dt_b_fed_asin_title)

## Atom Cam Swing固定用の互換トレイの製作
以下の手順で互換トレイを作成しました。
①アパートの冷蔵庫のトレイをメジャーで採寸します
②採寸結果をメモします 
③3Dデータ化します。
④(DXFデータを起こし）アクリル板をレーザ加工して互換トレイの部品を作成します。
⑤互換トレイの部品を組み立てます。(トレイの枠の部分も作りました！）
⑥ソラカメ固定の為、互換トレイベースにM6タップを切りネジ穴をあけます。
⑦ソラカメ固定ネジを取り付けます。※1/4オス-M6オスネジを使用しました。
⑧最後にソラカメを固定しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/eb1b04ec-61e5-8017-2458-24b1c9354d69.png)

## IoT化の実現
トレイに固定したクラウドカメラを冷蔵庫に入れ、扉を閉めて、外出先から庫内の様子を確認してみました。
ナイトビジョンモードによりカメラ内蔵の赤外線LEDが発光し、本来真っ暗なはずの庫内も非常に鮮明に見えました。また冷凍庫も非常に鮮明に庫内の様子が見えております。ひょっとしたら機種やメーカなどによって異なるかもしれませんが、少なくとも自室の冷蔵庫なら庫内のカメラからWiFiがつながることも無事確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/2cab637b-1e8a-7918-f2ac-f046c5a7b912.png)

## カメラの死角対策
実際にIoT冷蔵庫を使っていたとき、食品が増えたり、またカメラ自身の台が写ってしまったりすると下の階が見えなくなるなどの死角があることに気付きました。そこで死角対策として、庫内の奥の壁面に鏡を貼り付け鏡越しに見れるようにしました。たとえば、右下のスマホの画像がよい例なのですが、同じ階に食品(ここではヨーグルトがあって下の階が見えないときでも）鏡を経由することで野菜室のホウレン草が見えることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/c6fec75c-4a90-0948-c4d6-7f604203d5bd.png)



## スマートIoT化の実現
SORACOM Fluxというローコードでアプリケーションを構築できるサービスを使いました。

https://soracom.jp/services/flux/

構築にあたって大部分、以下の記事を参考にしました。

https://zenn.dev/takao2704/articles/soracom-flux-croudness-count

スマートIoT冷蔵庫としては、ソラカメのAPI、生成AI、通知機能を次のように連携させました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/fe9e4bc0-4868-5169-b1fb-c1bafc43311f.png)


①ソラカメのAPIを用いて一日に1回定期的に庫内の画像を撮影する。
②撮影した画像をエクスポートする。
③payloadのステータスがコンプリートされたかどうか判定する。
④payloadのステータスコンプリート時に生成AI(OpenAI GPT-4o)を使って庫内の画像を解析させる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/fb04b4d5-170a-f90c-249a-2ecd66c7d78b.png)


⑤生成AIの結果をＧ-mailで送るように設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/631cdcdf-8191-4a2f-5f23-bad45a2b148d.png)


補足：
　今回は外部持ち込みのOpenAI GPT-4o(ライセンス持ち込み)を選択しました。認証情報は以下のように取得し入力しました。
 (a)の認証情報IDと(b)のAPIトークンは以下より取得する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/e513344e-b052-d195-7a51-d6827b3ea998.png)


 取得したIDとトークンをFluxのAIの認証情報追加の部分に入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217319/5e8327bc-4619-133c-91a5-426b74faa97b.png)




## まとめ
・Atom Cam Swing とミラーを組合わせて冷蔵庫のIoT化を実現しました。
　家具家電付アパートに住んでいてもIoT冷蔵庫が使えるようになりました。
 ・冷蔵庫内からでもカメラのWifiつながるのは驚きました。
　試行の大切さを実感しました。 
 (冷蔵庫って磁石ひっつくので金属の塊だからWifi繋がらないと思ってたけど普通に繋がりました！）
 ・SORACOM Fluxを使って庫内の画像を解析しレシピを提案してくれるスマート冷蔵庫がとりあえず動く所まで出来ました！


## 最後に
今年はアウトプットを頑張ろうと決めて積極的にLT登壇したりイベントに参加した1年だったように思います。今までコミュニティから沢山のことを学ばせて頂き、多くの方とつながることができ、今年は少しでもコミュニティに返していけきたいという気持ちが強かったと思います。まだまだ未熟な所もありますが、成長できるよう頑張っていきたいと思いますので引き続き温かく見守って頂けると嬉しいです。宜しくお願い致します。


## 関連LT(Lightning Talk)
・本内容、下記のイベントで登壇しました！

https://soracomug-tokyo.connpass.com/event/331289/

https://soracomug-tokyo.connpass.com/event/331288/

https://soracomug-tokyo.connpass.com/event/334767/


## 参考

https://zenn.dev/takao2704/articles/soracom-flux-croudness-count

・OpenAIのIDとAPI取得

https://platform.openai.com/docs/overview