スマート冷蔵庫をRaspberry Piで作ってみた

今回,冷蔵庫の中身をいつでも見ることの出来るシステムをRaspberry PiとwebCameraを用いて開発しました.

作ろうと思ったきっかけとしてはよく買い物をしていると冷蔵庫に何が入っていたのかを忘れてしまい,買い忘れや同じものを買ってしまうことが多かったためです(笑).今回の記事では簡単にシステムの構成概要と動作テストについてです.随時システムのプログラム(Gitにアップ予定)や電子回路について解説した詳しい記事を書きたいと思います.

まず以下の部品と製品がシステム構成に使用したものです.

部品リスト

ざっとこんな感じです.あと光検出回路などで電子回路でADコンバーターなどの電子部品をいくつか使用しますが今回は省略します.私は開発はほとんどRaspberry Pi3で開発を行い,実装をPizero Wで行いました.やっぱりPizeroで開発を行うと動作が重くストレスになるためです.また毎回HDMIをつないでラズパイを起動させるのもストレスなため,TeamViewerを使用してました.TeamViewerの便利さについては過去の記事を参考くださいシステムの動作フロー

f:id:raspberry765:20170715133905j:plain

  1. 光検出1
    まず冷蔵庫の扉が開いたときの明るい光を検出し,冷蔵庫の写真を撮る準備をします.このようなシステムにした理由としては冷蔵庫の中身が変化するのは冷蔵庫の扉が開いたときであるためこのようなシステムにしています.また,光検出はADコンバーターcdsを用いた回路です.この回路については後日他の記事で解説したいと思います.

  2. 光検出2
    光検出2では冷蔵庫が閉じた状態である暗い光を検出します.この光検出2によって冷蔵庫が開いているときに誤って撮影が行われないようにします.

  3. サーボモーター回転と撮影
    冷蔵庫が閉じたことを光検出2で確認されれば冷蔵庫の中身を撮影開始します.冷蔵庫の中身は広いのでサーボモーターでカメラを回転させながら任意の回数を撮影します.また2軸のカメラマウントを使用しているため,上下左右の写真を撮ることによって冷蔵庫の中身全体を撮影できるようにしています.また,撮影時に冷蔵庫の中は暗いためパワーLEDを点灯させます.(ここの処理についても後日記事にします)

  4. パノラマ写真作成(画像処理)
    3で撮影した複数の写真を一枚にするパノラマ画像処理を行います.この処理によって冷蔵庫の中身を一枚の写真で見れるようにします.(ここの処理についても後日記事にします)

  5. メールに写真を添付してスマホに送信
    写真をメールに添付し,パソコンやスマホで見れるようにすることによって外出先でも冷蔵庫の中身が確認できる!

 システムの実機写真

 本当は外装にもこだわりたかったのですが,良いアイデアが浮かばなかったため,今回牛乳パックで作ってみました2軸のサーボモーターによって上下,左右方向にカメラを動かし,写真を撮影します.

f:id:raspberry765:20170715135854j:plain

f:id:raspberry765:20170715135845j:plain

撮影した写真

まず冷蔵庫の扉が開いたときの明るい光を検出し,冷蔵庫の写真を撮る準備をします.このようなシステムにした理由としては冷蔵庫の中身が変化するのは冷蔵庫の扉が開いたときであるためこのようなシステムにしています.また,光検出はADコンバーターcdsを用いた回路です.この回路については後日他の記事で解説したいと思います.サーボモーターで回転させて撮影した写真をパノラマ合成で一つにする.Open CVを利用f:id:raspberry765:20170715142809j:plain

実際の冷蔵庫の中をスマホで撮影した写真↓今回システムで撮影した箇所を一部ですがサーボモータで全体を撮影すれば十分冷蔵庫の中を確認できる考えています.

f:id:raspberry765:20170715143738j:plain

 

f:id:raspberry765:20170715145954j:plain

上の画像がgmailに送信された冷蔵庫の写真になります.今後の方針としてはたまに不具合があるためプログラムの見直しを行います.また,写真からでは中身が分からない牛乳パックの中身とかについては重みセンサーなどを用いて中身が分かるようになればいいなと思います.さらに外観にもこだわり,もっと頑丈なものにしたいと思います.読んでいただきありがとうございました.最近というかブログをはじめてからまったく更新をしていなかったで,これを機会にまめに書いていこうと思います!