#距離センサで防犯システムをDIY
##やりたいこと
犯罪都市千葉県で自分の家・家族を守り抜きたい。
しかし私にはALS●Kと契約するお金がない。そう、自分で守るしかないのだ。
そう、留守中にセンサの前を人が通り過ぎたら、slackで知らてくれるシステムを自分で作るしかないのだ。
##用意したもの
ESP-WROOM32(ESP32-DevKitC)
距離センサGP2Y0E03
RaspberryPi
##やり方
ESP-WROOM32に距離センサを接続し、ものの接近を監視する。
接近を検知したらRaspberryPiにHTTP POSTする。
HTTP POSTを受けてRaspberryPiはSlackに投稿する。
不審者を捕まえる or 通報する。
###システムイメージ
##作る
###ESP-WROOM32とGP2Y0E03を接続する
GP2Y0E03はI2C通信でデジタル出力できるのでESP-WROOM32とはI2Cで接続する。
ESP-WROOM32のI2C通信のやり方がよく分からなかったため、
esp-idf/examples/peripherals/i2c/のREADME.mdを確認した。
•Pin assignment:
◦slave :
◾GPIO25 is assigned as the data signal of i2c slave port
◾GPIO26 is assigned as the clock signal of i2c slave port◦master:
◾GPIO18 is assigned as the data signal of i2c master port
◾GPIO19 is assigned as the clock signal of i2c master port
今回はEWP-WROOM32をmasterにしたいので、GPIO18をdata signal、GPIO19をclock signalとして使用する。
ESP32-DevKitCの回路図を確認すると次のようになっている。
またGP2Y0E03のアプリケーションノートは次のようになっている。
そのため、接続は次のようになる。
####完成
ドコモさん、ごめんなさい。
###検出条件を決める
####センサで物体との距離を取得するプログラムの作成
ソースコード
esp/i2c/main/i2c_example_main.c
※ビルドにはesp-idfの環境が必要
####人が通るときの距離
こんな感じの廊下に設置してみた。
プログラムで人が前にいるときの距離を測定する。
63cmから変化があれば、人が通過したとみなすことができそうだが、
とりあえず__40cm__以下を人が通る時の距離としよう。
###防犯システムに仕上げる
####人の検知とHTTPリクエストをするプログラムの作成
#####ESP-WROOM-32側ソースコード
security_system/main
sensor.c : センサーで距離を測定する
http_request.c : Wifiに接続し、HTTP POSTを行う
main.c : 100ms毎に距離を測定し、40cmを下回った場合にRaspberryPiにHTTP POSTする
※ビルドにはesp-idfの環境が必要
#####RaspberryPi側ソースコード
RaspberryPiはHTTPリクエストを受けられるように事前にWebサーバーにしておく。
index.php : HTTP POSTリクエストを受け、slack投稿プログラムを呼び出す
slack_sec.py : slackerを利用しslackに投稿する
##テスト
センサの前を通りすぎてみた。
通知が来た!!
テスト成功‼︎
##最後に
これを留守中に起動しておけば、侵入者に気づくことができる。
さらに複数個設置すればより信頼性は上がるだろう。
侵入者をどうやって捕まえるかは今後の課題。
##参考サイト
technology memo
Raspberry Pi3 で I2Cセンサーを使う
WROOM-32でPCA9624PWを動かす - i2c test
大変お世話になりました。
ありがとうございます。