センサーで検知した写真をslackで送信
ターゲット
- ラズベリーパイを始めた方(これから何を作ろうか迷っている方)
- pythonプログラムを学び始めた方
- モーションセンサー(人感センサー)の仕組みを知りたい方
- カメラの仕組みを知りたい方
- 写真をアプリケーションに送信したい方(ここではslackへ送信)
準備
- ラズベリーパイ(Raspberry Pi 3 Model Bを利用)
前提
- ラズベリーパイの初期設定が完了していること
- 自宅のネットワークに接続できる状態であること
- ssh接続でリモート接続できること
- pythonプログラムを行ったことがあること
- モーションセンサーを持っていること
- USBカメラを持っていること
- slackでワークスペースが作成されていること


レベル
- 中
手順
- ラズベリーパイとモーションセンサーを接続します。
- USBカメラをUSBに接続する。
- USBカメラが利用できるか確認します。
下記のコマンドで接続したUSBカメラが認識されます。
$ lsusb
下記のコマンドでビデオデバイスが追加されているか確認します。
$ ls /dev/video*
下記のコマンドで必要なパッケージをインストールします。
$ sudo apt-get install fswebcam
下記のコマンドでカメラを起動します。
$ fswebcam image.jpg
※コマンドを実行したディレクトリにファイルが作成されていればOKです。 - slackへ画像を送信できるように設定します。
ブラウザでhttps://api.slack.com/apps にアクセスします。
Create New App → From scratch
App Name(例: motion-bot)を入力し、対象のワークスペースを選択 → Create App
左メニュー「OAuth & Permissions」
Bot Token Scopes に以下を追加
・chat:write(メッセージ投稿)
・files:write(ファイルアップロード)
「OAuth & Permissions」ページ上部の「Bot User OAuth Token」をコピー(xoxb- で始まる)
※重要:トークンは機密情報です。Git等に絶対にコミットしないでください - slackを開きボットを投稿先チャンネルに追加します。
- 環境変数にtokenとchannel-nameを追加する。(例:.bashrc)
export SLACK_BOT_TOKEN=’xoxb-xxxxxxxx’
export SLACK_CHANNEL=’CABCDEFG’ もしくは ‘#channel-name’
反映: source ~/.bashrc - モーションセンサーに手をかざすと写真を撮ってslackへ連携されます。プログラムは長いので割愛いたします。興味のある方はコメント欄又はお問い合わせよりご連絡ください。

