This component sets up the I²C bus for your ESP32 or ESP8266. In order for those components to work correctly, you need to define the I²C bus in your configuration. Please note the ESP will enable its internal 10kΩ pullup resistors for these pins, so you usually don’t need to put on external ones.
# Example configuration entry i2c: sda: 21 scl: 22 scan: True id: bus_a
sda (Optional, Pin): The pin for the data line of the I²C bus. Defaults to the default of your board (usually GPIO21 for ESP32 and GPIO4 for ESP8266).
scl (Optional, Pin): The pin for the clock line of the I²C bus. Defaults to the default of your board (usually GPIO22 for ESP32 and GPIO5 for ESP8266).
scan (Optional, boolean): If ESPHome should do a search of the I²C address space on startup. Defaults to
frequency (Optional, float): Set the frequency the I²C bus should operate on. Defaults to
50kHz. Values are
id (Optional, ID) Manually specify the ID for this I²C bus if you need multiple I²C buses.
If the device can support multiple I²C buses (ESP32 has 2) these buses need to be defined as below and sensors need to be setup specifying the correct bus:
# Example configuration entry i2c: - id: bus_a sda: 13 scl: 16 scan: True - id: bus_b sda: 14 scl: 15 scan: True # Sensors should be specified as follows - platform: bme680 i2c_id: bus_b address: 0x76 # ...