Relay
Controlling Relay 4CH with Espressif ESP32
What is the Relay 4CH?
Relay 4CH practical reference
A 4-relay board sharing the same opto-isolated design as the single-channel version, ideal for home-automation projects controlling several devices.
Key specifications
- Control side: 5 V DC per channel, opto-isolated, ~15-20 mA each when energized
- Switching side: Up to 250V AC / 10A or 30V DC / 10A per channel on the common SRD-05VDC-SL-C relays used on most of these boards
- Trigger logic: Active LOW on most modules — a LOW signal closes that channel's relay
- Peak current: All 4 relays switching on together draw a brief combined inrush — size the 5V supply for that, don't rely on the MCU board's onboard regulator alone
Pinout and connection notes
Same mains-voltage isolation rules as the single-channel version, times four — keep the COM/NO/NC screw terminals physically separated from the 5V logic side of the board.
- VCC: Power, 5V DC, control side
- GND: Ground, control side
- IN1-IN4: Signal inputs, one per channel, from the MCU — active LOW on most modules
- COM 1-4: Common terminal, one per channel, switching side
- NO 1-4: Normally open, one per channel — connects to that channel's COM when energized
- NC 1-4: Normally closed, one per channel — connects to that channel's COM when de-energized
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.
Setting Up Relay 4CH with Espressif ESP32
Wiring
| Component pin | Espressif ESP32 pin | Note |
|---|---|---|
| VCC | 5V (VIN) | Relay coils draw real current — power from VIN/5V, and use a dedicated 5V supply if switching all 4 channels together |
| GND | GND | |
| IN1, IN2, IN3, IN4 | GPIO13, GPIO12, GPIO14, GPIO27 | Avoid GPIO12 if your board is strapping-sensitive at boot — swap to another free GPIO if you see boot issues |
Swipe sideways to see every column →
- Same setup()-first HIGH-init reasoning as the Arduino Uno — set every pin HIGH before the relay board can react to boot-time GPIO wobble.
- GPIO12 is a boot-strapping pin on many ESP32 modules — if the board won't boot reliably with the relay wired there, move that channel to a different free GPIO.
- Same mains-safety caveat as the other boards if you're switching AC on the COM/NO/NC side.
Related Components
Related Guides & Projects
MicroPython vs Arduino on ESP32: Which Should You Learn First?
An honest comparison for beginners: where MicroPython is easier, where Arduino C++ is faster, how libraries and memory differ, and how to choose based on your project instead of hype.
MicroPython ESP32 Web Server: Control an LED or Relay from Your Browser
Create a working web server with the socket module, parse requests, serve a responsive control page for an LED or a relay, keep the displayed state truthful, choose a safe relay startup state and make the server survive bad or repeated requests.
MicroPython on ESP32 and Raspberry Pi Pico W: The Complete Guide
A structured MicroPython learning path for ESP32 and Pico W. Set up your tools, control GPIO, read sensors, connect to WiFi, build web servers, publish MQTT data and make projects reliable. Start here, then follow the links by level.
boot.py vs main.py in MicroPython: What Runs, When and Why
Understand the difference between boot.py and main.py in MicroPython, startup order, Wi-Fi setup, project structure, and recovery from boot errors.