ESP32でI2Cに接続されたデバイスの一覧を表示する方法(Arduino-IDEを使用)

ESP32でI2Cに接続されたデバイスを確認したい時ありませんか?

どのアドレスにデバイスがつながってるか、一覧で表示して欲しいですよね。

こんにちは、北神です。

RaspberryPiでは、i2cdetectというコマンドがあります。

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- 4a -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

この様な表示のものです。

これを、ESP32でも行いたい。
早速、ESP32(Arduino環境)で行えるライブラリが無いか調べました。

ズバッと、ありました。

https://www.arduinolibraries.info/libraries/i2cdetect

ダウンロードしてライブラリに反映します。

早速サンプルを試してみました。

#include 
#include 
void setup() {
    Serial.begin(115200);
    Wire.begin();
    delay(1000);
}
void loop() {
  i2cdetect();  // default range from 0x03 to 0x77
  delay(2000);
}

試しに、BMX055という9軸加速度センサを試しに接続しました。
このセンサーは、ワンチップですが、それぞれI2Cは3個分(加速度センサ、ジャイロセンサ、磁気センサそれぞれ)あり、
i2cdetectで見ると、3台分のアドレスが表示されました。

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- 13 -- -- -- -- -- 19 -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

これで、センサーのアドレスの確認や状態の認識ができますので、開発もスピーディーに行えると思います。

それでは!

株式会社アバンドでは、IoTに関するネットワーク開発、ハードウエア開発を行っております。

まずは、お気軽にお問い合わせください。

関連記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA