esphome-docs/components/i2c.rst

66 lines
2.0 KiB
ReStructuredText
Raw Normal View History

2018-06-01 18:10:00 +02:00
.. _i2c:
2018-05-13 11:37:02 +02:00
I²C Bus
=======
2018-11-14 22:12:27 +01:00
.. seo::
:description: Instructions for setting up the I²C bus to communicate with 2-wire devices in ESPHome
:image: i2c.png
2018-11-14 22:12:27 +01:00
:keywords: i2c, iic, 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. Please note the ESP
2019-01-09 14:43:18 +01:00
will enable its internal 10kΩ pullup resistors for these pins, so you usually don't need to
put on external ones.
2018-05-13 11:37:02 +02:00
.. code-block:: yaml
2018-05-13 11:37:02 +02:00
# Example configuration entry
i2c:
sda: 21
scl: 22
scan: True
id: bus_a
2018-05-13 11:37:02 +02:00
Configuration variables:
2018-08-24 22:44:01 +02:00
------------------------
2018-05-13 11:37:02 +02:00
- **sda** (*Optional*, :ref:`config-pin`): The pin for the data line of the I²C bus.
2018-06-01 18:10:00 +02:00
Defaults to the default of your board (usually GPIO21 for ESP32 and GPIO4 for ESP8266).
- **scl** (*Optional*, :ref:`config-pin`): The pin for the clock line of the I²C bus.
2018-06-01 18:10:00 +02:00
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.
2019-03-20 20:08:21 +01:00
Defaults to ``True``.
- **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on.
Defaults to ``50kHz``. Values are ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz``
- **id** (*Optional*, :ref:`config-id`) Manually specify the ID for this I²C bus if you need multiple I²C buses.
.. note::
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:
.. code-block:: yaml
# 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
# ...
2018-05-14 21:15:49 +02:00
2018-06-01 18:10:00 +02:00
See Also
--------
2019-05-12 22:44:59 +02:00
- :apiref:`i2c/i2c.h`
- :ghedit:`Edit`