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

じょるブログ

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

プログラミング 電子工作

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

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

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

 

概要

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

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

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

 

環境

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

手順

1. API設定

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

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

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

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

 

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

 

 

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

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

 

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

 

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

 

 

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

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

 

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

 

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

 

 

2. スプレッドシートの設定

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

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

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

 

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

 

 

3. 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




-プログラミング, 電子工作

執筆者:


comment

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

関連記事

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

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

大学生の電子工作 スマートリモコン(回路)

この記事ではスマートリモコンを作ってみたで作成したスマートリモコンの回路について記載していきます。今回作成したスマートリモコンの回路は、 以下の3つからなっています。 赤外線学習回路 赤外線発信回路( …

RaspberryPiのセットアップ ② – SSH,VNC(遠隔操作)の設定とファイルサーバーの設定

 この記事では、前回の記事(RaspberryPiのセットアップ ① – 2種類のOSインストール方法と基本設定)に引き続き、ラズパイを遠隔操作するためのSSH・VNCの設定方法と、パソコ …

RaspberryPiのセットアップ ① – 2種類のOSインストール方法と基本設定

 この記事では、私がラズパイにOSをインストールするたびに行っているRaspberryPiのセットアップについて記載します。ここでは、NOOBSとイメージファイルによる2種類のOSのインストール方法と …

大学生の電子工作 スマートリモコン(プログラム)

この記事ではスマートリモコンを作ってみたで紹介したスマートリモコンのプログラムを記載していきます。回路はスマートリモコン(回路)に記載してあります。今回作成するプログラムは以下の4つです。 (LED点 …