DXセミナー2026 講習会資料
目次
- 全体の説明
- ESP32ボード・プログラム修正
- Googleスプレッドシート・作成
- Googleスプレッドシート・GAS登録
- Googleスプレッドシート・indexを作る
- Googleスプレッドシート・地図の最初の場所
- Googleスプレッドシート・初期設定
- Googleスプレッドシート・ESP32の位置登録
- Googleマップから経度緯度を調べる
- ウェブアプリとして公開する(デプロイ)
- 動作の確認
1. 全体の説明
目標
ハウスなどで測定した温度を地図に表示します。
URLを知っていれば、ブラウザで表示できます。
DXセミナー2026の1回目で作ったESP32と2回目で作ったプログラムを利用します。

利用するツール
- ESP32ボード(ESP32): DXセミナー2026の1回目で作ったマイコン
- Googleドライブ(ドライブ): スプレッドシートの置き場
- Googleスプレッドシート(スプレッド): エクセルのようなツール
- GoogleAppsScript(GAS): スプレッドシートで利用できる開発言語
- Googleマップ(マップ): 地図
上記の括弧内の表示を略称として利用します。
構成
ESP32(温度センサー付き) → スプレッド → ブラウザ(地図表示)
講習会で利用するファイル
2種類のプログラムコードがあります。
- ESP32
- esp32.ino
- secrets.example.h
- GAS
- コード.gas
- index.html
2. ESP32ボード・プログラム修正
DXセミナー2026の1,2回目で作ったプログラムを改修します。
改修部分の説明
ダウンロードしたファイル(esp32.ino)をそのまま利用すれば良いのですが、改修部分の説明を行います。
- 5~10行目
他の人に秘密にしたい情報を、別のファイルに分けました。
修正前
//Wi-Fi
const char* ssid = "luke-ssid"; // 自分の WiFi の ssid を書く
const char* password = "luke-password"; // 自分の WiFi の パスワードを書く
//ウェブアプリのURL(GAS)
const String url = "https://script.google.com/------------------/exec";修正後
// Wi-Fi の ssid・パスワード、ウェブアプリの URL(GAS)、合言葉
// secrets.example.h を secrets.h にコピーして値を書く(secrets.h は Git で管理しない)
#include "secrets.h"
// 送信の間隔(ミリ秒)。5 分
#define SEND_INTERVAL_MS 300000- 67~68行目
複数のESP32を利用できるようにデバイスID(deviceId)を付けました。
合言葉が合わないと、スプレッドシートに登録しないようにしました。
修正前
//Google Spreadsheet
String urlFinal = url + "&temperature=" + String(temperature) + "&humidity=" + String(humidity);修正後
// Google スプレッドシート(GAS)に送る。合言葉がないと GAS は記録しない
String urlFinal = url + "?device=" + String(deviceId) + "&temperature=" + String(temperature) + "&humidity=" + String(humidity) + "&key=" + String(writeKey);追加したファイル(secrets.example.h)
このファイルはサンプルなので、コピーして名前を(secrets.h)としてください。
他の人に秘密にしたい情報を登録します。
// 秘密情報の見本(Git で管理する)
// このファイルを secrets.h という名前でコピーし、本物の値を書く。
//Wi-Fi
const char* ssid = "your-ssid"; // 自分の WiFi の ssid を書く
const char* password = "your-password"; // 自分の WiFi の パスワードを書く
// 端末ID(ほかの端末と重ならないこと。半角の英数字・-・_ だけで 32 文字まで)
const char* deviceId = "your-deviceid";
//ウェブアプリのURL(GAS)
const String url = "https://script.google.com/macros/s/xxxxxxxx/exec"; // GAS のデプロイで発行された /exec の URL を書く
//合言葉
const char* writeKey = "your-write-key"; // 半角の英数字だけで 20 文字以上。GAS のスクリプト プロパティ WRITE_KEY と同じ値を書く※ url はスプレッドシートでApps Scriptをデプロイするまで不明です。
「10. ウェブアプリとして公開する(デプロイ)」まで進んでから書き換えてください。
3. Googleスプレッドシート・作成
新しく作る方法と、DXセミナー2026の2回目で作ったスプレッドを利用する方法があります。
今回は、新しく作る方法で説明します。
ドライブでスプレッドを作る
ドライブで「+新規」をクリック、「Googleスプレッドシート」を選択します。

「空のスプレッドシート」をクリックする。

「無題のスプレッドシート」ができます。

スプレッドに名前を付ける
左上の「無題のスプレッドシート」をクリックして、付けたい名前を入力します。

4. Googleスプレッドシート・GAS登録
GAS機能呼び出し
「拡張機能」をクリックして、「Apps Script」をクリックする。

Apps Script ができます。

AppsScriptに名前を付ける
左上の「無題のプロジェクト」をクリックして、付けたい名前を入力します。

名前を付けました。

