【ラズパイで猫ちゃんカメラ】 その5 10分毎撮影しLINEに送信する【python】

前回、LINE Notifyを使って簡単に画像を送ることができました。次は、定期的にLINEに画像を送る下準備として、定期的に動作させる方法を考えてみたいと思います。 pythonでプログラムを書いていきます(^o^) 構想だけ(というか実装できる気がしない) こちらの記事を参考にして、10分ごとに写真を撮り、前回写真と差分があればLINEする というのも考えました 送る画像を減らせてAPIの節約になることと、猫の動きがわかるメリットがありますが、日暮れで暗くなった場合にしきい値が変わるので誤って撮ってしまいそうでした ですので、実装やめました(てかできない) なので、変化ありなしに関わらず、10分ごとに写真を撮ってLINEすることにします time.sleep()はイマイチ イマイチというのは、今回の用途には合わないということです 真っ先に思いつくsleepは例えば10分止める場合は以下のように書けます import time time.sleep(600) # 600秒(=10分)スリープ イマイチなところは、処理を止めてしまうのでその間に他のことができなくなってしまうことです お安いWEBカメラ 10分スリープして、直後に撮影をすると画像が真っ暗になりました お安いWEBカメラにはシャッター時間を長くとって明るさを確保しないと画像が暗いということがよくあるようですが、私の数年前のWEBカメラも漏れずそんな感じみたいです 撮影する少し前に起動して、明るくなったら撮影する必要があります というわけでsleepは却下〜 起動処理は以下記事内にあるこの文↓ ret, frame = capture.read() タイマー割り込み? → 無い😇 別の方法としてタイマー割り込みを考えてみます 割り込みであればメインループでカメラを起動しておき、時間が来たら割り込みの処理を実行する(撮影する)ため明るさの問題は回避できそうです 10分毎に割り込み処理が入るようにすれば、10分毎の動作が可能です し・か・し どうやらラズパイにはタイマー割り込みがない模様・・・(pythonで書く場合) こちら↓の方が質問をされています 残念〜 python以外(Cとか?)で制御するならできなくは無さそうですが、敷居はとっても高そうです 割り込みはありますが、外部入力でGPIOに変化があったことをトリガーにする動作なのでタイマー割り込みではありません メインループ内で時間を測る 割り込みが使えないので、正確な時間は測れ無さそうです ですが、10分毎に動作のように分オーダーの時間であれば数秒程度の誤差なら全く問題にならなそうです というわけで、メインループ内で時間を測ることにしました import time old = time.time() # 現在時刻取得(sec) while(True): # main loop time0 = time.time() # 現在時刻取得 delta = time0 - old # 差分 if delta > 600: # 差が600sec(=10分)以上だったら print(delta) # 確認 old = time0 # 古い値を保持 はじめにoldに現在時刻を取得して格納します...

2021/10/05 · Last updated on 2023/09/23 · 1 min · 90 words

【ラズパイで猫ちゃんカメラ】 その4 ラズパイからPythonでLINEする(メッセージ、画像)LINE Notify

前回、Twitterのデベロッパーは却下されてしまったので別の方法を模索する中、LINE Notifyを使ってみることにしました。 こちらはAPI取得が楽ちんです。 自分のLINEや、LINEグループに画像を送るだけの今回のような用途には、こちらの方が適しているかもしれませんね! トークンの取得 こちらでトークンを取得します iPhoneからだとアクセストーン発行ボタンが見えませんでしたが、デスクトップモードにしたら見えました ご注意ください(^^) ドキュメントを見ると、トークンは一人当たり100個までのようです まずはメッセージを送ってみる【Python】 まずはメッセージだけを送ってみたいと思います プログラムはこれだけ↓ import requests token = 'あなたの取得したトークン' api = 'https://notify-api.line.me/api/notify' message = 'Hello!! message check!!' # 辞書型で記載 headers = {'Authorization': 'Bearer'+' '+token} data = {'message': message} requests.post(api,headers=headers,data=data) たったこれだけでメッセージが送信できてしまいます 「あなたの取得したトークン」と書かれているところに、取得したトークンを記載します 本当は、トークンはOSの環境変数において読み込んだほうが良いらしいですが、ここではしません(以下参照) 次に画像を送ってみる【Python】 カメラ画像を送りたいので、これが本来の目的です jpeg画像を用意して、以下のプログラムを実行すればLINEに画像を送ることができます ここでは、ラズパイのデスクトップにtest.jpegという画像データをおいて、それを送信します 画像だけを送ることはできないようです(メッセージとセットで送る) import requests token = 'あなたの取得したトークン' api = 'https://notify-api.line.me/api/notify' images = '/home/pi/Desktop/test.jpeg' # 画像のフルパスを記載 形式はjpgかjpegかpng message = 'Send image!!' # 辞書型で記載 headers = {'Authorization': 'Bearer'+' '+token} data = {'message': message} files = {'imageFile': open(images,'rb')} # バイナリ形式(テキスト以外) requests....

2021/09/15 · Last updated on 2023/09/23 · 1 min · 97 words

【ラズパイで猫ちゃんカメラ】 その3 Twitterのデベロッパー申請【却下😢】

