外部インターフェース¶
この章は自作ホストや自作ESP32ファームウェアを使う方向けです。通常の測定はUSB有線計測またはアプリを使用してください。
システム全体の構成¶
STM32は超音波計測と校正済み測定値の生成を担当し、ESP32-C3はBLE、USB、カード記録、更新を担当します。
外部I2Cホストを接続するときは、ESP32を同じバスのホストとして同時動作させません。
内部電気接続¶
STM32計測部、ESP32-C3連携部、USB Type-C、Grove互換ポートの内部接続を示します。外部端子のピン配列や定格は、後述の電気接続の前提も確認してください。
ESP32 flashの構成¶
公式FWの更新領域を確認したい開発者向けの資料です。通常の計測・更新手順には、この表は不要です。
4 MiBの領域構成
| 領域 | Offset | 容量 | 用途 |
|---|---|---|---|
| Boot/Partition Table | 0x000000 |
36 KiB | 起動とpartition定義 |
nvs |
0x009000 |
20 KiB | ESP32設定 |
otadata |
0x00E000 |
8 KiB | OTA slot選択 |
app0 |
0x010000 |
1,728 KiB | application slot 0 |
app1 |
0x1C0000 |
1,728 KiB | application slot 1 |
stm32pkg |
0x370000 |
512 KiB | 公式STM32更新packageの一時保存 |
coredump |
0x3F0000 |
64 KiB | ESP32障害解析 |
公式のESP32 OTAとUSB復旧を利用する場合は、この構成を維持してください。
電気接続の前提¶
製品はUSB Type-CからDC5Vで給電します。内部ソースのGPIO番号は、製品コネクタのピン番号ではありません。外部UART/I2C、Groveへ接続する前に、端子配列、信号電圧、GND、電源接続条件を確認してください。
ESP32もI2Cのホストとして動作します。外部ホストを追加する際に、2つのホストを動作したまま同じバスへ接続しないでください。PCからの内部バス確認と、外部配線の設計を区別します。端子配列やホストの共存方法が確認できない場合は、本体サポートへ接続図を送って確認してください。
UARTの計測フレーム¶
通常のSTM32 UART計測フレームは、#で始まる8フィールドのカンマ区切りです。STM32 CLIではPCからSTM32へコマンドを送り、ESP32 CLIではESP32宛てのコマンドを入力します。
#,7,1,90,1.00,0.00,346.00,25.00
これは書式の例です。
| 順番 | 内容 |
|---|---|
| 1 | 固定文字# |
| 2 | Node ID、0~255 |
| 3 | 状態コード |
| 4 | 風向、整数度 |
| 5 | 風速、m/s |
| 6 | 機首方向成分、m/s(符号付き) |
| 7 | 音速、m/s |
| 8 | 音仮温度、℃ |
受信側は行終端とフィールド数を確認します。状態コード1だけを正常とし、0(異常)、2(低温)、4(高温)、8(風速範囲)などは無効として扱います。欠けたフィールドや不正な数値を0で補完しないでください。
基準ESP32スナップショットのSTM32接続は115200 bps・8N1です。接続先のUART設定を変更済みの場合は一致させる必要があります。公開ソース内の数値の許容上限は製品の定格ではありません。
I2C¶
バス条件、全レジスタ、アクセス権、計測値の変換方法はユーザー向けI2Cレジスタ一覧にまとめています。外部配線では端子配列と信号条件を確認してください。SDA/SCLには内部10 kΩプルアップ(3.3V系)があります。USBの5VをI2C信号へ加えないでください。
BLEの基本データ¶
デモFWではEnvironmental Sensingサービスの風向・風速・温度と、ULSA独自サービスの音速等を使用します。自作クライアントでは端末と本体の接続・切断、独立して届く通知、欠損を扱う必要があります。
| BLE特性(UUID) | 伝送値 |
|---|---|
| 0x2A73 風向 | uint16 / 100 → 度 |
| 0x2A72 風速 | uint16 / 100 → m/s |
| 0x2A6E 音仮温度 | int16 / 100 → ℃ |
| e147a12a-67ff-4249-930b-c35d372ba001 音速 | uint16 / 100 → m/s |
風向・風速・温度のBLE通知は特性ごとに独立して届きます。通知を受けた特性だけを更新し、未受信の値は0で埋めず「未受信」として扱ってください。BLEの数値はリトルエンディアン(下位バイトが先)です。I2Cとの倍率差はI2Cレジスタ一覧を参照してください。
設定の保存や更新制御はI2Cレジスタ一覧と更新方法を選ぶを参照してください。通常の計測確認には公式アプリの手順を使用してください。
