忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・DIYのブログ!

家のインターホンがなったらスマホにお知らせする方法

最近、外出ができないのでルーフバルコニーで子供遊んでることが多いのですが、長時間いると困ったことがあります。 



インターホンの音がまったく聞こえないのです…。宅配のピンポンをスルーしてしょっちゅう不在表投函になってしまいます。

妻からなんとかならないの?って話がきたのででラズパイでがんばってみましました。





どうも家のインターホンは呼び出しがなると来客のところのLEDが光るみたいなので

ここに光センサーを付けてみることにしました。



ピン配置はVCC→3V、GND→GND、SCL→SCL1、SDA→SCA1へ接続します。
センサーをLEDのところへつけました。



接続したらi2c通信を有効にしてください
sudo raspi-config
※advanced optionsから変更

続いてpython-smbusをインストール
sudo apt-get install i2c-tools python-smbus

通信ができているかは下記コマンドで確認できます。
sudo i2cdetect -y 1

通信ができていれば下記のようになります。
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

インターホンがなりLED点灯を検知したらslackにつぶやく様に
設定しておきます。 →やり方はこちら
取得したIncoming Webhook URLをpythonコードに埋め込んでいきます



mport requests
import json
import smbus
import time
import os


SLACK_URL = "https://hooks.slack.com/services/**********"


while True :
bus = smbus.SMBus(1)
addr = 0x23
lux = bus.read_i2c_block_data(addr, 0x10)
lux2 = (lux[0]*256+lux[1])/1.2
print(lux2)
time.sleep(1)
if lux2 > 20 :
#content = temp2
payload = {
"text": "ピンポーン",
"icon_emoji": ':snake:',
}
data = json.dumps(payload)
requests.post(SLACK_URL, data)
time.sleep(15)

これでインターホンがなるとスマホへ通知するようにできました。
ルーフバルコニーにいても気づくことができます。


一応外出しているときもスマホに通知が来てしまうのですが、その時はあきらめるしかないですね…。











拍手[1回]

PR

コメント

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30