前回でラズパイで気温・湿度が取得できたので、この情報をGoogleスプレッドシートに記録します。
Googleスプレッドシートへ書き込むためにgoogleの設定を行う
APIの設定
Googleスプレッドシートへ記録するために、GCP(Google Cloud Platform)を使用します。
クラウドテクノロジーに触れる良い機会です。
以下のリンクからGoogleスプレッドシートへ記録するためのAPI(Aplication Interface)を有効にします。
プロジェクト作成
このまま「続行」ボタンを押下します。
このまま「認証情報に進む」ボタンを押下します。
この画面に遷移しますが、キャンセルします。
apiの有効化
キャンセル後、左ペインの「ダッシュボード」リンクへ遷移し、「+APIとサービスを有効化」リンクをクリックします。
APIライブラリへ遷移します。
Google Drive APIを検索し、有効化します。
Google Sheet API(Google SpreadSheet APIではない)も同様に検索し、有効化します。
サービスアカウント作成&キー取得
APIを有効にし、サービスアカウント(APIを呼び出す際に使用するユーザ)を作成し、キーを取得します。
「APIとサービス」画面から「サービスアカウントを管理」リンクをクリックします。
「サービスアカウント」画面で「+サービスアカウントを作成」リンクをクリックします。
「サービスアカウントの作成」画面に遷移するので、サービスアカウント名を入力して「作成」ボタンを押下します。
今回は、サービスアカウント名を「dht22_spreadsheet」にしました。
※サービスアカウント名を入力すると、サービスアカウントIDが自動で作成されます。
このIDは後ほど、googleスプレッドシートの共有先として登録します。
省略可の画面はデフォルト値のまま完了で構いません。
作成が完了したら、作成されたサービスアカウント名のリンクをクリックします。
サービスアカウントの画面で「鍵を追加」プルダウンから「新しい鍵を作成」を選択します。
jsonを選択し、作成します。
お使いのPCにjsonファイルがダウンロードされるため、大切に保管します。
Googleスプレッドシートの設定
まずはGooleスプレッドシートを作成します。
今回は気温・湿度ブックとし、日付・気温・湿度列をあらかじめ作成しておきました。
作成したら「共有」ボタンを押下します。
共有するユーザにサービスアカウントを作成した際のサービスアカウントIDを入力します。
入力すると、候補がプルダウンで表示されるため、候補を選択します。
次画面に遷移するため、「送信」ボタン押下します。
※お使いのgmailにメール送信のエラー通知が来ますが、気にしないでください。
これでGooleスプレッドシートの設定も完了です!
ラズパイの設定
ラズパイの設定をしていきます。
ライブラリインストール
スプレッドシートへの操作及び認証ライブラリをpythonにインストールします。
$ sudo pip install gspread
$ sudo pip install oauth2client
サービスアカウントキー(jsonファイル)配置&プログラム作成
サービスアカウント作成時に取得したキー(jsonファイル)を配置します。
今回は、dht22_spreadフォルダの直下にscpで配置しました。
スプレッドシートへのアクセスは前回取得したライブラリのソースを編集します。
$ git clone https://github.com/kskt81/dht22_spread/
$ cd /dht22_spread
$ sudo vi dht_to_spreadsheet.py
GDOCS_OAUTH_JSON = 'your SpreadsheetData-*.json file name'
↓
GDOCS_OAUTH_JSON = './アップロードしたjsonファイル名'
※ファイルのフルパスを指定します。
GDOCS_SPREADSHEET_NAME = 'your google docs spreadsheet name'
↓
GDOCS_SPREADSHEET_NAME = '作成したスプレッドシートのファイル名'
これで準備完了です。
プログラム実行
$ sudo python ./dht_to_spreadsheet.py
Logging sensor measurements to 気温・湿度記録 every 30 seconds.
Press Ctrl-C to quit.
Temperature: 26.5 C
Humidity: 70.6 %
Wrote a row to 気温・湿度記録
実行できました!
Googleスプレッドシートを確認します。
やりました!
無事に登録されています。
30秒に1回登録を続けるので、続けて記録し、グラフ化して遷移を確認することもできます。
お疲れ様でした!
※PR※
プログラミングがわからない。何から始めてよいのかわからないという人にはスクールから始めるのもおすすめです!まずは体験から!
コメント