Google Apps Scriptを使ったIoTサービス
概要
ESP32 MCUリーフと4-Sensorsリーフ(あるいはDHT-22センサ)だけで、IoT環境センサを作り、Google スプレッドシートを使って、センサデータを可視化します。

Google Sheetsの準備
ESP32 MCUリーフが送るセンサデータをGoogle Sheets
で表示する、IoTサービスを紹介します。
ブラウザを閲覧できるPCやスマホがあれば、どこでもデータを確認できます。
まずは、Google Sheets
でデータを表示するための設定を以下の通り行いましょう。
- Googleアカウントにログインし、新しいスプレッドシートを作成しましょう。アカウントがない場合は作成してください。

- Google Sheetsのタイトル(デフォルト:
無題のスプレッドシート
)は自由に変更してください。
また、シート番号(デフォルト:シート1
)も自由に変更して大丈夫です。
- 下のGoogle SheetsのURLの部分の赤枠で囲った記号列は、後でGoogle Sheetを指定するのに利用するので、適当な場所にコピーしておいてください。
- ここでは、
1ilM_Qz0A82_PueJtT-2PAzlnJ5ZSRB5OC_JkV4WQQCs
になります。
- ここでは、

- 拡張機能から
Apps Script
を開き、Githubのソースコードをコピー&ペーストしてください。
function doGet(e) {
let id = 'google_sheets_id';
let sheetName = 'sheet_name';
var result;
// e.parameter has received GET parameters, i.e. temperature, humidity, illumination
if (e.parameter == undefined) {
result = 'Parameter undefined';
} else {
var sheet = SpreadsheetApp.openById(id).getSheetByName(sheetName);
var newRow = sheet.getLastRow() + 1; // get row number to be inserted
var rowData = [];
// get current time
rowData[0] = new Date();
rowData[1] = e.parameter.UniqueID;
rowData[2] = e.parameter.temperature;
rowData[3] = e.parameter.humidity;
rowData[4] = e.parameter.illumination;
// 1 x rowData.length cells from (newRow, 1) cell are specified
var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
// insert data to the target cells
newRange.setValues([rowData]);
result = 'Ok';
}
return ContentService.createTextOutput(result);
}
- 以下の変数に、先ほど作成した
Google Sheets
の情報を入力してください。google_sheets_id
:先ほどコピーしたGoogle Sheets
のURLの記号列sheet_name
:書き込み先のシート名(デフォルト:シート1
)

Google Sheets
を公開する手順について、説明します。
右上のデプロイ
から新しいデプロイ
をクリックし、タイプ(ここではウェブアプリ
)を選択します。

- 今回は「アクセスできるユーザー」を
全員
にし、誰でも閲覧できるようにしてから、デプロイ
をクリックします。

- データへのアクセスを許可するために、
アクセスを承認
をクリックしてください。

- アカウントの選択で、該当する「アカウント」を選びます。

- 左下の
詳細
をクリックしてください。

- 次に警告が出るので、
無題のプロジェクト(安全ではないページ)に移動
をクリックしてください。

- スクリプトからスプレッドシートへのアクセスリクエストを
許可
してください。

- 以下のポップアップ画面が表示され、今回作成した「ウェブアプリ固有のURL」が発行されるので、URLを
コピー
して完了
をクリックしてください。

(アプリ固有のURL)
https://script.google.com/macros/s/AKfycbzaAHAO8oBBJ1alqfQAv4h76Q-7ugOLm47jATWiqDczu6vahAl3ZncxSh3tQVRuSVRk/exec
Google Sheetsの動作確認
-
今回は試しに、Datetime、UniqueID=Leafony_AP02-1、Temperature=100、Humidity=100、Illumination=100 を、
Google Sheets
に書き込んでみます。
-
アプリ固有のURLの末尾に、?UniqueID=Leafony_AP02-1&temperature=100&humidity=100&illumination=100を追加すると、以下の通りになります。
https://script.google.com/macros/s/AKfycbzaAHAO8oBBJ1alqfQAv4h76Q-7ugOLm47jATWiqDczu6vahAl3ZncxSh3tQVRuSVRk/exec?UniqueID=Leafony_AP02-1&temperature=100&humidity=100&illumination=100
- 上記のURLをブラウザに貼り付けてアクセスすると(Enter)、設定した
Google Sheets
にデータが書き込まれます。
Google Sheets
の1行目に記載されているカラム名は自動表示されないため、予めご記載ください。

スクリプトのミスがあった場合
- スクリプトを修正します。
デプロイを管理
をクリックします。- 最初と全く同じ設定でデプロイすると修正したコードがうまく反映されないことがあるので、再デプロイのときは
デプロイを管理
の設定から編集
のアイコンをクリックして新バージョン
で入力します。 - またその時動作しているウェブアプリのURLは以下で確認出来ます。

次へ進む
最終更新 January 11, 2023