自宅をIoTにしてみる。

誰もが憧れる(?)自宅IoT化!ついに我が家もやる時が来ました。

今回はインターフォンが押されたのをLINEに知らせるようにします。

というのも、作業中は音楽を聴いていることが多く、配達やお客さんが来ても気づかないことが多々…

このままでは申し訳ないので、LINEに通知して気づくようにしました。

 

今回の企画は三日間で作品制作を毎日行うhack-xxxの企画です!

 

ちなみに家のインターフォンがこれ。

インターフォン

見ての通りボロボロなのですが、なんと1996年製。何かと長生きさん。

筆者が1998年生まれなので、それよりも長生きって凄い。

最初は子機との通信を読もうとしましたが、下手なことして壊すわけにもいかないので安全な方法で信号を読みました。

 

どうやったか?

今回は一家に数台転がってるであろう、RaspberryPi(筆者は3B+)を中心に組みました

インターフォンの外部スピーカーへの出力をADコンバータに繋いで、通知音が再生されたらLINE Notifyを使って通知するというシンプルな感じです。

 

使ったもの

  • RaspberryPi 3B+(Raspbian搭載、違うモデルでもOK)
  • 12ビットADコンバータ MCP3208-CI/P
  • ユニバーサル基盤(ブレッドボードでもまぁよし!)
  • ジャンパー8本
  • ケーブル2本(2本束ねてあるやつ使いました

 

ソースコード

今回のソースコードはGitHubに置いてあります。

記事内で、説明しますのでこちらも開いて確認してみてください!

⇒GitHub

 

信号を調べる

まずは、インターフォンのスピーカー用の端子から外部に出力される信号を調べました。

最初に回路は組んでしまいます。

回路図はざっくりとこんな感じ。

回路図

アナログ信号の読取用プログラムはGitHubに上げておいたのでご確認ください。

⇒【GitHub】signal_test.py

上のコードを使用して、ADコンバータの動作確認や、計測したい電圧を図ってみてください。

今回は、インターフォンの外部スピーカーへの信号を計測したところ、3000~4095の値が確認されました。押したとき毎に変動があり、押してない時も常時1000~2000の値が検出されるので、ノイズがなかなか厄介そうです…

ちなみに、今回使用するADコンバータ MCP3208-CI/Pは12bitのデジタル信号に変換するため、0~4095の値に変換します。

 

実行ファイルを作る

こちらもソースコードはGitHubに上げておきました。

こちらからご覧ください。

⇒【GitHub】remotecom.py

今回は、起動時に自動で実行したいため、Systemdを使用してサービスとして登録して自動で実行します。

手順は以下の通り。

 

1./opt ディレクトリに移動

2.ファイルを作成

3.編集(nano editer)

4.コピペ

これでソースファイルは完成です。

 

サービス化して有効にする

これだけではただプログラムファイルを作っただけに過ぎないので、続いて起動時に実行するようにします。

1.サービスファイルを作って書き込みます。

2.以下をコピペ

3.サービスが登録されたか確認

上記の2行目のように表示されればOKです。

disabledとなっていますが、登録しただけでまだ無効状態です。

4.以下のコマンドで有効化

5.確認のため起動。

これでLINEに対して通知が来たら問題ありません。

 

通知が来ない時

まずは状況の確認方法

これで状況が表示されます。通常、エラー等がある場合はこの方法でエラー文を見てみましょう。

今回の場合は、おそらく多くの方が ipgetやwiringpiがインストールされていないことによるエラーかと思います。

上記のコマンドでインストールができるかと思います。

折角なので再起動して実際に実行されるか確かめてみましょう。

再起動には少し時間がかかるので気長に待ちましょう(数分経過したら多分失敗してます。)

 

動かしてみた。

と、こんな感じになりました。

回路の方はこんな感じ。

電子回路

外装も作ろうと思ったのですが、契約してるワークスペースがお盆休みに入ってしまったので、次回にしたいと思います…

暑いですからね、仕方が無い。

 

最後に

実際に導入してみたところ、ノイズで押されてもないのに通知が来たり、逆に押しても信号が弱くて通知が来ない…なんてことも。

機械学習で波形を覚えさせるのが一番良さそうですね。

今後は、スマートリモコンも同じラズパイに実装して、より生活を快適にしていこうと思います。

第三弾までは考えてあるのでお楽しみに!

 

今回のブログ曲

今回投稿中に聴いていた曲はこちら


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です