I2C это шина для подключения (способ подключения) различных дополнительных плат (памяти, часов, и т.д.) к плате ESP32. Подробнее тут. I2C шина имеет два провода для передачи данных: SDA и SCL. И два провода для питания подключаемых компонент:
- контакт GRD (он же G) - это земля или минус (минус на схемах всегда черный провод).
- контакт VCC это +3.3В
Т.о. платы подключаемые по шине I2C имеют минимум 4 контакта: SDA, SCL, GRD, VCC. В ESP32 контактам SDA и SCL по умолчанию соответствуют GPIO21 и GPIO22, соответственно.
Т.е. платы подключаемые по шине I2C имеют 4 контакта: SDA, SCL, GRD, VCC. В ESP8266 контактам SDA и SCL по умолчанию соответствуют GPIO4 (D2) и GPIO5 (D1), соответственно. B настройках программы Xendil эти GPIO могут быть поменяны местами, другие GPIO в качестве SDA и SCL назначать нельзя.
Несколько устройств к I2C подключаются параллельно. Все устройства подключенные по I2C шине имеют в ней свой уникальный адрес. Этот адрес либо уже зашит производителем в I2C плату или выбирается имеющимися на I2C плате джемперами или просто замыканием соответствующих пар контактных площадок (А0, А1, А2, и т.д.). При сборке Xendil модулей все джемпера должны быть убраны, а контактные площадки разомкнуты.
Если на I2C плате есть несколько наборов контактов SDA, SCL, GRD, VCC, то подключаться можно к любым. Сделаны они для удобства распайки, на один набор контактов провода приходят с ESP8266, а с другого набора контактов они могут уйти на другую I2C плату.
Программа Xendil умеет сканировать наличие I2C устройств.