見出し画像

4月3日月曜日

始めに

天気:晴れ
気温:19℃
予定:なし

部活計画

科学部でパソコンの使用を求めるにあたり、いくつかのルールなどを考えました!
例えば

・前提として、PC持ち出しは担当、顧問両方がいる場合に限る
・実施は部長、担当が決める
・PC持ち出しを行う場合は1週間前に知らせる
・雨や雪、道路状況が悪い場合は実施しない

こんなかんじです。
顧問の先生が異動されたので、新たな顧問に代わります!
それでも、パソコンを使う許可をとれるように頑張っていきます!

デザート

https://www.family.co.jp/より引用

新発売に目を惹かれて購入したのがこちら!
宇治抹茶フラッペです!

美味しかったのですが、もうちょっと抹茶があってもよかったかな!と思いました!

ラズパイ「監視カメラ装置」

webカメラを使用

以前、webカメラを使って撮影しLINEに送ろうとしていたのですが、うまくいかず…

そこで、今回はこのサイトを参考にスラックに送ることにしました!

【Raspberry Pi】ラズパイとSlackで監視カメラを作る | ヒトリセカイ (hitori-sekai.com)

LINEと違い、最大ファイルサイズが大きいので高画質で送ることができています!

今回のコードはこちらです!

from timeit import default_timer
import requests
import subprocess
from pathlib import Path
import time
import datetime

class SecurityCamera:
    def __init__(self, token, channel):
        self.token = token
        self.channel = channel

    def send_message(self, text):
        url = "https://slack.com/api/chat.postMessage"
        data = {
        "token": self.token,
        "channel": self.channel,
        "text": text
        }
        requests.post(url, data=data)

    def send_picture(self, imgpath):
        url = "https://slack.com/api/files.upload"
        data = {
        "token": self.token,
        "channels": self.channel,
        # "initial_comment": "This is a cat"
        }
        files = {'file': open(str(imgpath), 'rb')}
        requests.post(url, data=data, files=files)

    def capture(self):
        subprocess.run(['fswebcam', '--no-banner', '-F', '50', str(Path(__file__).parent.joinpath('image.jpg'))])

if __name__ == '__main__':
    time.sleep(30)  # wait time for stand up raspi system 

    token = 'Slack App Token'  # 作成したAppのToken
    channel = 'channel ID'  # Slack ChannelのID 

    cam = SecurityCamera(token=token, channel=channel)  # インスタンス 
    cam.send_message('起動')  # 起動メッセージ送信

    try:
        while(True):  # 無限ループ
            dt_now = datetime.datetime.now()  # 現在時刻の取得
    
            if dt_now.minute%10==0 and dt_now.second==0:  # 10分おきの条件分岐
                cam.send_message(dt_now.strftime('%Y年%m月%d日 %H:%M:%S'))  # 撮影時刻をメッセージ送信
                cam.capture()  # 画像撮影
                cam.send_picture(Path(__file__).parent.joinpath('image.jpg'))  # 画像送信
                time.sleep(30)

    except KeyboardInterrupt:
        print('stop!')
        cam.send_message('停止')  #停止メッセージ送信

以下のところには自分のTokenIDをいれてください!

token = 'Slack App Token'  # 作成したAppのToken
channel = 'channel ID'  # Slack ChannelのID

ラズパイを使った装置が初めて完成しました!
これからも様々なことに挑戦したいです!

最後に

今日のkaigaraはこんなかんじでした!
今日から入社、入学の方が多いのでしょうか?
新しい生活に心が躍るかもしれませんが、犯罪には気をつけてくださいね!

この記事が気に入ったらサポートをしてみませんか?