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

Raspberrypi便利ツール(xrdp, TeamViewerm,matchbox-keyboard)

 

今日は僕がいつも利用しているraspberrypiでモノを開発しているときに利用している便利ツールについて書いてみたいと思います.

 

 

一つ目リモートデスクトップ(xrdp)

インストール方法は以下のコマンドを実行して下さい

  1. sudo apt-get update
  2. sudo apt-get install xrdp 

日本語キーボードの入力に対応させるために以下のコマンドを実行

  1.  cd /etc/xrdp/

  2.   sudo wget http://w.vmeta.jp/temp/km-0411.ini

  3.   sudo ln -s km-0411.ini km-e0010411.ini

  4.   sudo ln -s km-0411.ini km-e0200411.ini

  5.   sudo ln -s km-0411.ini km-e0210411.ini

  6.  sudo service xrdp restart

二つ目もリモートツールでTeamviewerになります.

なぜ二つ目もリモートツールなのかと申しますと,

  • xrdpの欠点:同じLAN内にいないとアクセスできない

外部からのアクセスは出来ないこともないですが,アクセスするには無線LANのポートの開放(すいません,詳しく調べてないので詳細にはかけませんが,何かしら無線LANの設定をいじる必要が確かあります)が必要になります.しかしながら,TeamViewerはそのような設定を一切する必要がありません.家の外部のPCやスマホから簡単に接続出来ます.

またxrdpはリモートを行う側パソコン(ホスト)でコピーした文章などをリモート先であるラズパイに貼り付けることができません.(これ結構不便です.ホスト側で調べた内容をよくラズパイ側でも使用したいときが結構あります.調べたコマンドとかコピーして使いたいときとか)Teamviewrはそれができるため機能的に便利な気かします.ただTeamviewrの方が少し重い気がします.フリーズするほど使えなくなる状態になるとかはありませんけど.

 

インストール方法

ラズパイ側で下記サイトにアクセス

TeamViewer for Raspberry Pi – Preview Landing Page — TeamViewer Pages

f:id:raspberry765:20170412234306p:plain

 

 

DownLoad TeamViewer for Raspberry Piをクリック

そして以下のコマンドを実行

  1. sudo apt-get update
  2. sudo apt-get install libqt5gui5 libqt5qml5 libqt5quick5 libqt5webkit5 libqt5qml5 libqt5core5a qml-module-qtquick-controls qml-module-qtquick2 libqt5widgets5
  3. sudo apt-get -f install
  4. sudo dpkg -i teamviewer-host_11.0.63329_armhf.deb

一行目から三行目のコマンドは僕がTeamViewerをインストールしようと四番目のコマンドを実行したときにエラーを吐かれました.その時に下記のようなサイトに同じような質問があり,

Raspberry Pi • View topic - TeamViewer IoT Developer Contest: Win up to EUR 5,000

解決方法が書いてあったため,一から三行目コマンドを実行したところTeamViewerを起動出来ました. またラズパイのTeamViewerのインストール方法は様々なサイトで公開されていますが,四行目の数字が最近のTeamViewerには追加されていました.(最初インストール出来なくて焦った)

また今使用しているラズパイのOSはRaspbian 8.0 (jessie)を使用していますが,昔のバージョンのRaspbianでは一から三行目のコマンドを実行しなくても普通に四行目だけでインストール出来た気がしたします.

 使い方は自分のパソコンにもWindowsならWindows版のTeamViewerをインストールして

ホスト側でパートナーに接続を押す 

f:id:raspberry765:20170413003903p:plain

そしたら,遠隔操作を受ける側のIDとパスワードを入力します.

ものすごく簡単にリモートアクセスが出来ます.

ちなみに私はリモートを受ける側(ラズパイ側)の歯車マークから

セキュリティの覧でパスワードを固定することもできます.

f:id:raspberry765:20170413004203p:plain

 

また,ラズパイの電源を付けたらTeamViewerが自動起動するためには

下記コマンドを入力

  1. sudo teamviewer daemon start

これでHDMIもマウス,キーボードを繋げなくても電源とネットさえあればTeamViewerが自動起動し簡単にリモートアクセスが出来ます.自分のIDは変化しないのでパスワードも固定すれば電源とネットさえつながればいつでもそのラズパイにアクセスできます.

 

三つ目に仮想キーボード(matchbox-keyboard)です.

僕がよく仮想キーボードを使用するときはいつもリモートでラズパイを操作しているのですが,たまにラズパイがちゃんと起動をしているかを実際に確かめるときにHDMIを接続して確かめるのですが,少しキーボード使用したい.だけど接続するのがめんどくさい!!

そんなときにマウスだけ接続すれば仮想キーボードを使用すると簡単に操作することが出来ます.矢印やEnterキーもあるので,コマンドプロントの操作とかも行えるので便利です!後はタッチパネルの操作のときも便利になります.

以下のサイトで詳しい内容が書かれています.

Raspberry Pi の仮想キーボード | Raspberry Pi

