13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ラズパイでポチッと写真を撮ってLINEのグループに送信する

Last updated at Posted at 2019-05-27

経緯とか

  • 実家で飼っている犬の写真を妹が見たがっている
  • 両親は老眼のため、スマホの操作がつらいので、簡単操作で写真を送りたい
  • RaspberryPiにカメラとスイッチつけて、ポチッと押してLINEに通知出来たら楽っしょ

物品購入

RaspberryPi:
すでに持ってた。

カメラ:
Raspberry Pi Official Camera V2 for 3B/2B/B+/A+/B/A ソニー製808万画素CMOSセンサ使用 ラズベリーパイ公式 HDカメラ

タクトスイッチ:
uxcell タクトスイッチ 触覚押しボタンスイッチ モーメンタリ 触覚型 金属 電子部品 ブラック 10個入り

まずはRaspberryPiとカメラで写真を撮ってLINEのグループに通知する

/usr/local/src/camera.sh
#!/bin/bash

# 変数定義
date=$(date +"%Y-%m-%d_%H%M")
save_file="/home/pi/camera/${date}.jpg"
token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

# 写真撮影
raspistill -vf -hf -q 10 -o $save_file

# LINE通知
curl -X POST -H "Authorization: Bearer ${token}" -F "message=''" -F "imageFile=@${save_file}" https://notify-api.line.me/api/notify

※tokenにはLINE NotifyのTokenが入ります。

配線とか

※お試しなのでブレッドボードで適当に接続してます。

タクトスイッチを押すとcamera.shが実行されるようにする

/usr/local/src/camera.py
#!/usr/bin/env python

import RPi.GPIO as GPIO
import time
import os

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

try:
  while True:
    if GPIO.input(14) == GPIO.HIGH:
      os.system('bash /usr/local/src/camera.sh')
      time.sleep(1.0)
except KeyboardInterrupt:
    pass

GPIO.cleanup()

参考:【Raspberry Pi 2 Model B】初めての電子工作 タクトスイッチに挑戦

RaspberryPi起動時にスクリプトを実行させておく

su pi
crontab -e
@reboot python /usr/local/src/camera.py

※piユーザで実行する必要があるため、suしてます。
参考:ラズパイ起動時にスクリプトを実行したい

タクトスイッチを押してLINEに通知させる。

※実家、散らかっております…。なお、写真はモモちゃん(チワワ・4歳)です。

今回の発見

  • LINE Notifyの仕様上、1MB以上のデータは送信出来なかった。何も指定せずに写真を撮ると4.5MBくらいになるので、raspistillコマンドのqオプションを使って、画質を落として撮影するようにした。
  • 「messages」がLINE Notifyの仕様で必須のため、画像だけの投稿が出来なかった。仕方ないので何も文字を入れずにmessagesの値を渡した。
  • タクトスイッチより、もっと押しやすいスイッチを買った方が使いやすかった

今後やりたいこと

  • スイッチとRaspberryPiをハンダで直接、接続する
  • もう少し押しやすいスイッチに変更する
  • 実家の掃除をする
13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?