Escrevendo em Português


Aqui vão algumas recomendações para resolver o seu problema com o MCP23017 e o ESP32 rodando ESPHome:
  • Veja se você está usando pinos I²C livres e não “boot-strap” do módulo:
    • Evite usar GPIO0, GPIO2, GPIO12, GPIO15 etc., pois esses pinos têm funções internas de seleção de boot.
    • Use, por exemplo, SDA = GPIO21 e SCL = GPIO22 no ESP32-WROOM-32E.
      (baseado em guidance da knowledge base: evite boot-strapped pins quando possível)
  • Garanta pull-ups e desacoplamento adequados:
    • Coloque dois 4.7k Resistor (um em SDA, outro em SCL) na tensão de 3.3 V.
    • Acrescente também um 0.1 µF Capacitor próximo ao pino EN do ESP32 para melhorar imunidade a ruídos.
      (conforme recomendação da knowledge base: pull-ups de 4.7 kΩ e C_EN = 0.1 µF)
  • No YAML do ESPHome, defina o barramento e insira um delay antes de iniciar o MCP23017:

Yaml


i2c:
  sda: GPIO21
  scl: GPIO22
  scan: True    # opcional, ajuda no debug

# opcional: para dar tempo de estabilização
on_boot:
  then:
    - delay: 2s

mcp23017:
  - id: expander
    address: 0x20    # ajuste conforme o A0/A1/A2
    # seus pinos e configurações…
  • Verifique o hardware do MCP23017:
    • VDD em 3.3 V, VSS em GND.
    • RESET puxado para 3.3 V (por resistor interno ou externo).
    • Endereço I²C configurado corretamente via A0/A1/A2.
  • Teste o scan do I²C separadamente:
    1. Programe ESPHome apenas com o bloco i2c: e scan: True.
    2. Abra o console e valide se o 0x20 aparece na lista de dispositivos encontrados.
    3. Só então adicione o componente MCP23017-E/SP.
Com esses ajustes de pinos, pull-ups, desacoplamento e delay, o ESPHome deve conseguir detectar o expander no barramento I²C.
Selecionar pull-ups
Selecionar capacitor EN
Configurar net class
Criar pontos de teste
Selecionar footprint MCP23017

Name
Pin #
Type
Part Type
Terminal Order
Terminal Type
GPB0
1
Unspecified
Terminal
bidi
GPB1
2
Unspecified
Terminal
bidi
GPB2
3
Unspecified
Terminal
bidi
GPB3
4
Unspecified
Terminal
bidi
GPB4
5
Unspecified
Terminal
bidi
GPB5
6
Unspecified
Terminal
bidi
GPB6
7
Unspecified
Terminal
bidi
GPB7
8
Unspecified
Terminal
bidi
VDD
9
Unspecified
Terminal
powerIn
VSS
10
Unspecified
Terminal
powerIn
NC
11
Unspecified
Terminal
notConnected
SCK
12
Unspecified
Terminal
INPUT
SDA
13
Unspecified
Terminal
bidi
NC
14
Unspecified
Terminal
notConnected
A0
15
Unspecified
Terminal
INPUT
A1
16
Unspecified
Terminal
INPUT
A2
17
Unspecified
Terminal
INPUT
~RESET~
18
Unspecified
Terminal
INPUT
INTB
19
Unspecified
Terminal
tristate
INTA
20
Unspecified
Terminal
tristate
GPA0
21
Unspecified
Terminal
bidi
GPA1
22
Unspecified
Terminal
bidi
GPA2
23
Unspecified
Terminal
bidi

MCP23017-E-SP