Seeed Studio XIAO ESP32C6 で温湿度センサーを使う方法

この記事では、Seeed Studio XIAO ESP32C6とMicroPythonを使って温度センサーの値を取得する方法を解説します。

この記事で学べること

  • I2Cインタフェース
  • Seeed Studio XIAO ESP32C6と温湿度センサーの接続方法
  • MicroPythonのコード例
  • 測定データの確認方法

ステップごとの解説

  1. 必要な部品を準備する
    今回は、Seeed Studio社のXIAO ESP32C6を使います。
    XIAO ESP32C6は、Amazonスイッチサイエンス社マルツエレック社などで購入することができます。
  2. MicroPythonをインストールする
    下記の記事を参考にMicroPythonをインストールしてください。

    Seeed Studio XIAO ESP32C6
  1. 温湿度センサーを準備する
    今回は温湿度センサーとして、ボッシュ(BOSCH)製総合環境センサBME680を使用したセンサーモジュールを使います。温度、湿度、圧力(気圧)に加えガス(有機溶剤、アルコール等)の検出が可能です。基板上にI2CレベルコンバータICを実装しているので、Seeed Studio XIAO ESP32C6とはI2Cインタフェース接続となります。
    センサーモジュールのマニュアルはここにあります。
BME680
  1. I2Cインタフェースとは
    下記の記事に説明がありますのでご覧ください。

    ESP32のMicroPythonで温湿度センサーを使う方法
  1. Seeed Studio XIAO ESP32C6のI2Cインタフェース
    Seeed Studio XIAO ESP32C6のI2CインタフェースであるSDAとSCLは下図をみると、GPIO22がSDA、GPIO23がSCLであることがわかります。
  1. Seeed Studio XIAO ESP32C6とBME680モジュールとの接続
    BME680のSDAとSeeed Studio XIAO ESP32C6のSDA(GPIO22)、BME680のSCLとSeeed Studio XIAO ESP32C6のSCL(GPIO23)を接続します。
  1. BME680モジュールとSeeed Studio XIAO ESP32C6をワイヤーで接続する
    下表と写真を参考に接続します。

Seeed Studio XIAO ESP32C6

BME680

GND

GND

D4(GPIO22)

SDA

D5(GPIO23)

SCL

3.3V-OUT

VIN

  1. Seeed Studio XIAO ESP32C6をPCに接続する
    Seeed Studio XIAO ESP32C6とPCをUSBケーブルで接続します。接続できているか確認します。
ls -l /dev/tty.usbmodem*
crw-rw-rw-  1 root  wheel  0x9000004  7月 11 11:14 /dev/tty.usbmodem11101
  1. VSCodeで以前、作ったプロジェクトを選択する
    VSCodeを起動して、以前、作ったプロジェクトを選択します。
  1. エディタで新しいファイルを作成する
    左側のエクスプローラにて右クリックして、「新しいファイル」を選択します。ファイル名を入力する欄が表示されるので、適当に名前を入力します。今回は、「temper.py」としました。
  1. BME680のドライバをインストールする
    BME680には簡単に使えるようにドライバが公開されているので、インストールします。
    モジュールはここにあるので、bme680.pyをダウンロードします。
    ダウンロードしたら、bme680.pyをプロジェクトフォルダに保存します。保存したら、bme680.pyを選択して、右クリックから、「Upload file to Pico」をクリックすると、bme680.pyがSeeed Studio XIAO ESP32C6内に保存されます。
  1. 下記コードをエディターで記入する
    「temper.py」を選択すると、エディター画面が開くので、下記コードを記入して保存します。
from machine import Pin, I2C
import bme680

i2c = I2C(sda=Pin(22), scl=Pin(23))

bme = bme680.BME680_I2C(i2c)
print("temperature : %s" % bme.temperature)
print("humidity : %s" % bme.humidity)
print("pressure : %s" % bme.pressure)
print("gas : %s" % bme.gas)
  1. 「temper.py」を実行する
    左のエクスプローラにて、「temper.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、REPL画面に下記のように、温度、湿度、圧力(気圧)、ガスが表示されます。

    温度:temperature、湿度:humidity、圧力(気圧):pressure、ガス:gas
MicroPython v1.28.0 on 2026-04-06; Seeed XIAO ESP32C6 with ESP32C6
Type "help()" for more information or .help for custom vREPL commands.

>>> 
temperature : 30.38547
humidity : 64.474208
pressure : 1014.67336
gas : 14287

>>> 

まとめ

ESP32とMicroPythonを使えば、シンプルなコードで温度センサーを動かせます。応用すればIoTデバイスに簡単に組み込めます。

類似投稿