今回すること
センシングデータをRaspberry Piを使ってGoogleスプレッドシートへ送ります。
使用するもの
- Raspberry Pi 3
- Grove Pi
- Grove 超音波センサー
- プログラム環境:Node-RED
準備
まず、
Raspberry Pi にNodeREDをインストールする。
こちらをご参考
次に
Gorve Pi を NodeRED で使えるようにする。
こちらをご参考
Googleスプレッドシートの設定
Google Sheets APIの有効化
Google Cloud Platform を開く
https://console.cloud.google.com/
以下の画像の矢印のところをクリック
「新しいプロジェクト」をクリック
新しいプロジェクトができたら
APIライブラリが開いたら、
「Google Sheets API」 を検索
「Google Sheets API」をクリック
「Google Sheets API」の
「有効にする」をクリック
サービスアカウントと秘密鍵の作成
コンソールメニューから
「IAMと管理」>「サービスアカウント」
「サービスアカウント名」を入力し、 メールアドレスをどこかに控え 「完了」
「鍵を管理」
共有設定
Googleスプレッドシートで新規作成し、
右上の「共有」をクリック
Node-RED
ノード追加
node-red-contrib-google-sheets のインストール
パレット > ノードを追加 node-red-contrib-google-sheets を選択し、 「ノードを追加」をクリック
フロー作成
Injectionノード(タイムスタンプと表示されてるノード)
GrovePi超音波距離センサーノード
Gsheetノード
Gsheet ノードをダブルクリック
credsの横にある「+」をクリック
ここにさきほどの秘密鍵の内容をペーストし、「追加」
他の項目を埋める。
Method: Append Row
SpreadSheetID: スプレッドシートのURLの以下のXXXXXの部分
Cells : シート名+セル
(例)
https://docs.google.com/spreadsheets/d/XXXXX/edit?gid=0#gid=0
デプロイ
「デプロイ」
センサーデータがGoogleスプレッドシートに書き込まれた。
その他
立ちあげたとき、
たまにデバッグ画面にこういうエラーがでるけど、
ほうっておくと直る。
"Auth Error: Error: invalid_grant:
Invalid JWT: Token must be a short-lived token (60 minutes)
and in a reasonable timeframe.
Check your iat and exp values in the JWT claim."
以上