Raspberry Pi 4Bで気温・湿度を取得してGoogleスプレッドシートに記録する(DHT22)後編

自宅IoT

前回でラズパイで気温・湿度が取得できたので、この情報をGoogleスプレッドシートに記録します。

Googleスプレッドシートへ書き込むためにgoogleの設定を行う

APIの設定

Googleスプレッドシートへ記録するために、GCP(Google Cloud Platform)を使用します。
クラウドテクノロジーに触れる良い機会です。

以下のリンクからGoogleスプレッドシートへ記録するためのAPI(Aplication Interface)を有効にします。

Google Cloud Platform
Google Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure ...
プロジェクト作成

このまま「続行」ボタンを押下します。

   このまま「認証情報に進む」ボタンを押下します。

この画面に遷移しますが、キャンセルします。

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※

プログラミングがわからない。何から始めてよいのかわからないという人にはスクールから始めるのもおすすめです!まずは体験から!

コメント

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