AI05で温湿度・気圧・加速度を読む
このページをAIに渡す
目次
小さな基板から温度や湿度の数字が届き、そっと傾けると動きの数字が変わります。AI05 Env Sensorsと公式のread_sensorsサンプルで、そんな最初の実験をしてみましょう。
このサンプルでは、温度・湿度・気圧と3軸加速度(X・Y・Z方向の加速度)を、PCに1秒ごとに表示します。

AI05 Env Sensorsの製品写真。このリーフに、プログラムを動かすAP03やPC接続用のリーフを組み合わせます。
用意するもの
| 機材 | 用途 |
|---|---|
| AP03 STM32 MCU | サンプルを実行するマイコン |
| AI05 Env Sensors | BME280とLIS2DW12による測定 |
| USBシリアルリーフ、データ転送対応のUSBケーブル | PCとの接続 |
| 構成に合う電源・固定部品 | 3.3 Vの供給とリーフの固定 |
| PCとPlatformIO | ビルド・書き込み・シリアル表示 |
リーフの組み替えは、USB・電池・外部電源を含めてすべての給電を止めてから行います。組み立て・交換とAI05の接続条件を確認してください。AI01 4-SensorsやAX06 Grove&5Vとの併用には信号・アドレスの重複があります。
このサンプルの対象はAP03です。AP03Bなど、他のマイコンでの動作は未確認です。環境が未設定の場合はSTM32のPlatformIO設定から準備します。
サンプルを取得してビルドする
AI05 Env Sensorsリポジトリを取得します。VS Codeではplatformio/read_sensorsフォルダーを開いてください。ターミナルでは次のように実行できます。
git clone https://github.com/leafony/ai05-env-sensors.git
cd ai05-env-sensors
pio run -d platformio/read_sensors
依存ライブラリは付属のplatformio.iniからインストールされます。初回はフレームワークやライブラリの取得に数分かかる場合があります。
AP03へ書き込む
書き込み前に、現在AP03に入っているプログラムが置き換わることを確認してください。
pio device listでUSBシリアルポートを確認します。- 同じポートを使っているシリアルモニターを閉じます。
- AP03をProgram側に切り替え、モード表示LEDの点灯を確認してResetを1回押します。
- 次のコマンドで書き込みます。
pio run -d platformio/read_sensors -t upload --upload-port /dev/cu.usbserial-XXXX
/dev/cu.usbserial-XXXXは例です。実際に検出したポートへ置き換えてください。WindowsではCOM3などになります。
スイッチの場所と操作順序は、AP03のProgram/Run・Resetの図解を参照してください。向きが違う基板を「上・下」だけで判断しないようにします。
Runに戻して測定値を見る
書き込みの完了を確認したら、Run側に戻してLEDの消灯を確認します。115200 bpsでモニターを開き、Resetを1回押してください。
pio device monitor -d platformio/read_sensors --port /dev/cu.usbserial-XXXX --baud 115200
起動時にBME280 (0x76): readyとLIS2DW12: ready at 0x18が表示され、以降は1秒ごとに値が出れば成功です。SHT40・SGP40は標準では未実装なので、skipped (optional)と表示されます。
実機で確認した出力
2026年11月6日に、AP03と標準構成のAI05をUSBシリアルで接続し、公式サンプル(コミットa6b318f)で確認したログです。サンプルのソースを変更せずにビルドし、書き込んだ内容の照合と、Run側へ戻した後の再起動を確認しました。
AI05 Env Sensors / Leafony AP03
I2C: SDA=PB9, SCL=PB8, 400 kHz; sample interval: 1000 ms
BME280 (0x76): ready
SHT40: not detected at 0x44; skipped (optional)
SGP40: not detected at 0x59; skipped (optional)
LIS2DW12: ready at 0x18
--- uptime=33376 ms ---
BME280: temperature=30.62 C, humidity=34.83 %RH, pressure=1006.17 hPa
LIS2DW12: x=-0.467 g, y=-0.626 g, z=0.622 g
温度は°C、湿度は%RH、気圧はhPa、加速度はgです。静止中の加速度にも重力が含まれます。基板をゆっくり傾けるとX・Y・Zの値が変わることを確認できます。上の数値はその場のセンサ出力例で、精度の比較試験ではありません。
補足:今回はAIと一緒に進めました
今回の確認では、PCを操作できるAIエージェントがサンプルの取得・ビルド・書き込みと測定値の確認を進め、Program/RunとResetは人が操作しました。
AIで同じ作業を行うには、PCのファイルやUSBシリアルを扱えるツールと許可が必要です。通常のチャットだけで接続機器を操作できるわけではありません。AIを使わない場合も、上の手順で同じサンプルを動かせます。
次に試すこと
kSampleIntervalMsを変更する:測定周期を変える- 動き検出と衝撃後の記録:割り込み、FIFO記録、波形表示を試す
動作しない場合は、Program/RunとReset、ポートの重複使用、115200 bpsの設定を確認し、センサが検出されない場合は給電・I2C接続・プルアップを確認してください。
