ITmedia NEWS > STUDIO >

動体検知で撮影した画像をLINEに自動送信する名刺サイズの超小型PC「ラズパイ」で遊ぶ(第11回)(2/3 ページ)

» 2019年12月27日 07時00分 公開
[岩泉茂ITmedia]

LINEに画像とメッセージを送信するように設定する

 ではLINEに静止画とメッセージを送信するように設定しましょう。設定場所はmotion.confの「on_picture_save」というところです。

 Ctrl+Wで検索したら、以下のように記述します。

on_picture_save curl -X POST -H "Authorization: Bearer (発行されたトークン)" -F "message = ラズパイから画像を送ります" -F "imageFile=@%f" https://notify-api.line.me/api/notify

 「Authorization: Bearer」のあとには半角スペースが入ります。これは前回でも解説した方法と同じで、curlコマンドで送信するやり方です。「imageFile=@%f」にある「%f」はmotionが出力する絶対パスでのファイル名です。

 以上の設定が終了したら、motionを起動しましょう。

$ sudo motion

 すると、動きを検知したときにLINE宛に画像が送信されます。

photo まずはログインからLINE宛に画像が送信されてきた

 画像が送られてこない場合は、motionが起動しているかコマンドで調べます。

$ service motion status

 これを実行したとき、以下のように表示されていれば動作しています。

● motion.service - LSB: Start Motion detection
   Loaded: loaded (/etc/init.d/motion; generated)
   Active: active (exited) since Mon 2019-11-18 10:41:53 JST; 1min 4s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 319 ExecStart=/etc/init.d/motion start (code=exited, status=0/SUCCESS
11月 18 10:41:53 raspberrypi systemd[1]: Starting LSB: Start Motion detection...
11月 18 10:41:53 raspberrypi motion[319]: Not starting motion daemon, disabled v
11月 18 10:41:53 raspberrypi systemd[1]: Started LSB: Start Motion detection.

 この表示の3行目にある、「Active: active (exited)」が「motionが動いている」という意味になります。上記の表示が出るのに画像が送られていないときは、トークンの文字列が正しく記述されているか確認してみてください。また、重複起動していると正常に動作しない場合がありますので、以下のように入力して、重複を確かめましょう。

$ ps -def | grep motion

 以下のように表示されていれば問題ありません。

root       614     1 12 10:59 ?        00:00:34 motion
pi         758   597  0 11:04 pts/0    00:00:00 grep --color=auto motion

 コマンドを入力すると上記の内容が表示されます。なお、起動を確かめようとして複数回「motion」コマンドを入力すると、二重起動してしまうことがあります。「root」の行にある「motion」が2つある場合は重複しています。

root       557     1 11 11:27 ?        00:00:17 motion
root       866     1  0 11:30 ?        00:00:00 motion
pi         878   811  0 11:30 pts/0    00:00:00 grep --color=auto motion

 といった場合です。この場合は「sudo pkill motion」と入力して、motionのプロセスを削除したら、「sudo motion」で起動してもよいでしょう。ラズパイ自体を再起動させるのも1つの手です。

 ちなみに筆者の環境でのテスト結果ですが、motionが何枚も画像を作成してそれを一度にLINEに送ろうとした場合、送信の間隔があまりにも短いと届かないことがありました。LINE当てに画像が届いていないときはこれに引っかかった可能性もありますので、しきい値を大きくするなどして調整してみてください。

 なお、ラズパイ起動時にmotionを自動起動させるためには、

$ sudo nano /etc/rc.local

 として「rc.local」ファイルを開いたら、「# By default this script does nothing.」のあとに「motion &」と記述しておくと、ラズパイ起動時に自動起動します。

Copyright © ITmedia, Inc. All Rights Reserved.