![見出し画像](https://assets.st-note.com/production/uploads/images/101983446/rectangle_large_type_2_48db312135de4f5d10063113b2cb367d.png?width=1200)
Photo by
mericanadesico
3月28日火曜日
初めに
今日の天気:晴れ
気温:14℃
予定:塾なし!
ラズパイいじり
・ラズパイでwebカメラを使って撮影し、LINEに送るプログラムを書いた(チャットGPTが!)
↑エラーなく実行できたが、LINEに送れていない
# -*- coding: utf-8 -*-
import os
import cv2
import requests
import datetime
import time
import gzip
# LINE Notifyのトークンを設定する
LINE_NOTIFY_TOKEN = '私のLINEトークン'
# LINE NotifyのAPIのURLを設定する
LINE_NOTIFY_API = 'https://notify-api.line.me/api/notify'
# 写真を保存するディレクトリのパスを設定する
PHOTO_DIR = '/home/pi/photos/'
# 圧縮するファイルのパス
file_path = '/path/to/file.txt'
# 圧縮後のファイルのパス
compressed_path = '/path/to/file.txt.gz'
# ビデオキャプチャの設定
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
# LINE Notifyにメッセージを送信する関数
def send_line_notify(message, image_path=None):
headers = {'Authorization': f'Bearer {LINE_NOTIFY_TOKEN}'}
payload = {'message': message}
files = {}
if image_path is not None:
files = {'imageFile': open(image_path, 'rb')}
# requests.postの戻り値を表示することでエラーがあるか確認できる
r = requests.post(LINE_NOTIFY_API, headers=headers, data=payload, files=files)
print(r.status_code, r.text)
# 写真を撮影する関数
def capture_photo():
# ファイル名を設定する
dt_now = datetime.datetime.now()
photo_name = os.path.join(PHOTO_DIR, dt_now.strftime('%Y%m%d%H%M%S') + '.jpg')
# フレームをキャプチャする
ret, frame = cap.read()
# フレームが空でないことを確認して、写真を保存する
if frame is not None:
# 保存するディレクトリが存在しない場合は、作成する
if not os.path.exists(PHOTO_DIR):
os.makedirs(PHOTO_DIR)
# ファイルを圧縮する
with open(file_path, 'rb') as f_in:
with gzip.open(compressed_path, 'wb') as f_out:
f_out.writelines(f_in)
# 写真を保存する
cv2.imwrite(photo_name, frame)
# 保存した写真を読み込む
img = cv2.imread(photo_name)
# 画像のサイズを変更する
img = cv2.resize(img, (640, 480))
# 画像を上書き保存する
cv2.imwrite(photo_name, img)
# 写真のファイル名を返す
return photo_name
# フレームが空の場合は、Noneを返す
return None
# メイン処理
if __name__ == '__main__':
while True:
# 写真を撮影する
photo_name = capture_photo()
# 写真が撮影できた場合は、LINEに送信する
if photo_name is not None:
print('Sending LINE Notify message...')
send_line_notify('写真を撮影しました。', photo_name)
# 1時間待機
time.sleep(60)
今日のおやつ
・湖池屋プライドポテト通の黒胡椒を食べた
↑美味しかった
![](https://assets.st-note.com/img/1679995228450-ddeW8iWQfU.png?width=1200)
ポケモンGO
・ポケモンGOをしに公園に行った
↑「火タイプ30匹捕まえる」というミッション大変
![](https://assets.st-note.com/img/1679995299985-8D5yXtsjDU.png)
最後に
今日の一日はこんな感じです!
一日中勉強しようと思っていましたが、さぼってしまいました!
お風呂入ったら頑張ります!
この記事が気に入ったらサポートをしてみませんか?