あさがおIoT観察日記㉑:RaspberryPiで撮った写真をGoogleドライブにアップする【大人の自由研究】

Arduino
この記事は約4分で読めます。


前回まで/次回以降の取り組みはこちらから。

今回はタイムラプス撮影した写真をGoogleドライブにアップロードしてみます。

今回のpythonアプリ完成図

こんな感じ。

ずっと開いていた空白に写真を表示するようにして、タイムラプス撮影用のGUIを追加、実際にタイムラプス撮影を行ってRaspberry Piに写真をどんどん保存していきます。

PyDriveライブラリを使う方法:却下

Google検索で「raspberry pi googleドライブ アップロード」と調べると、「PyDrive」というライブラリを使う方法がたくさん出てきます。

…が、いろいろ引っかかってうまく動かない部分がたくさんあったので、別の方法でやります。

…さすがにGoogle公式に出てるドキュメントの通りにやってエラーが出たときはブチ切れそうになりました…。

rcloneを使う方法

…で、PyDrive以外の方法を模索して見つけたのがこの方法。

詳しくまとめられているブログがあったので詳しくはこちらを参照ください。(疲れたので丸投げするスタイル)

下準備:フォルダの用意

アップロード元・アップロード先のフォルダを決めておきます。

アップロード元はRaspberry Piの「/home/pi/python/asagao_iot/timelapse」フォルダ、
(アプリがタイムラプス写真を保存しているフォルダです)

アップロード先はGoogleドライブに「Asagao_IoT_TimeLapse」というフォルダを作りました。

①rcloneのインストール

 

LXTerminalで

を実行します。

②rcloneの設定

引き続きLXTerminalで

を実行すると、rcloneの設定ができます。

長くなるのと、先のリンク先で紹介されてるリンク先()できれいにまとめてくださっているのでそちらを参照ください。

LXTerminalから

を実行すると、「newest.jpg」ファイルがGoogleドライブの「Asagao_IoT_TimeLapse」フォルダにコピーされました。

ここまで長かった…。

③pythonファイルからシェルコマンドを実行する

しかーし、このrcloneはLXTerminalで使うコマンドです。
でも、pythonのアプリで呼び出してアップロードしたい。

なので、python上でシェルコマンドを実行する方法を探しました。

osライブラリのsystemコマンドで行けそうです。

 

試しに簡単なpythonプログラムを作って試しました。

先ほどと同様に、「newest.jpg」ファイルがGoogleドライブの「Asagao_IoT_TimeLapse」フォルダにコピーされました。

これで行けそうです。

Arduinoスケッチ

前回から変更ありませんので省略。

pythonプログラム

main_0_1_4.py

だいぶごちゃごちゃしてきたので整理したいところ。

ただ、タイムラプス用のjpgファイルと「newest.jpg」のアップロードに40秒~1分かかっていて、その間GUIがストップしてしまいます。(どちらも1.4MBくらいなんですけどね…)

そのあたり、改善方法をまだ探っています。
ホントはRaspberry Piでタイムラプス動画への加工もしたかったんですがこの速度じゃ動画なんてとんでもないですね…。

→PCからやってみても同じくらい時間がかかりました。インターネット回線の問題みたいですね。
 (うちで使ってるWiMax回線、特にのぼりが遅いので)

mainwondow_0_1_4.py → mainwondow_0_1_2.pyと同じ内容なので省略します。

 


 

もうちょっと続きます。

コメント

タイトルとURLをコピーしました