プログラムコードを全て消す
マウスで全て選択、または、Ctrl+a で全てを選択します。

Delキーを押すと消えます。

ダウンロードしておいた gas\コード.gs を貼る
受け取ったファイルの gas\コード.gs を、メモ帳で開きます。
ファイルを右クリック →「プログラムから開く」→「メモ帳」を押します。メモ帳が出ないときは「別のプログラムを選択」から選びます。

メモ帳で、Ctrl キーを押しながら A キーを押し(すべて選ぶ)、Ctrl キーを押しながら C キーを押します(コピー)。

Apps Script に貼り付けます。

保存します

合言葉を登録する
合言葉は英字と数字だけで作ります。
例 aikotoba1234567890
Apps Scriptの歯車をクリックします。

下に移動して「スクリプトプロパティを追加」をクリックします。

以下の値を登録します。
- プロパティ: WRITE_KEY
- 値: 合言葉(例 aikotoba1234567890)

合言葉の登録が完了しました。

5. Googleスプレッドシート・indexを作る
左の「ファイル」の右の「+」を押し、「HTML」を押します。

名前を入れる欄が出るので、index と入力して Enter キーを押します。

右側のコードを消します。

ダウンロードした gas\index.html をメモ帳で開きます。

Apps Script の index.html に貼り付けます。

保存します

6. Googleスプレッドシート・地図の最初の場所
index.html の369行目にある center が中心位置です。
緯度と経度になります。
これを書き換えると変更できます。
map: {
center: [34.662004, 133.932435],7. Googleスプレッドシート・初期設定
地図用の情報を登録するシートを追加します。
setupSheets を実行
「doGet」をクリックし、「setupSheets」を選択。

setupSheets が選択されます。

「実行」をクリック

権限の確認
「権限を確認」をクリック

セキュリティの警告が表示されるので「詳細」をクリックします。

「DXセミナー2026-3 のスクリプト(安全ではないページ)に移動」をクリック。

DXセミナー2026・・・Googleアカウントへのアクセスを求めています」と表示されるので、「次へ」をクリックします。

もう1度、アクセス許可の画面になります。

下まで進めて「次へ」をクリックします。

Apps Scriptの画面に戻ります。

setupSheets を再実行
元の画面に戻るので、再度、「実行」をクリックします。

実行ログが表示されます。

スプレッドに3つのシートが追加されています。

8. Googleスプレッドシート・ESP32の情報登録
ESP32の端末IDや表示名、緯度、経度を登録します。

端末IDとは: ESP32のプログラム secrets.h で指定した「デバイス名」です。
// デバイス名(他と重複しないこと)
const char* deviceId = "luke-01";表示名
何でも良いです。ハウスの名前など。身近に名前が良いです。
経度緯度
Googleマップを使い調べます。(下記9を参照)
ESP32情報のサンプル

9. Googleマップから経度緯度を調べる
Googleマップで表示したい位置をクリックすると、URLの欄に経度、緯度が表示されます。

地名では無く自分でポイントした場所をクリックして、緯度経度を調べる。

調べた緯度経度は、コピー&ペーストするか、手入力してください。
10. ウェブアプリとして公開する(デプロイ)
Apps Scriptの「デプロイ」→「新しいデプロイ」をクリックします。

「種類の選択」の歯車をクリックし、「ウェブアプリ」を選択します。

設定を登録し、「デプロイ」を押します。

| 項目 | 入力・選択するもの |
|---|---|
| 説明 | 初版 |
| 次のユーザーとして実行 | 「自分(あなたのメールアドレス)」 |
| アクセスできるユーザー | 「全員」 |
デプロイ後の情報をコピーして、メモ帳などで控えておきます。
「コピー」をクリックすれば、メモ帳でペーストするだけです。

URL は secrets.h の url になります。
//ウェブアプリのURL(GAS)
const String url = "https://script.google.com/macros/s/xxxxxxxx/exec"; // GAS のデプロイで発行された /exec の URL を書く11. 動作の確認
11-(1). ESP32 は手元にないけど、スプレッドシートに書き込みできるか試す
メモ帳を使い、上記10で取得した URL に以下を足します。
?device=luke-01&temperature=20.5&humidity=50&key=aikotoba12345678904つの項目をセットします。
- デバイス名: device=luke-01
- 温度: temperature=20.5
- 湿度: humidity=50
- 合言葉: key=aikotoba1234567890

ブラウザのURL欄に貼り付けます。

Enterキーを押すと実行されます。
「success」と表示されたら成功です。

スプレッドシートのシート「測定データ」を見ると、登録されています。

スプレッドシートのシート「最新値」に、測定データの温度、湿度がコピーされます。

11-(2). 地図を表示
上記10のURLだけをブラウザのURL欄に貼ります。

※画面上部に表示される「このアプリケーションは・・・」はGoogleの仕様で非表示にできません。
