Este componente configura el bus I²C para su placa de desarrollo ESP32 o ESP8266. Para que estos componentes funcionen correctamente, debe definir el bus en su configuración. Tenga en cuenta que el ESP habilitará sus resistencias pull-up internas de 10 kΩ para estos pines, por lo que generalmente no necesita colocar los externos. Puede usar varios dispositivos en un bus I²C, ya que a cada dispositivo se le asigna una dirección única para comunicarse entre él y el ESP. Puede hacer esto saltando cables de las dos líneas (SDA y SCL) de cada placa de dispositivo a la siguiente placa de dispositivo o conectando los cables de cada dispositivo a los dos pines I²C en el ESP.
La configuración I²C será necesaria en sensores como el htu21d, el BMP280, el BME280 y el BME680
# Ejemplo de entrada de configuración para ESP32
i2c:
sda: 21
scl: 22
scan: true
id: bus_a
Variables de configuración I²C Bus
- sda (Opcional, Pin): El pin para la línea de datos del bus I²C. Los valores predeterminados son los predeterminados de su placa (generalmente son GPIO21 para ESP32 y GPIO4 para ESP8266).
- scl (Opcional, Pin): El pin para la línea de reloj del bus I²C. Los valores predeterminados son los predeterminados de su placa (generalmente GPIO22 para ESP32 y GPIO5 para ESP8266).
- escanear (opcional, booleano): si ESPHome debe realizar una búsqueda del espacio de direcciones I²C al inicio. El valor predeterminado es true.
- frecuencia (opcional, flotante): Establezca la frecuencia en la que debe operar el bus. El valor predeterminado es 50kHz. Los valores son 10kHz, 50kHz, 100kHz, 200kHz, …800kHz
- id (opcional, ID): especifique manualmente la ID para este bus I²C si necesita varios buses.
Si el dispositivo puede admitir múltiples buses I²C (ESP32 tiene 2, ESP8266 no admite más de uno). Estos buses deben definirse como se indica a continuación y los sensores deben configurarse especificando el bus correcto:
# Ejemplo de entrada de configuración
i2c:
- id: bus_a
sda: 13
scl: 16
scan: true
- id: bus_b
sda: 14
scl: 15
scan: true
# Los sensores deben especificarse de la siguiente manera
- platform: bme680
i2c_id: bus_b
address: 0x76
# ...
# Si se utiliza un multiplexor I²C, todos los dispositivos I²C se pueden configurar adicionalmente como:
- platform: bmp280
multiplexer:
id: multiplex0
channel: 0
# ...