最近出張が多くて家を開ける機会が多いです。出張先で家の様子をラズパイで確認する方法を考えました。
↓OpenCVで撮影してslackで画像を投稿するプログラムを組んでます。
import RPi.GPIO as GPIO
import sys
import cv2
import time
import requests
TOKEN = 'xoxp-******'
CHANNEL = '*******'
GPIO.setmode(GPIO.BCM)
GPIO.setup(27,GPIO.OUT)
GPIO.setup(17,GPIO.IN)
while True:
if GPIO.input(17) == GPIO.HIGH:
cc = cv2.VideoCapture(0)
rr, img = cc.read()
time.sleep(8)
cv2.imwrite('pic.jpg', img)
files = {'file': open("/home/pi/pic.jpg", 'rb')}
param = {
'token':TOKEN,
'channels':CHANNEL,
'filename':"filename",
'initial_comment': "initial_comment",
'title': "title"
}
requests.post(url="https://slack.com/api/files.upload",params=param, files=files)
else:
GPIO.output(27,GPIO.LOW)
GPIO.cleanup()
OpenCVのインストールは
こちらを参考にしてください。
実はこのままでは自動では撮影しません。17ピンの入力がHIGHの条件つきとなります。
Blinkで17ピンを遠隔操作すればシャッターのタイミングを操作できます。詳しくは
ここ撮りっぱなしでよければ if GPIO.input(17) == GPIO.LOW: にしておけばいいと思います。
応用すれば自走式カメラを遠隔で操作できる・・・かも。