【arduino_IDE】googlesheetに書き込んでみた

スポンサーリンク

IFTTT利用では一度にgoogle sheetに書き込めるセル数に制限があるので、esp32(esp-wroom-32)からgoogle sheetsに直接書き込めるようにしてみました。

スポンサーリンク

google sheet作成

googleドライブを開き、新規 ⇒ google スプレッドシートに進みます。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..googleドライブを開き、新規 ⇒ google スプレッドシートに進みます。..

無題のスプレッドシートをクリックして名前を付けます。ここではsensor_dataとしました。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..無題のスプレッドシートをクリックして名前を付けます。ここではsensor_dataとしました。..

スクリプトエディター

ツール→スクリプトエディタを開きます。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..ツール→スクリプトエディタを開きます。..

スクリプトエディターが開いたら「無題のプロジェクト」をクリックしてこのプロジェクトに名前を付けます。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..このプロジェクトに名前を付けます。..

ここでは「sensor_data」としました。入力したらOKをクリックします。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..ここでは「sensor_data」としました。入力したらOKをクリックします。..

スポンサーリンク

コードの作成

googlesheetで動かせるスクリプトを作成します。

まず、スクリプトエディターに記入されているfunction myFunction() {  }を削除しておきます。 カッコ  も忘れずに削除します。

次に次のスクリプトをコピーして貼り付けます。

var id = 'ここにシート固有のIDを記入';
function doGet(e) {
//2021/09 追記:現在このコードは使えません。新しいコードを利用してください。
if (e.parameter == undefined) {
result = 'Parameter undefined';
}
else {
var sheet = SpreadsheetApp.openById(id).getActiveSheet();
var newRow = sheet.getLastRow() + 1;  // 次の行に入力する
var rowData = [];
rowData[0] = new Date();   //タイムスタンプ
for (var param in e.parameter) {
var value = e.parameter[param];
rowData[parseInt(param)] = value;
}
var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
newRange.setValues([rowData]);
var result =  'Ok'// Text des Anworts
}
return ContentService.createTextOutput(result);
}

次にsensor_dataシートの固有IDをコピーします。

固有IDは強調表示された部分がこのシートの固有IDになります。

https://docs.google.com/spreadsheets/d/11nA0CjfQ85c1LRRKRjTGK_dvRq5V8-8sdaZMobec-50/edit#gid=0

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..固有IDは強調表示された部分がこのシートの固有IDになります。https://docs.google.com/spreadsheets/d/11nA0CjfQ35b1LRRKRjTGK_dvRq5V8-8sdaZMnbec-50/edit#gid=0..

var id = ‘ここにシート固有のIDを記入’; というところに、コピーしたシートIDを貼り付けます。

このようになります。

var id = ’11nA0CjfQ85b1LRRKRjTGK_dvRq5V8-8mdaZMnbec-50′;

貼り付けしたらファイル ⇒ 保存をクリックして、scriptを保存します。

スポンサーリンク

google scriptをwebアプリとして設定する

公開 ⇒ ウエブアプリケーションとして導入に進みます。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..公開 ⇒ ウエブアプリケーションとして導入に進みます。..

承認を求められますので、次のユーザーとしてアプリケーションを実行という項目を:自分にします。

アプリケーションにアクセスできるユーザー:を全員(匿名ユーザーを含む)にします。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..承認を求められますので、次のユーザーとしてアプリケーションを実行という項目を:自分にします。アプリケーションにアクセスできるユーザー:を全員(匿名ユーザーを含む)にします。..

許可をクリックします。(訂正:画像②は自分ではなく全員を選択してください)

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..許可をクリックします。(訂正:画像②は自分ではなく全員を選択してください)..

googleアカウントを選択します。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..googleアカウントを選択します。..

このアプリは確認されていません!

このようなダイアログが出てきますので、左下の「詳細」をクリックします。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ....

sensor_dataを選択します。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..sensor_dataを選択します。..

「sensor_dataに次のスコープを許可する」をクリックします。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..「sensor_dataに次のスコープを許可する」をクリックします。..

作成したスクリプトをテストしてみます。クリックしてブラウザの左上に小さく「OK」と出れば成功です。

OKをクリックしてダイアログを閉じます。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..作成したスクリプトをテストしてみます。クリックしてブラウザの左上に小さく「OK」と出れば成功です。OKをクリックしてダイアログを閉じます。..

sensor_dataシートを開くとA1セルに日時がプリントされているはずです。

【2020/03 追記】

googleのセキュリティが強化されました。急に使えなくなった方はこちらの設定に直してください。

『 【arduinoIDE】googlesheetに書き込んでみた 』 ..【2020/03 追記】googleのセキュリティが強化されました。急に使えなくなった方はこちらの設定に直してください。..

スポンサーリンク

esp32からgoogle sheetsに投げる

ここまでグーグルシート作成と、httpsアクセスしたらgoogle sheetsに書き込むまでが出来ました。

google sheetsスクリプトも一応動いてくれるようですね。

次にhttpsアクセスでgoogle sheetsに実際に書き込みをしてみようと思います。

カズは裏庭のビニールハウスの温度や水耕栽培の溶液管理などを想定してesp-wroom-32で作成しましたが、 M5Stackなどにも使えるのでは?と思います。

esp32のスケッチ(プログラム)はこちらです。

【arduino農業】ビニールハウスの温度をクラウドで管理する
ビニールハウスの温度や湿度、気圧などのデータをパソコンやスマホで管理するまでの手順をセンサーの自作や温度、湿度、日照などを管理するシステムとして仕上げるまでを記録してみようと思います。 arduinoとSDcardを使って温度や湿度、気圧な
スポンサーリンク

esp32でgooglesheetsに書き込みする

【2022/03】追記

暫く使っていない間にいつの間にかgooglesheetに書き込みが出来ないようになっているようです。

そこでchromeに保存されているgoogleのCA証明書をWiFiClientSecureライブラリ(ヘッダファイル)で使えるようにしてアクセスしてみたところポートに接続出来たので共有したいと思います。

【esp32】chromeでルート証明書をダウンロードする

【esp32】chromeのルート証明書をダウンロードする
googleのセキュリティ強化で従来の方法ではgooglesheetに書き込めなくなりました。そこでルート証明書を使ってみたところgooglesheetに書き込むことが出来たのでメモしておきます。 ルート証明書 googleのchr...

【2023/02 追記】

googleのセキュリティ強化によりルート証明書に加えてアクセスキーが必要かもしれません。

その場合にはgoogleが発行するサービスキーを渡すことでgooglesheetsに書き込み出来ます。

【農業IOT】googleサービスアカウントの秘密鍵を作成する

404 NOT FOUND | おうち栽培
おうち栽培でうるおいの野菜生活 時々 ECO海外旅行
タイトルとURLをコピーしました