Universal ESP32 Control PCB
Budget: €30 – €250 EUR
Task: PCB Design for Control Board
Goal
Design a universal control PCB with:
ESP32 DevKitC (plugged into a 2×19 pin socket, microUSB remains on the DevKit board),
Tuya WBR3 module (UART communication, 3.3 V supply),
8× relay outputs (5 V),
5 sensor inputs connected via 4-pin connectors (VCC=5 V, GND, SIG1, SIG2),
RGB LED strip control (PWM color + brightness),
buzzer,
button on the PCB edge,
12 V DC input with onboard step-down to 5 V.
Placement of inputs and outputs
Relays: outputs routed to 5.08 mm screw terminals on the sides of the PCB.
Sensors: connected via 4-pin connectors on the opposite edge of the PCB.
Power (12 V input): separate screw terminal.
RGB LED strip: 4-pin connector (12V, R, G, B).
Button: on the PCB edge, with an additional 2-pin header for external button connection.
Functional blocks
1. ESP32 DevKitC
2×19 pin socket (2.54 mm pitch) for ESP32 DevKitC module.
MicroUSB, RESET, BOOT remain on the DevKit board itself.
2. Communication
Tuya WBR3 module, UART connection with ESP32:
ESP32 GPIO16 (RX), GPIO17 (TX).
Powered from 3.3 V (from ESP32 or from dedicated LDO).
3. Relays
8× 5 V relays, driven through transistor drivers (ULN2803 or similar).
Outputs to screw terminals on the side of the PCB.
Functions labeled as RELAY1 through RELAY8.
4. Sensors (5 units)
Each sensor uses a 4-pin connector: VCC (5 V), GND, SIG1, SIG2.
All signals going into ESP32 must be reduced to 3.3 V (voltage divider or level shifter).
Sensor 1: SIG1=GPIO27, SIG2=GPIO32
Sensor 2: SIG1=GPIO33, SIG2=GPIO34
Sensor 3: SIG1=GPIO35, SIG2=GPIO36
Sensor 4: SIG1=GPIO39, SIG2=GPIO0
Sensor 5: SIG1=GPIO2, SIG2=GPIO15
(Note: GPIO0 and GPIO2 are strap pins – only safe to use as inputs, must not interfere with ESP32 boot process.)
5. RGB LED strip
Connector: 4-pin (12V, R, G, B).
Controlled by 3× MOSFET (low-side switching).
ESP32 PWM outputs: R=GPIO12, G=GPIO13, B=GPIO15.
6. Others
Buzzer: GPIO4.
Button: GPIO14 (INPUT_PULLUP → GND).
ESP32 Pin Mapping
UART: RX=GPIO16, TX=GPIO17
Relays (8×): GPIO18, GPIO19, GPIO21, GPIO22, GPIO23, GPIO5, GPIO25, GPIO26
Sensors (5×):
Sensor 1: GPIO27, GPIO32
Sensor 2: GPIO33, GPIO34
Sensor 3: GPIO35, GPIO36
Sensor 4: GPIO39, GPIO0
Sensor 5: GPIO2, GPIO15
RGB: R=GPIO12, G=GPIO13, B=GPIO15
Buzzer: GPIO4
Button: GPIO14
Power
12 V DC input via 5.08 mm screw terminal.
Step-down 12 V → 5 V (3 A) to supply ESP32, WBR3, relays, and sensors.
3.3 V for WBR3 – either from ESP32 or a small onboard LDO.
GND plane and wide traces for 12 V and 5 V rails.
Deliverables
Schematic (PDF + editable project in KiCad/EasyEDA).
PCB layout + Gerber + BOM (parts preferably from TME.eu).
3D STEP model of the PCB with all components.
Silkscreen with clear labels for terminals, connectors, polarity, and functions.
Goal
Design a universal control PCB with:
ESP32 DevKitC (plugged into a 2×19 pin socket, microUSB remains on the DevKit board),
Tuya WBR3 module (UART communication, 3.3 V supply),
8× relay outputs (5 V),
5 sensor inputs connected via 4-pin connectors (VCC=5 V, GND, SIG1, SIG2),
RGB LED strip control (PWM color + brightness),
buzzer,
button on the PCB edge,
12 V DC input with onboard step-down to 5 V.
Placement of inputs and outputs
Relays: outputs routed to 5.08 mm screw terminals on the sides of the PCB.
Sensors: connected via 4-pin connectors on the opposite edge of the PCB.
Power (12 V input): separate screw terminal.
RGB LED strip: 4-pin connector (12V, R, G, B).
Button: on the PCB edge, with an additional 2-pin header for external button connection.
Functional blocks
1. ESP32 DevKitC
2×19 pin socket (2.54 mm pitch) for ESP32 DevKitC module.
MicroUSB, RESET, BOOT remain on the DevKit board itself.
2. Communication
Tuya WBR3 module, UART connection with ESP32:
ESP32 GPIO16 (RX), GPIO17 (TX).
Powered from 3.3 V (from ESP32 or from dedicated LDO).
3. Relays
8× 5 V relays, driven through transistor drivers (ULN2803 or similar).
Outputs to screw terminals on the side of the PCB.
Functions labeled as RELAY1 through RELAY8.
4. Sensors (5 units)
Each sensor uses a 4-pin connector: VCC (5 V), GND, SIG1, SIG2.
All signals going into ESP32 must be reduced to 3.3 V (voltage divider or level shifter).
Sensor 1: SIG1=GPIO27, SIG2=GPIO32
Sensor 2: SIG1=GPIO33, SIG2=GPIO34
Sensor 3: SIG1=GPIO35, SIG2=GPIO36
Sensor 4: SIG1=GPIO39, SIG2=GPIO0
Sensor 5: SIG1=GPIO2, SIG2=GPIO15
(Note: GPIO0 and GPIO2 are strap pins – only safe to use as inputs, must not interfere with ESP32 boot process.)
5. RGB LED strip
Connector: 4-pin (12V, R, G, B).
Controlled by 3× MOSFET (low-side switching).
ESP32 PWM outputs: R=GPIO12, G=GPIO13, B=GPIO15.
6. Others
Buzzer: GPIO4.
Button: GPIO14 (INPUT_PULLUP → GND).
ESP32 Pin Mapping
UART: RX=GPIO16, TX=GPIO17
Relays (8×): GPIO18, GPIO19, GPIO21, GPIO22, GPIO23, GPIO5, GPIO25, GPIO26
Sensors (5×):
Sensor 1: GPIO27, GPIO32
Sensor 2: GPIO33, GPIO34
Sensor 3: GPIO35, GPIO36
Sensor 4: GPIO39, GPIO0
Sensor 5: GPIO2, GPIO15
RGB: R=GPIO12, G=GPIO13, B=GPIO15
Buzzer: GPIO4
Button: GPIO14
Power
12 V DC input via 5.08 mm screw terminal.
Step-down 12 V → 5 V (3 A) to supply ESP32, WBR3, relays, and sensors.
3.3 V for WBR3 – either from ESP32 or a small onboard LDO.
GND plane and wide traces for 12 V and 5 V rails.
Deliverables
Schematic (PDF + editable project in KiCad/EasyEDA).
PCB layout + Gerber + BOM (parts preferably from TME.eu).
3D STEP model of the PCB with all components.
Silkscreen with clear labels for terminals, connectors, polarity, and functions.