ESP32 & ESP8266 Connectivity · Intermediate · Web control
ESP32 Multi-Zone Controller
Four outputs and four inputs on one page, for a bench rig with more than one thing to switch.
Firmware status: Generated from this project's own pin map and compiled with arduino-cli for esp32:esp32:esp32 before publication; bench validation on your hardware is still required.
Board: ESP32 DevKit (ESP32-WROOM-32, 30 or 38 pin) · ESP32 dual core @ 240 MHz · 3.3 V logic · build for esp32:esp32:esp32.
What you will build
An ESP32 serving four output channels and four inputs, with the whole state available as JSON for a script.
Components
- ESP32 board
- 4-channel relay or MOSFET board
- Four sensors or switches
- Supply sized for the outputs
Pin map for this build
| Sketch constant | Pin | What it is |
|---|---|---|
PIN_OUT_1 | 4 | Switched output — relay / MOSFET channel, 5 V coil |
PIN_OUT_2 | 5 | Switched output — relay / MOSFET channel, 5 V coil |
PIN_OUT_3 | 16 | Switched output — relay / MOSFET channel, 5 V coil |
PIN_OUT_4 | 17 | Switched output — relay / MOSFET channel, 5 V coil |
PIN_IN_1 | 34 | Analog input — 3.3 V maximum at the pin |
PIN_IN_2 | 35 | Analog input — 3.3 V maximum at the pin |
PIN_IN_3 | 32 | Analog input — 3.3 V maximum at the pin |
PIN_IN_4 | 33 | Analog input — 3.3 V maximum at the pin |
Tools
- USB programming cable
- Multimeter
- Current-limited bench supply (for anything that switches a load)
- Small screwdriver and wire cutters
Build sequence
- Wire the outputs first and test each channel on its own before connecting all four.
- Wire the inputs through pull-downs so an unplugged sensor reads low.
- Flash and switch every channel from the page, confirming the physical click each time.
- Read /data and use it from a laptop script to prove the JSON is machine-usable.
Test and expected result
All four channels switch independently, all four inputs report, and /data parses.
Acceptance checks
four channels independent, inputs report, json parses
Safety and limits
Four channels switching at once can pull a supply down. Size the supply for the worst case, not the average.
Hardware scope
Four digital outputs, four analog inputs, HTTP control plus JSON state.
Connection diagram
Download the connection diagram (SVG)
Download the Arduino sketch (E25_esp32_multi_zone_controller.ino)
Guide source: the sketch on this page was generated from the pin map above and compiled for esp32:esp32:esp32 before publication.
Related projects
- ESP32 Captive Portal Wi-Fi Manager — Boot the ESP32 with no credentials and configure its network from a phone, with the portal saved to flash.
- ESP8266 Config Portal — The same idea on the cheapest board that can do it: an ESP8266 that configures itself from a browser.
- ESP8266 Sensor Portal Logger — A battery-minded sensor node you configure in the field, with the reading shown on its own setup page.