ラズパイで取得したIoTデータをグーグルスプレッドシートに自動記録

じょるブログ

現役理系大学生による大学生に向けた情報サイト

電子工作 ラズベリーパイ API

ラズパイで取得したIoTデータをグーグルスプレッドシートに自動記録

投稿日:2019年2月10日 更新日:

今回はPythonを使って、ラズパイに接続してあるセンサーから取得したデータなどをグーグルスプレッドシートに自動で記載する方法について記載します。
グーグルスプレッドシートに記載することで、スマホなどからそのグーグルスプレッドシートにアクセスすることで、いつでもどこでもデータを確認できます。

 

概要

今回はグーグルAPIを使って、Pythonにより様々な情報をグーグルスプレッドシートに自動記入していきます。これにより、

  • スマートリモコンのプログラムに組み込むことで、エアコンがONかOFFか確認
  • スマートロックのプログラムに組み込むことで、鍵の開閉状況の確認
  • 自作玄関モニターのプログラムに組み込むことで、来客者が何時に来たかを確認
  • ラズパイに取り付けたセンサーと組み合わせることで、定期的にセンサー情報を記載、そのデータを用いて機械学習

など、様々なことができるようになります。

 

環境

  • 端末  ラズベリーパイ3
  • OS rasbian(Linux)
  • Python 3.5.3

Raspberry Pi4 ModelB 4GB ラズベリーパイ4 技適対応品

  

   

手順

API設定

GoogleAPIのサイトでAPIの設定をします。

https://console.developers.google.com/cloud-resource-manager

まず、プロジェクトを作成します。

上記のURLをクリックすると以下のような画面が表示されるので赤丸のところをクリックします。

 

すると以下のような画面が表示されるので、適当にプロジェクト名を記入し作成をクリックします。

 

 

次に、使用するAPIを有効化します。

画面左上のナビゲーションをクリックし、「APIとサービス」→「ライブラリ」と進みます。

 

検索欄にSpreadと入力し、Google Sheets APIを選択して、[有効にする]をクリックします。

 

同様に、検索欄にdriveと入力し、Google Drive APIを選択して、[有効にする]をクリックします。

 

 

続いて、認証情報を作成します。

画面左上のナビゲーションをクリックし、「APIとサービス」→「認証情報」と進みます。

 

「認証情報を作成」→「サービスアカウントキー」と進みます。

 

役割を編集者にし、サービスアカウント名を適当に入力したら作成をクリックします。

 

 

スプレッドシートの設定

作成をクリックするとjsonファイルがダウンロードされるので、その中に記載されている “client_email” のメールアドレスをコピーします。

https://docs.google.com/spreadsheets/create

にアクセスしてGoogleSheetを作成します。

 

スプレッドシートの左上の名前を好きな名前に変更して、右上の共有をクリックすると以下のようにポップアップ画面が表示されるので、先ほどコピーしたメールアドレスを貼り付けて送信をクリックします。

 

 

Pythonのモジュールインストールとプログラム作成

次にグーグルスプレッドシートに記入するためのプログラム(gspred-sample.py)を作成します。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import gspread
from oauth2client.service_account import ServiceAccountCredentials

#変更してください
key_name = '**************.json'
sheet_name = 'グーグルスプレッドシート名'

#APIにログイン
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(key_name, scope)
gc = gspread.authorize(credentials)

#セル'A1'に'TEST'と入力
cell_number = 'A1'
input_value = 'TEST'
wks = gc.open(sheet_name).sheet1
wks.update_acell(cell_number, input_value)

上記のプログラムの ‘key_name’ と ‘sheet_name’ を書き変え、名前を
gspred-sample.py として保存し、先ほどダウンロードされた jsonファイルと共に、ラズパイの同じディレクトリ上にコピーしてください。

 

続いて以下のコマンドをラズパイ上で実行し、必要なモジュールをインストールします。

pip install gspread
pip install oauth2client

以上で実行する準備が整ったので、先ほど作成したプログラムを実行してみてください。

python gspred-sample.py

グーグルスプレッドシート上のA1セルにTESTと記入されたら成功です。

 

 

補足

python3系で実行する場合は、

pip3 install gspread
pip3 install oauth2client

としてモジュールをインストールし、

python3 gspred-sample.py

で実行してみてください。

 

google ads




google ads




-電子工作, ラズベリーパイ, API

執筆者:


  1. 高橋 より:

    はじめまして。
    仕事でラズパイを使っている高橋です。

    ラズパイで取得したIoTデータを
    グーグルスプレッドシートに自動記録の記事を参考に
    自分のラズパイでも記録できました。
    ありがとうございます。

    今現在、タクトスイッチを使い
    押した時刻をスプレッドシートに記録しているのですが、
    時刻の記録をA1、A2、A3・・・と
    徐々に下の段に記録するにはどうすればいいでしょうか?
    お手数をおかけしますが
    教えていただければ幸いです。

    • joruji より:

      コメントありがとうございます!
      お役に立てて大変うれしく思います!

      以下のコマンドを使用することで、スプレッドシートに既に入力されているデータの最終行の直下にデータが入力されます。
      (例えば、A1~A5に既にデータを入力済みの場合に以下のコマンドを使用すると、A6にデータが入力されます。)

      wks.append_row(cell_value)
      (↑wksはシート名、cell_valueは入力するデータの値)

      例として、
      cell_value = "2020/04/09"
      wks.append_row(cell_value)

      というコードを実行すると、既に入力されているデータの最終行の直下に、
      2020/04/09と入力されます。

      こちらの記事にも書いてあるので、参考にしてみてください。
      https://jorublog.site/electronic-work-smart-lock-2-gspred/

      また分からないことがございましたらお気軽にご質問ください!

      • 高橋 より:

        高橋です。
        返信ありがとうございます!
        早速試してみます。
        また分からない点ありましたらコメントしますので
        よろしくお願いします。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

GASで簡単にLINE botを作成! – API基本設定からメッセージ取得・送信方法まで解説!

  この記事ではGAS(google app script)とLINE message APIを使って、LINE BOTを作る方法について解説していきます。 今回は、メッセージを送信したら送信したメッ …

1200円でカメラ、wi-fi、Bluetooth付きの激安マイコンで遊んでみた

    最近、研究室の3Dプリンターの稼働状況を監視するためにカメラを設置しようと思いたち、激安のカメラを探していました。 最初は以前こちらの記事で紹介したようにWebカメラとラズパイを用いてストリー …

ラズベリーパイをディスプレイに接続せずSSH設定する方法

    一般的にラズベリーパイをパソコンからSSHで操作しようとした場合は、ラズパイにマウス、キーボード、ディスプレイを接続して、一度ラズパイ上でwi-fiの設定を行う必要があります。 しかし、実家に …

大学生の電子工作 ラズパイでスマートロックを自作してみた

前回、前々回に続き、3回目の電子工作です。玄関の鍵が面倒だと感じたことは誰しも一度はありますよね。鍵をかばんやポケットから取り出すのが地味にめんどくさかったり、鍵をなくしてしまって困ってしまったという …

ラズパイでスマートロック作ってみた③ – AmazonDushボタンでラズパイのスマートロックを操作する

大学生の電子工作 ラズパイでスマートロック作ってみたの記事でスマートロックを作成し、現在も使用しているのですが、一つだけ問題点があります。 それは… スマホの充電が切れたら鍵が開けられなくなってしまう …




関連記事