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をインストールします。
[bash]
sudo gem install bundle
sudo gem install google_drive
sudo gem install LazGem
[/bash]
インストールにはしばらく時間が掛かります。
google developer consoleの設定
google developer consoleにgoogleのアカウントでログインします。皆様ご自身のgoogleアカウントでログインしてください。
https://console.developers.google.com
ログインするとこのような画面になります。
新しいプロジェクトを作成します。
プロジェクト名を入力して作成をクリックしてください。しばらくすると画面が切り替わり、プロジェクトの設定画面(API Manager)が表示されました。
そこで、Sheets APIを選択して「有効にする」ボタンを押します。
画面が切り替わり以下のようになりますので、続いて「認証情報」をクリックします。
「認証情報を作成」をクリックし、「OAuthクライアントID」を選択します。
「その他」を選択し、適当な名前を付けてOKを選択します。
次のような画面が出るので、copy & pasteをしながら次のようなconfig.jsonというファイルを作成します。作成したconfig.jsonはraspberry piのgoogle drive用プログラムを保存するフォルダに保存する必要があります。
[json]
{
“client_id”: “クライアントIDをコピー”,
“client_secret”: “クライアントシークレットをコピー”
}
[/json]
これで、サーバー上の設定は一旦終わりです。
google driveに保存するrubyのプログラムをダウンロード
続いてraspberry pi上で作業をします。
[bash]
git clone git://github.com/LAPIS-Lazurite/BME280_GoogleDrive
cd BME280_GoogleDrive/raspberry_pi
[/bash]
このフォルダに先ほど作成したconfig.jsonを保存してください。
再びブラウザーに戻り、温度・湿度・気圧情報等を保存するgoogle driveのシートを作成し、URLを取得します。写真の赤字部分がアクセスするシートの名前になります。
rubyプログラム[bme280_google_drive.rb]の14行目のmysheetのところに、赤字で隠れている部分のコードを入力してください。
そして、bme280_google_drive.rbを実行します。
[bash]
./bme280_google_drive.rb
[/bash]
初めて実行すると次のような画面が表示されます。赤字部分はURLが書かれているので先頭のhttpsから最後までをcopyし、ブラウザに貼り付けてページを表示します。
ブラウザに貼り付けると次のような画面になるので、許可ボタンを押します。
次のような画面が表示されるので、この内容をcopyし、元のコンソール画面に貼り付けて、⏎キーを押します。
そうすると、無事にプログラムが動作し、google drive上のspread sheetにもデータが保存されています。また、一度プログラムを実行してしまえば、2回目以降は認証の手間は無く、実行するだけで動作をさせることが出来ます。
最後に
どなたか、node-redで同じことをやる方法をご存知でしたら、教えて下さい。連絡をお待ちしております。