田中はゆるく生きたい

カメラに物体が映った時にメールを送る

その他

https://www.tapun.net/raspi/raspberry-pi-ssmtp-mutt
(参考)

前回。
[blogcard url=”https://tanakaryo.net/memo/rasp-camera2″]

やりたいこと
①カメラに物体が映ったら写真を撮りラズパイ内に保管。
②写真をメールで送る。
③容量がラズパイにあまりないので写真を削除。

①motion.confをいじる。

[shell]
target_dir /var/motion
output_pictures on
on_event_start /home/pi/sentmail.sh
[/shell]

写真が保存されて /var/motionに写真が保存される。
かつここでsentmailというシェルを起動させるようにする。

②~③
/home/pi にシェルスクリプトとrubyのプログラムを作る。

sentmail.sh

[php]
#!/bin/bash
sh /home/pi/shellmail.sh
rm /var/motion/*
ruby /home/pi/completion.rb
[/php]

シェルスクリプトとrubyでメールを飛ばす方法を試しかったのでややこしいことになっている。

以下流れ
shellmail:保存した写真を$DATE指定で携帯へメールで送る。
rm:ラズパイの容量の関係で写真をすべて保存するのはいかがなものかと思い、全消去。
comletion.rb:写真を削除したことを携帯のメールに知らせてくれる。

[php]
#!/bin/bash
DATE=$(date +"%Y%m%d%H%M")
mutt -s "raspberryから報告です" yourmail -a /var/motion/$DATE*.jpg < /home/pi/mailmessage.txt
[/php]

mailmessage.txtにはメール本文に記述したい内容を入れます。

comletion.rb
[ruby]
require ‘mail’

mail = Mail.new

options = { :address => "smtp.gmail.com",
:port => 587,
:domain => "smtp.gmail.com",
:user_name => ‘yourmailaddress’,
:password => ‘yourpassword’,
:authentication => :plain,
:enable_starttls_auto => true }
mail.charset = ‘utf-8’
mail.from "yourmailaddress"
mail.to "yourmailaddress"
mail.subject "ラズベリーパイから報告です。(`・ω・´)ゝ"
mail.body "画像の削除を行いました"
mail.delivery_method(:smtp, options)
mail.deliver
[/ruby]