Pada beberapa kasus, kita tidak mengetahui alamat sebuah perangkat (sensor), olehnya perlu kita melakukan scanning

ESP32 – Pin I2C Default


Saat menggunakan ESP32 dengan Arduino IDE, pin I2C default adalah:

GPIO 22 (SCL) GPIO 21 (SDA)

Sketsa Pemindai I2C – Arduino IDE


Jika Anda ingin menemukan alamat I2C dari sensor, layar, atau perangkat I2C tertentu lainnya, sambungkan ke pin I2C ESP32 dan kemudian jalankan sketsa pemindai I2C yang disediakan. Salin kode berikut ke Arduino IDE dan unggah ke papan ESP32.

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(115200);
  Serial.println("\nI2C Scanner");
}

void loop() {
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for(address = 1; address < 127; address++ ) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      if (address<16) {
        Serial.print("0");
      }
      Serial.println(address,HEX);
      nDevices++;
    }
    else if (error==4) {
      Serial.print("Unknow error at address 0x");
      if (address<16) {
        Serial.print("0");
      }
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0) {
    Serial.println("No I2C devices found\n");
  }
  else {
    Serial.println("done\n");
  }
  delay(5000);          
}

Setelah mengunggah kode, pastikan periferal I2C Anda terhubung dengan benar ke board Anda pada pin I2C yang tepat ( SCL=GPIO22 ; SDA =GPIO21 ).

Buka Serial Monitor dengan baud rate 115200. Tunggu beberapa detik, dan alamat I2C perangkat Anda akan tercetak di Serial Monitor. Jika Anda memiliki lebih dari satu perangkat yang terhubung ke bus I2C yang sama, alamat semua perangkat akan ditampilkan.

enter image description here

Sumber : https://randomnerdtutorials.com/esp32-i2c-scanner-arduino/