インストール方法は

  1. $ sudo apt-get install matchbox-keyboard

実行方法

 スタートメニューからアクセサリ→Keyboardを選択

f:id:raspberry765:20170412002825p:plain

 

スタートメニューに存在しない場合は設定→Main Menu Editorを選択

f:id:raspberry765:20170412003549p:plain

 

アクセサリからKeboardの表示に☑を入れる

そうすればスタートメニューのアクセサリにキーボードが現れます.

f:id:raspberry765:20170412003741p:plain

 

 

こんな感じで便利ツールを有効活用しモノづくりをガンガンやっていきましょう!

まずはRaspberryPiの購入から!! 

タイトル通りにまずはRaspbery piの購入について書いていこうと思います.といっても実はラズパイ3,zeroと両方すでに購入済みであるため,今回はRaspberry Pi Zero Wの購入をPIMORONIにから行いました.まだ日本では未発売ですが海外からは輸入をすることが出来ます.海外からも輸入は最初は怖いですがやってみるとすごく簡単です.

まずはPIMORONIにアクセス!

Pimoroni - Raspberry Pi, Adafruit, SparkFun from the UK

 

Raspberry Pi Zero Wのコーナーに行って

f:id:raspberry765:20170404223911p:plain

買いたい商品をAdd to basketへ!

ちなみに私はZero W onlyを購入しました!

ちなみに2017年4月4日現在はまだPiZero Wはお一人様一つみたいですね(THIS PRODUCT IS LIMITED TO 1 UNIT PER CUSTOMER

初めての人は Zero W + Adaptors + Pibow Zero W とかStarter Kitでもいいかもしれません.

今回さらに友達の分のPi3と小型Arudino マイコン?Teensy LCも購入しました.

購入するときは友達とかと一緒に輸入をすれば送料を半分ずつ出せるのですごくお得です.

購入するものをBaketに入れたら画面右上の黄色四角のCheck Outを押す.

そうするとYour Cartの中身になりますから個数と値段をあっているかチェック!

f:id:raspberry765:20170404225539p:plain

よかったら,次にCHECKOUT Nowを押す.

たまにCHECKOUT Nowを押した後,こんな感じのページに飛びますが

無視で,スクロールして下のTake me to the Checkoutへ(こんな商品もあるから買ってきなよ!! Hey!!的な感じですかね..)

f:id:raspberry765:20170404225913p:plain

購入画面へ行くと

f:id:raspberry765:20170404230553p:plain

のような形になりますので,住所と支払い方法を選択.

私は支払はクレジットカードを持っているのでPayPalで支払いました.

もしPayPalに登録していなかったら,PayPalは簡単で登録費も無料なのでぜひこの機会に登録してみてはいかがですか?

クレジットカード決済-PayPal(ペイパル)

amazon payは謎のままです.

そして住所入力です

私はここのサイトを参考にして住所を書きました.

bicycle.kaigai-tuhan.com

 住所入力が終了したら,

Coninue to Shipping methodに移動

Royal MailかUPS Saverかどちらか選びます.私はいつもRoyal Mailで頼み2週間か3週間ぐらいで今住んでいる新潟に到着します.UPS Saverは速達みたいなものですかね.両方ともトラッキング番号が発行されるため荷物がどこにあるかが分かるため安心です.

配達の速度については以下を参照にしてください

koyoihanahan.wp.xdomain.jp

そしたら最後 Compete orderで注文です.

注文がしっかりできてると,メールにオーダー完了が届きます(Confirmedという件名がついたメール)

そして配送が開始されるとラッキング番号が書かれている(A shipment from orderと

いう件名がついたメール)が送られてきます.

後はただ待つだけになります...

海外なので少し注文してから長いです.

 

最後まで読んでいただきありがとうございます!

 

 

初めまして!

4月から新しい生活に変わるので新しいことを始めたいと思いブログを始めました.ブログの内容は僕が今現在興味を持っているraspberrypiを主に取り上げてこうと思っています.さらに僕はいろんな情報を集めるのが好きなので(気が付いたらSmart NewsやNews picks)を見ているのでそこで集めた情報をこのブログを見てくれた皆さんに広めていきたいと思います.後,料理とかも好きなのでアップ出来たらと思います.さらに最近はおこずかいサイトによくはまっています.みなさんはハピタスとかを利用したことはありますか?例えば通常通りに楽天クレジットカードを作ったら5000ポイント位が楽天から付与されますよね?しかしながら,ハピタスといったポイントサイト経由でクレジットカードを作成すればキャッシュで10000円以上さらに還元なんてこともよくあります!こういう情報も集めるのが好きなので多くの人にシェアできたらなと思います.

 

今,現在新居に向けての引っ越し作業中ですがどうも引っ越し作業に力が入りません.まあ,引っ越し先が歩いて5分というところにあるため,「新生活を始めるぞ!!」という感覚が無いからかもしれません.

最後まで読んでいただきありがとうございました.これからもブログを継続出来るように頑張りたいと思います!