前回、twythonが入っていることは確認したので、今回はtwitterのデベロッパー申請をします。 twitter APIを使用するために必要です。 で・す・が! 却下されました😢 ググると、簡単に通った方と落ちている方の両方が散見されますが、一応記録として残しておきます・・・ 申請には以下を参考にさせていただきました(^^) 時系列 09/09 アカウントを新規作成(猫ちゃんカメラ用)、デベロッパー申請 09/09 23:49 review中 09/10 02:58 追加情報くれ(これは前情報通り) 09/10 11:54 返信 09/10 22:03 更に追加情報くれ 09/11 00:26 返信 09/11 03:57 却下 Account Application Not Approved 追加情報をくれというメールが2回来ました Twitterからの返信レスポンスはよく、夜に返信すればその夜中に帰ってきました(時差) review中 申請するとすぐこんなメールが来ました 追加情報くれ 申請時の英作文(200文字)ではよくわからなかったから、もうちょっと詳しく教えて的なメールが来ました (そもそもその英作文も英語で書く必要が無いとの意見も!?) だいたい内容的には、こんな感じ APIを使う目的は? どうやって分析するか? ツイートとかする場合、どうやって共有する? 公開するなら、どうやってやる? それを踏まえて以下のように返信しました APIを使う目的は? 防犯カメラを作りたい。そのためにAPIが必要(ざっくり)※猫ちゃんカメラじゃなくて防犯カメラとしています(似たようなもんなので) どうやって分析するか? 分析しない ツイートとかする場合、どうやって共有する? 使わない 公開するなら、どうやってやる? 公開しない さらに追加情報くれ さらに、よくわからないからもっと教えてとメールが来ました 下の方には太字で、「必要な情報が得られないと受け入れられません!!!」とあります👅 質問内容は更に詳しく説明されている感じです 1つ目の問に対しては、内容は最初の返信とさほど変わりませんが、文言を変えてより詳しく説明しています(すべてgoogle翻訳!) 3つ目の「ツイートする?」の問いには、画像を自動でアップロード(ツイート)します、としました(最初の返信と回答を変えました←まずかったかな・・・) そして却下へ〜 Account Application Not Approved😢 ああ、すぐに来ましたよ Not Approved ああ、厳しいものよ 今更思いますが、向こうの聞きたかったことと返信したことがすれ違っていたのかもしれませんね(泣) はっきりしたことは不明なのですが、同じアカウントで再申請はできないっぽいです(やる気が出ないw)...

2021/09/11 · Last updated on 2023/09/23 · 1 min · 73 words

【ラズパイで猫ちゃんカメラ】 その2 ラズパイからツイートする Twython

前回は接続したWEBカメラをOpenCVを使って起動し、写真を取得することができました 後々、取得した画像をツイートすることを考えているので、今回はラズパイからツイートをしてみたいと思います Twitterに画像をポストすれば、画像管理のために自前で鯖立ても必要無く、メンバーを招待することも楽です ツイートにはTwythonが簡単とのことなのでチャレンジしてみます(^^) こちらを参考にさせていただきました(^^) まずは最初から入ってることもあるようなので、以下のコマンドでチェックします sudo pip3 list twython 3.7.0 がすでに入ってました 次は、ラズパイからtwitterに接続するためにAPIが必要なので、デベロッパーの申請です。 なのですが・・・・それは次の記事で!

2021/09/11 · Last updated on 2023/09/23 · 1 min · 14 words

【ラズパイで猫ちゃんカメラ】 その1 WEBカメラを繋いで起動してみる OpenCV

前回はものを集めてSDカードにRaspberry Pi OSを書き込み、リモートデスクトップまでやりました。 今回はカメラを繋いで起動までしてみます(^^) 今回からはmacよりリモートデスクトップして作業します(余談あり) WEBカメラの認識 まずはじめに、カメラ(USBデバイス)を認識しているかチェックします ラズパイが起動した状態で、空いているUSBポートに差し込んでいます 使っているWEBカメラはこちら だいぶ古いですねw 最大解像度 2048 × 1536 なので 4:3 ですね ラズパイでターミナルを開き、以下を入力してUSBデバイスをチェックします lsusb 一番上に Elecom Co., Ltd とあるので認識してるっぽい おk 使っているミニディスプレイはこちら 制御にはOpenCVを使う ググってみると、webカメラの制御にはOpenCVを使っている事例が多かったので真似します OpenCVはPythonで書くので、まずはラズパイに入っているPythonのバージョンを確認します Python2と3が入っていますが、Python3を使います ターミナルで以下を入力してPython3のバージョン確認します python3 -VV Python 3.7.3 でした 忘れてましたが、パッケージをインストールする前に以下を脳死で実行してラズパイを最新にします sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade sudo rpi-update sudo reboot OpenCVをインストールする こちらを参考にさせていただきました(^^) 非公式のビルド済パッケージ(opencv-python)をインストールします 上から順に実行します sudo pip install --upgrade pip sudo apt install libavutil56 libcairo-gobject2 libgtk-3-0 libqtgui4 libpango-1.0-0 libqtcore4 libavcodec58 libcairo2 libswscale5 libtiff5 libqt4-test libatk1....

2021/09/07 · Last updated on 2023/09/23 · 1 min · 189 words