英語の下に日本語訳があります。 中文翻译在英文、日文下方。
Local minimal ESP32 data pipeline: ingest -> process -> store -> visualize.
- Goal: run a G-CU 4.1+ ESP32 locally with MQTT + sink + web UI for data capture.
- Data path:
./devmin/data/mqtt_store/<Device_DN>/<Date>/<exp_time>.csv - Data dashboard: http://localhost:5000
- Config console: http://localhost:5002
- Use an ESP32 running G-CU firmware v4.1.1 or newer (https://github.com/Preston-Yu/G-CU/tree/main/Arduino/v4.1.1).
- First-time devices need a License Key push from the config console; pick the correct device, license type, and activation window to get normal packet rates.
- Keep the ESP32 and the collector PC on the same WiFi network.
- Provision WiFi with the "ESP BLE Prov" mobile app; power-cycle or reset the ESP32 five times to enter provisioning mode.
- Windows: ensure
devmin/scripts/parser_entry.sh,sink_entry.sh, andwebstack_entry.shuse LF line endings; if containers refuse to start, also check all.shunderdevmin/scripts/for LF endings. - Copy
nas/Public/ESP32/priv.pemintolicense/priv.pemwhere required. - Tools: WSL updated, Docker Desktop (Engine + Compose), Python 3.11,
paho-mqtt.
git clone https://github.com/miyuzn/mqtt_test.git
cd mqtt_test
wsl --update # Windows only
pip install paho-mqttdocker compose -f devmin/docker-compose.yml up -d --buildDo not run compose files in the repo root; those YAMLs are for debugging.
python devmin/data_receive_local.py- Uses
devmin/config/data_receive.dev.ini, connects to127.0.0.1:1883. - Stop with
Ctrl+C; CSV output goes todevmin/data/mqtt_store/<DN>/<YYYYMMDD>/<exp_time>.csv.
- Check sink logs:
docker compose -f devmin/docker-compose.yml logs -f sink- Confirm
data_receive_local.pyprints packets; check per-DN CSVs underdevmin/data/mqtt_store.
- Data dashboard: http://localhost:5000
- Config console: http://localhost:5002 (shows DN/IP mappings and sends config/license commands)
- Start the prebuilt devmin containers (all 3 services) without rebuilding:
docker compose -f devmin/docker-compose.yml up -d
- Start the data collection script:
Do not swap steps 1/2; starting the script first will fail because MQTT inside the containers is not ready.
python devmin/data_receive_local.py
- During collection, view live data at http://localhost:5000.
- To stop collection, end the data collection script (all devices stop together) or cut power to a specific ESP32. If it does not reconnect within 5 seconds, the current data is flushed into the storage path with the filename set to the collection start timestamp.
- If provisioning is needed again, power-cycle the ESP32 five times to enter WiFi setup.
- On Windows Docker builds, ensure all three
.shfiles underdevmin/scripts/are LF-terminated if containers fail to start.
ローカル最小構成の ESP32 データパイプライン: 取り込み -> 処理 -> 保存 -> 可視化。
- 目的: MQTT + シンク + Web UI を使い、G-CU 4.1+ ESP32 をローカルで動かしデータを取得。
- データ保存先:
./devmin/data/mqtt_store/<Device_DN>/<Date>/<exp_time>.csv - ダッシュボード: http://localhost:5000
- 設定コンソール: http://localhost:5002
- G-CU ファームウェア v4.1.1 以上を動かす ESP32 を使用 https://github.com/Preston-Yu/G-CU/tree/main/Arduino/v4.1.1
- 初回利用デバイスは設定コンソールからライセンスキーをプッシュする必要あり。正しいデバイス・ライセンスタイプ・有効期間を選び通常のパケットレートを得る。
- ESP32 と収集用 PC を同じ WiFi に接続。
- "ESP BLE Prov" モバイルアプリで WiFi を設定。ESP32 を 5 回再起動またはリセットしてプロビジョニングモードに入る。
- Windows:
devmin/scripts/parser_entry.sh、sink_entry.sh、webstack_entry.shは LF 改行にする。コンテナが起動しない場合はdevmin/scripts/配下の.shも LF か確認。 nas/Public/ESP32/priv.pemを必要な場所のlicense/priv.pemにコピー。- ツール: WSL 最新、Docker Desktop (Engine + Compose)、Python 3.11、
paho-mqtt。
git clone https://github.com/miyuzn/mqtt_test.git
cd mqtt_test
wsl --update # Windows のみ
pip install paho-mqttdocker compose -f devmin/docker-compose.yml up -d --buildリポジトリルートの compose ファイルはデバッグ用なので実行しないこと。
python devmin/data_receive_local.pydevmin/config/data_receive.dev.iniを使用し、127.0.0.1:1883に接続。Ctrl+Cで停止。CSV はdevmin/data/mqtt_store/<DN>/<YYYYMMDD>/<exp_time>.csvに出力。
- シンクログを確認:
docker compose -f devmin/docker-compose.yml logs -f sinkdata_receive_local.pyがパケットを出力することを確認。devmin/data/mqtt_store配下の DN ごとの CSV を確認。
- ダッシュボード: http://localhost:5000
- 設定コンソール: http://localhost:5002 (DN/IP マッピング表示、設定/ライセンスコマンド送信)
- ビルドなしで事前構築済み devmin コンテナ (3 サービス) を起動:
docker compose -f devmin/docker-compose.yml up -d
- データ収集スクリプトを起動:
手順 1/2 を入れ替えないこと。先にスクリプトを起動すると、コンテナ内 MQTT が未準備で失敗する。
python devmin/data_receive_local.py
- 収集中は http://localhost:5000 でライブデータを閲覧。
- 収集停止はスクリプトを終了 (全デバイス同時停止) するか、特定 ESP32 の電源を切る。5 秒以内に再接続しない場合、現在のデータがストレージパスに保存され、ファイル名は収集開始時刻となる。
- 再プロビジョニングが必要な場合、ESP32 を 5 回再起動して WiFi セットアップに入る。
- Windows での Docker ビルド時、コンテナが起動しない場合は
devmin/scripts/配下の 3 つの.shが LF 終端か確認。
本地最小 ESP32 数据管线:采集 -> 处理 -> 存储 -> 可视化。
- 目标:用 MQTT + sink + Web UI 在本地运行 G-CU 4.1+ ESP32 进行数据采集。
- 数据路径:
./devmin/data/mqtt_store/<Device_DN>/<Date>/<exp_time>.csv - 数据看板:http://localhost:5000
- 配置控制台:http://localhost:5002
- 使用运行 G-CU 固件 v4.1.1 或更高版本的 ESP32 https://github.com/Preston-Yu/G-CU/tree/main/Arduino/v4.1.1
- 首次设备需要在配置控制台推送 License Key;选择正确的设备、许可类型和有效期以获得正常的包速率。
- 让 ESP32 与采集 PC 处于同一 WiFi。
- 用 "ESP BLE Prov" 手机应用配置 WiFi;给 ESP32 断电或复位 5 次进入配网模式。
- Windows:确保
devmin/scripts/parser_entry.sh、sink_entry.sh、webstack_entry.sh使用 LF 换行;若容器无法启动,也检查devmin/scripts/下所有.sh是否为 LF。 - 将
nas/Public/ESP32/priv.pem复制到需要位置的license/priv.pem。 - 工具:WSL 更新、Docker Desktop (Engine + Compose)、Python 3.11、
paho-mqtt。
git clone https://github.com/miyuzn/mqtt_test.git
cd mqtt_test
wsl --update # 仅 Windows
pip install paho-mqttdocker compose -f devmin/docker-compose.yml up -d --build不要运行仓库根目录的 compose 文件;那些 YAML 仅用于调试。
python devmin/data_receive_local.py- 使用
devmin/config/data_receive.dev.ini,连接127.0.0.1:1883。 - 按
Ctrl+C停止;CSV 输出到devmin/data/mqtt_store/<DN>/<YYYYMMDD>/<exp_time>.csv。
- 查看 sink 日志:
docker compose -f devmin/docker-compose.yml logs -f sink- 确认
data_receive_local.py打印数据包;检查devmin/data/mqtt_store下按 DN 存放的 CSV。
- 数据看板:http://localhost:5000
- 配置控制台:http://localhost:5002(显示 DN/IP 映射并发送配置/许可指令)
- 无需重建,启动预构建的 devmin 容器(3 个服务):
docker compose -f devmin/docker-compose.yml up -d
- 启动数据采集脚本:
不要调换 1/2 步骤;先启动脚本会因容器内 MQTT 未就绪而失败。
python devmin/data_receive_local.py
- 采集过程中在 http://localhost:5000 查看实时数据。
- 结束采集时结束脚本(所有设备同时停止)或切断某 ESP32 电源。若 5 秒内未重连,当前数据会写入存储路径,文件名为采集开始时间。
- 若需要重新配网,将 ESP32 断电 5 次进入 WiFi 设置。
- Windows Docker 构建时,若容器无法启动,确认
devmin/scripts/下 3 个.sh均为 LF 结束。