BETA

【Raspberry Pi】インターホンが押されたらSlackへ通知する仕組みを作る

投稿日:2020-05-10
最終更新:2020-05-10

ステイホーム中の運動といえば、我が家はNetflix見ながらのローラー台です。
今とても安全に運動できるのでホント助かっています。

ただ、これやっているとイヤホンしていることもあってインターホンのチャイム音に全く気がつけないんですよね。。。このままでは、宅配業者を返してしまうこともあり大変申し訳ない。
そこで、「インターフォンが押されたらSlackへ通知する仕組みを作ればいいじゃないか」 となり、ラズパイとセンサーを組み合わせて作ってみました。
これならチャリもがいていても、スマートウォッチの通知でバッチリ気がつきます。

どのように検知させるか?

我が家はインターホンが押されると、親機のディスプレイが点灯します。

明るさの変化を検知できるフォトレジスタを使ったセンサーなら、簡単に検知できそうです。
ネットで、明るさの変化をデジタル出力するセンサーを見つけたのでこれを使うことにしました。
3.3Vで駆動させると、暗くなると3.3V、明るくなると0Vになります。
つまみは検知する明るさの調整もできます。安いのに素敵なセンサーです。

用意したもの

ラズパイとセンサーの接続


インターホン親機へセンサーを固定


仮固定なので適当です。。。
インターホンを押して、センサーがちゃんと検知するかつまみで調整をします。
(このセンサーは検知すると基盤のLEDが点灯するので、調整がとても簡単!)

センサーが検知したらSlackへ通知するコード

Slackで「Incoming Webhook」の設定が済んでいることと、slackwebモジュールのインストールが完了していることを前提にしています
※現在は非推奨になっている「カスタムインテグレーション」で作成した「Incoming Webhook」で動作確認しています。

/home/pi/chime2slack.py

import RPi.GPIO as GPIO  
from time import sleep  
import slackweb  

SENSOR = 4  
GPIO.setwarnings(False)    
GPIO.cleanup()   
GPIO.setmode(GPIO.BCM)  
GPIO.setup(SENSOR, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)  
SLACK = slackweb.Slack(url="https://hooks.slack.com/services/xxxx/xxxx/xxxx") #Incoming Webhookのurlをここへ記述します  

while True:  
    if GPIO.input(SENSOR) == GPIO.LOW:  
        SLACK.notify(text="チャイムが鳴りました!")  
        sleep(60) #連続で通知されないようにスリープを入れる  
    else:  
        pass  
    sleep(0.01)  

Slack通知イメージ

OS起動時にchime2slack.pyを実行させる

OS起動時に自動実行すれば、都度実行させなくていいので運用がラクです

chime2slack.pyに実行権限を追加する

$ chmod +x /home/pi/chime2slack.py  

rc.localの編集

$ sudo vi /etc/rc.local  

rc.localの中身

rc.localに書くやり方は古いけど手軽です

#!/bin/bash -e  
sudo -u pi /usr/bin/python3 /home/pi/chime2slack.py &  
exit 0  

動作確認

OSを再起動して、インターホンを押してSlackへ通知がきたらOKです!

所感

とてもイイです。安いセンサーだけど問題なく使えています。
欲を言えば、Echo showにも通知させたい。。。
最新型インターホンがある家は、わざわざこんなことしなくてもスマホ通知できると思いますが、
我が家のようなインターホン使ってて同じ悩みがある人は、簡単に実装できるのでオススメです。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

しがないインフラエンジニア屋さんです。いままでローカルのメモ的なテキストでしかアウトプットしてなかったので、ちょっとずつここに記していくよ(不定期更新)

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう