I²C Bus

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.

# Example configuration entry
i2c:
  sda: 21
  scl: 22
  scan: False

Configuration variables:

  • 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 esphomelib should do a search of the i2c address space on startup. Note that this can slow down startup and is only recommended for when setting up new sensors. Defaults to False.
  • frequency (Optional, float): Set the frequency the i²c bus should operate on. Defaults to “100kHz”.

Note

If you’re using the ESP32 and i2c frequently is showing errors in the logs, try with the latest version of the Arduino framework. See arduino_version for information on how to do this.