公開日: 最終更新日:

ラズパイとSlackで自宅水槽監視 – Pythonで自動投稿

前回の記事の続きであるので読んでない人は先にそちらを読むことをおすすめする.

ラズパイとSlackで自宅水槽監視 – 初期設定

 

ラズパイ起動時に自動起動

Raspberry Piが起動したときにmotionを自動起動させたい.

そこで/etc/rc.localをいじる.

これで開かれるファイルの末尾,exit 0より前の行にラズベリーパイ起動時に自動的に実行させたいコマンドを入力してやる.

具体的には以下の通り.

管理者権限で実行されるらしいのでsudoは不要だ.

ついでに今後motionによって書き出される画像を自動破棄するにあたってディレクトリの権限を変えて置かなければならないのでその周りのことも書いておく.

 

Pythonコード

 

今回実行するPythonコードは至って単純である.

これだけである.

PythonでSlackに画像をアップロードする方法

ただしTOKENの部分は自分のSlack APIのトークンにしておかなければならない.

今回はmotionの方で引数としてファイル名を与えてくれるのでsys.argv[1]でそれを指定してやる.

 

予めmotionの方は”on_picture_save python3 /home/pi/SlackPochi/main.py %f”で設定してあるのでこれで一応動作確認ができるはずである.

/tmp/motion/以下に画像ファイルが出力され,それがSlackに投稿されているかを確認.

無事Slackの方に投稿が来ている.

 

ということでこれでひとまず完成である.

 

cronで定期的にコマンド実行

 

増え続けるファイルを削除

 

残る問題としては「Slackに画像を投稿した後にも/tmp/motion/以下にmotionで撮影した画像が溜まってしまう」ということがある.

これに関しては自動で定期的にコードを実行するcronを使って設定してやる.

(ちなみにこれ -e を -r でタイプミスすると設定が全部消えるらしいのであまり使わないほうが良い)

 

エディタが開いたら末尾に

を追加してやる.

これは毎時0分にfind以下のコマンドを実行するという意味.具体的には拡張子がjpgのもの全てを削除するというもの.

何かめちゃくちゃ大量に撮影していてメモリをすぐ圧迫してしまうというのならば

のようにすれば5分毎にファイルを削除することができる.詳しくはcronでググろう.

 

 

自動でmotionを起動・終了

 

ヒョウモントカゲモドキにも当然サーカディアンリズムがあるためタイマー制御によって照明のON/OFFを行っている.照明が暗い状態でもノイズによってmotionが誤動作し,Slackに真っ黒の画像が大量に連投されてしまったため,照明を点けていない間はmotionを落としておきたい.

そこで同じくcronを用いてmotionの起動及び終了を行う.

でエディタが開いたら

を記述してやればよい.

これで0時にmotionが終了,17時に起動するはずである.

おわりに

 

2回に渡ってラズパイとSlackを用いた水槽監視システムを構築した.

個人的には“あくあたん”のようなかっこいいページがほしいところだがまず早急に対処しなければならない問題に対してはこのくらいでいいだろう.残るは室温などのモニタリングをどうするかだがそれはおいおいやっていくとする.

 

1件のコメント

  1. ピンバック:ラズパイとSlackで自宅水槽監視 – 初期設定 – Kim Biology and Informatics

コメントを残す

メールアドレスが公開されることはありません。