この記事では、T&D 社製データロガー TR-72wb の測定値を API 経由で取得し、
自宅サーバー(Ubuntu)上で WordPress サイトに自動表示 するまでの構築手順をまとめます。
実際に Raspberry Pi / Ubuntu サーバー環境で動作確認済みです。
「温度と湿度を自動で Web サイトに反映させたい」という方に役立つ内容です。
🧩 全体構成の概要
このシステムは以下のように動作します。
[TR-72wb] ──(Wi-Fi)──▶ [T&D WebStorage Service]
↓
(API取得: get_temp.sh)
↓
[/wordpress/currentdata/current_temp.json]
↓
[WordPress ショートコード (room_temp)]
↓
[サイトに温度・湿度を自動表示]
ポイントは以下の3つ:
- T&D WebStorage API から最新データを定期取得
- JSON ファイル に保存して WordPress が読み取る
- cron で定期的に自動更新
1. T&D WebStorage API の準備
まず、TR-72wb がクラウドサービス「T&D WebStorage Service」にデータ送信していることを確認します。
公式サイト:https://ondotori.webstorage.jp/docs/api/
API を利用するには以下の情報が必要です:
- APIキー
- アカウントID
- デバイスのシリアル番号(例:5236xxxx)
これらは WebStorage にログイン後、
「設定 → API設定」から取得できます。
2. 温湿度取得スクリプトの作成
ホームディレクトリにスクリプト get_temp.sh を作成します。
nano /home/hoge/get_temp.sh
以下を貼り付けます(必要に応じてAPIキー・アカウント情報を差し替えてください)。
#!/bin/bash
# T&D TR-72wb から温湿度を取得して JSON に保存するスクリプト
# === 設定部分 ===
API_KEY="あなたのAPIキー"
LOGIN_ID="あなたのアカウントID"
SERIAL="デバイスのシリアル番号"
OUT_FILE="/var/www/html/wordpress/currentdata/current_temp.json"
DEBUG_FILE="/home/hoge/debug_response.json"
# === API呼び出し ===
curl -s -X POST \
-d "login=${LOGIN_ID}" \
-d "api-key=${API_KEY}" \
-d "serial=${SERIAL}" \
"https://api.webstorage.jp/v1/devices/trend" \
-o "$DEBUG_FILE"
# === データ解析 ===
TEMP=$(jq -r '.data[-1].ch1' "$DEBUG_FILE")
HUM=$(jq -r '.data[-1].ch2' "$DEBUG_FILE")
TIME=$(date '+%Y-%m-%d %H:%M:%S %z')
# === JSON出力 ===
mkdir -p "$(dirname "$OUT_FILE")"
cat <<EOF > "$OUT_FILE"
{
"temperature": $TEMP,
"humidity": $HUM,
"time": "$TIME"
}
EOF
chmod 644 "$OUT_FILE"
保存後、実行権限を付与します:
chmod +x /home/hoge/get_temp.sh
3. 出力フォルダの設定
WordPress から読み取れる場所に保存するため、専用フォルダを作ります:
sudo mkdir -p /var/www/html/wordpress/currentdata
sudo chmod 777 /var/www/html/wordpress/currentdata
(セキュリティ調整は後からでも可能。まずは動作優先でOK)
4. テスト実行して確認
/home/hoge/get_temp.sh
cat /var/www/html/wordpress/currentdata/current_temp.json
出力例:
{
"temperature": 25.1,
"humidity": 43,
"time": "2025-10-28 02:34:12 +09:00"
}
これが出ればデータ取得は成功です。
ここまでで「サーバーが温湿度データをローカルJSONに保存する」仕組みが完成しました。
5. WordPress に表示させる
(1) mu-plugin を作成する
テーマを編集せずにコードを常時読み込ませるため、
WordPress の mu-plugins 機能を使います。
フォルダ作成:
sudo mkdir -p /var/www/html/wordpress/wp-content/mu-plugins
プラグインファイル作成:
sudo nano /var/www/html/wordpress/wp-content/mu-plugins/room_temp.php
中身:
<?php
/*
Plugin Name: Room Temp Shortcode
Description: Show current room temperature and humidity
Version: 1.0
*/
function show_room_temp() {
$json_path = '/var/www/html/wordpress/currentdata/current_temp.json';
if (!file_exists($json_path)) {
return "温度データがありません";
}
$data = json_decode(file_get_contents($json_path), true);
if ($data === null) return "温度データの読み取りに失敗しました";
$temp = $data['temperature'];
$hum = $data['humidity'];
$time = $data['time'];
return "
<div style='border:1px solid #ccc;padding:8px 12px;border-radius:6px;display:inline-block;'>
<div><strong>室温:</strong> {$temp} ℃</div>
<div><strong>湿度:</strong> {$hum} %RH</div>
<div style='font-size:0.8em;color:#666;'>更新: {$time}</div>
</div>";
}
add_shortcode('room_temp', 'show_room_temp');
保存して終了します。
(2) WordPress ページにショートコードを挿入
WordPress 管理画面で
「固定ページ → 編集 → 本文」に次を入力:
[room_temp]
保存してプレビューすると、
現在の室温・湿度・更新時刻が表示されます。
6. 自動更新の設定(cron)
毎分データを自動更新するには、cron を使います。
crontab -e
ファイル末尾に1行追加:
* * * * * /home/hoge/get_temp.sh
これで毎分自動的に TR-72wb から最新データを取得し、
サイト上の温度も自動的に更新されるようになります。
7. 動作確認
- サイトを開く → 室温と湿度が表示されているか確認
- 1〜2分後にページをリロード → 「更新時刻」が新しくなっていればOK
もし表示が止まる場合は:
cat /var/www/html/wordpress/currentdata/current_temp.json
を見て、更新されているか確認しましょう。
8. 不要ファイルの整理
試行中にできた古いファイルを削除しておきます。
rm -f /home/hoge/current_temp.json
rm -f /home/hoge/debug_response.json
rm -f /var/www/html/current_temp.json
sudo rm -rf /var/www/html/wp-content/themes/cocoon-child
これでクリーンな状態になります。
9. 最終構成(完成形)
/var/www/html/wordpress/
├── currentdata/
│ └── current_temp.json
├── wp-content/
│ ├── mu-plugins/
│ │ └── room_temp.php
│ ├── plugins/
│ └── themes/
│ └── cocoon/
└── wp-config.php
/home/hoge/
└── get_temp.sh
これで以下の動作が自動化されます:
✅ get_temp.sh が1分ごとにAPIから最新データを取得
✅ JSONファイルを更新
✅ WordPressが で自動表示
🎉 まとめ
| 機能 | 実現方法 |
|---|---|
| データ取得 | T&D WebStorage API(curl + jq) |
| ローカル保存 | JSON ファイル /wordpress/currentdata/current_temp.json |
| サイト表示 | WordPress ショートコード |
| 自動更新 | cron による毎分実行 |
この仕組みを使えば、
ラズパイや自宅サーバー上の WordPress で「リアルタイム温湿度モニタリングサイト」を簡単に構築できます。
💡発展例
- JSON をグラフ化(Chart.js や Google Charts 連携)
- 過去データの保存&統計表示
- 異常時に Discord / Slack / LINE へ通知
構築時間の目安:約30〜45分
動作環境:Ubuntu 22.04 / WordPress 6.x / TR-72wb
📘 まとめ
APIキーとJSONの扱いに慣れれば、
おんどとりは非常に簡単にIoT化できます。
1分ごとに自動更新される温湿度データが
自分のWebサイトにリアルタイム反映されるのはとても快感です。

コメント