This GPIO map mirrors the Ethernet GAP for sensors and outputs, but without a LAN8720 attached. The Wi-Fi radio handles networking; the “LAN8720” pins are reserved for future Ethernet or expansion.
| GPIO | Signal / Device | Direction | Notes |
|---|---|---|---|
| GPIO2 | DHT11 Temperature / Humidity | INPUT (1-wire) | Strap pin; idles high via DHT11, OK with clean wiring |
| GPIO4 | Garage Door Relay | OUTPUT (momentary) | Drives relay IN to simulate wall button press |
| GPIO5 | Buzzer (Active) | OUTPUT | Active buzzer, 3.3 V |
| GPIO13 | Inside Garage Door Reed | INPUT (pullup) | Reed between GPIO13 and GND |
| GPIO14 | Main Garage Door Reed | INPUT (pullup) | Primary door state (open/closed) |
| GPIO16 | Outside Garage Door Reed | INPUT (pullup) | Reed between GPIO16 and GND |
| GPIO32 | I²C SDA – OLED | Bidirectional | SDA for 0.96″ OLED (addr 0x3C) |
| GPIO33 | I²C SCL – OLED | OUTPUT | SCL for 0.96″ OLED (addr 0x3C) |
| GPIO34 | PIR Inside | INPUT-only | No internal pull-up; PIR module drives logic level |
| GPIO35 | PIR Outside | INPUT-only | No internal pull-up; PIR module drives logic level |
Wiring assumptions: reeds on 13 (inside), 16 (outside), 14 (main); PIRs on 34 (inside) and 35 (outside); OLED on SDA=32 / SCL=33; DHT11 on GPIO2; garage relay on GPIO4; buzzer on GPIO5.
The ESP32-WROOM module provides 2.4 GHz Wi-Fi (802.11b/g/n). No external Ethernet PHY is used in this variant. Keep antenna area clear of metal and large ground planes in the enclosure where possible.
To keep this design compatible with the Ethernet GAP, the LAN8720-compatible pins are treated as reserved in this Wi-Fi-only build. Leave these unconnected unless you are intentionally adding an Ethernet or RMII-based expansion.
| GPIO | Suggested Role | Notes |
|---|---|---|
| GPIO17 | Future RMII CLK_OUT | Ethernet clock (LAN8720 in Eth variant) |
| GPIO18 | Future MDIO | MDIO data for PHY |
| GPIO23 | Future MDC | MDIO clock for PHY |
| GPIO19 | Future RMII TX0 | TX data 0 |
| GPIO22 | Future RMII TX1 | TX data 1 |
| GPIO21 | Future RMII TX_EN | Transmit enable |
| GPIO25 | Future RMII RX0 | RX data 0 |
| GPIO26 | Future RMII RX1 | RX data 1 |
| GPIO27 | Future RMII CRS | Carrier sense |
In a pure Wi-Fi build, treating these as reserved keeps wiring and firmware compatible with your Ethernet GAP baseline.
Boot / flash pins to avoid
- GPIO6..11 – Flash pins (SDIO). Do not use.
- GPIO0, GPIO2, GPIO12, GPIO15 – Boot strap pins; use with care.
- GPIO1 (TX0), GPIO3 (RX0) – Serial console; avoid unless you know the trade-offs.
Input-only pins
Input-only pins are ideal for dry-contact sensors when paired with external pull-ups:
- GPIO34, GPIO35, GPIO36 (VP), GPIO39 (VN)
- Typical uses: safety beams, extra reeds, additional PIRs, dry-contact inputs.
The 0.96″ OLED is powered from 3.3 V and uses I²C at address 0x3C
on GPIO32/33.
| ESP32-WROOM | OLED Module | Typical Wire Color | Function |
|---|---|---|---|
| 3V3 | VCC | Red | Display power (3.3 V) |
| GND | GND | Black | Common ground |
| GPIO32 | SDA | Blue | I²C data |
| GPIO33 | SCL | Green | I²C clock |
The DHT11 uses GPIO2 as its single data line and runs from 3.3 V.
| ESP32-WROOM | DHT11 | Typical Wire Color | Function |
|---|---|---|---|
| 3V3 | VCC | Red | Sensor power (3.3 V) |
| GND | GND | Black | Common ground |
| GPIO2 | DATA / OUT | Yellow | DHT11 data (1-wire) |
Three reed switches monitor door position: inside track, outside track, and main open/closed state. Each is wired between the GPIO and ground with the internal pull-up enabled.
| GPIO | Reed Location | Wiring | Notes |
|---|---|---|---|
| GPIO13 | Inside Garage Door Reed | Reed between GPIO13 and GND | INPUT, pullup enabled |
| GPIO16 | Outside Garage Door Reed | Reed between GPIO16 and GND | INPUT, pullup enabled |
| GPIO14 | Main Garage Door Reed | Reed between GPIO14 and GND | Primary door state |
Two PIR sensors monitor inside and outside motion for safety and auto-close logic. GPIO34 and GPIO35 are input-only; the PIR modules provide logic-level outputs.
| GPIO | PIR | Wiring | Notes |
|---|---|---|---|
| GPIO34 | PIR Inside | VCC to 5 V or 3.3 V (per module), GND to GND, OUT to GPIO34 | Input-only; no internal pull-up |
| GPIO35 | PIR Outside | VCC to 5 V or 3.3 V (per module), GND to GND, OUT to GPIO35 | Input-only; no internal pull-up |
Garage Door Relay (GPIO4)
The relay module simulates the wall-button press. Coil side is powered from 5 V (dedicated buck), IN pin is driven by GPIO4.
| ESP32 / Rail | Relay Module | Function |
|---|---|---|
| 5 V Supply | DC+ | Relay power (5 V) |
| GND (common) | DC- | Common ground |
| GPIO4 | IN | Relay control (momentary) |
| Garage opener button contacts | NO / COM | Connect in parallel with wall button |
Buzzer (GPIO5)
The active buzzer is powered from 3.3 V and driven by GPIO5 for pre-warn and continuous-beep behavior.
| ESP32-WROOM | Buzzer | Function |
|---|---|---|
| 3V3 | VCC / + | Power (3.3 V) |
| GND | GND / − | Common ground |
| GPIO5 | IN (if 3-pin) | Drives active buzzer |