×

rubyからgoogle driveに920MHzで取得したセンサーのデータを保存する

2016-11-20

Raspberry Piの最新版カーネルファイルにしてからgoogle driveに920MHzで送信したデータを保存するプログラムが動作しなくなっていたので、改めてやり直しました。

必要なパッケージのインストール

google driveをrubyから使用する方の最新版や使い方はこちらに記載されているので、ご確認ください。

https://github.com/gimite/google-drive-ruby

まずは必要なライブラリのインストール

bundle、google_drive、LazGemをインストールします。


sudo gem install bundle
sudo gem install google_drive
sudo gem install LazGem

インストールにはしばらく時間が掛かります。

google developer consoleの設定

google developer consoleにgoogleのアカウントでログインします。皆様ご自身のgoogleアカウントでログインしてください。

https://console.developers.google.com

ログインするとこのような画面になります。

login

新しいプロジェクトを作成します。

プロジェクト名を入力して作成をクリックしてください。しばらくすると画面が切り替わり、プロジェクトの設定画面(API Manager)が表示されました。

api_manager

そこで、Sheets APIを選択して「有効にする」ボタンを押します。

sheets_api

画面が切り替わり以下のようになりますので、続いて「認証情報」をクリックします。

sheets_api2

「認証情報を作成」をクリックし、「OAuthクライアントID」を選択します。

make_auth2

 

「その他」を選択し、適当な名前を付けてOKを選択します。

make_auth4

次のような画面が出るので、copy & pasteをしながら次のようなconfig.jsonというファイルを作成します。作成したconfig.jsonはraspberry piのgoogle drive用プログラムを保存するフォルダに保存する必要があります。

make_auth5configjson

[json]

{
“client_id”: “クライアントIDをコピー”,
“client_secret”: “クライアントシークレットをコピー”
}

[/json]

 

これで、サーバー上の設定は一旦終わりです。

google driveに保存するrubyのプログラムをダウンロード

続いてraspberry pi上で作業をします。


git clone git://github.com/LAPIS-Lazurite/BME280_GoogleDrive
cd BME280_GoogleDrive/raspberry_pi

このフォルダに先ほど作成したconfig.jsonを保存してください。

再びブラウザーに戻り、温度・湿度・気圧情報等を保存するgoogle driveのシートを作成し、URLを取得します。写真の赤字部分がアクセスするシートの名前になります。

rubyプログラム[bme280_google_drive.rb]の14行目のmysheetのところに、赤字で隠れている部分のコードを入力してください。

spreadsheet

そして、bme280_google_drive.rbを実行します。


./bme280_google_drive.rb

初めて実行すると次のような画面が表示されます。赤字部分はURLが書かれているので先頭のhttpsから最後までをcopyし、ブラウザに貼り付けてページを表示します。

auth

ブラウザに貼り付けると次のような画面になるので、許可ボタンを押します。

auth2

次のような画面が表示されるので、この内容をcopyし、元のコンソール画面に貼り付けて、⏎キーを押します。

auth3

 

そうすると、無事にプログラムが動作し、google drive上のspread sheetにもデータが保存されています。また、一度プログラムを実行してしまえば、2回目以降は認証の手間は無く、実行するだけで動作をさせることが出来ます。

最後に

どなたか、node-redで同じことをやる方法をご存知でしたら、教えて下さい。連絡をお待ちしております。