センサーで検知した写真を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へ連携されます。プログラムは長いので割愛いたします。興味のある方はコメント欄又はお問い合わせよりご連絡ください。

