
ClimateSprinklerController
kbx81/ClimateSprinklerController
ESP32-based climate and sprinkler controller for use with ESPHome

ESP32-based climate and sprinkler controller for use with ESPHome
ClimateSprinklerController is an open-source printed circuit board by kbx81, from the kbx81/ClimateSprinklerController repository on GitHub. It is a 2-layer board of 169.5 × 84 mm with 184 parts on 131 nets, routed with 1,383 tracks and 183 vias.
It is built around the ESP32-WROVER, 2N6073BG and BME280, with the BME680, DHT22 and FT232RL among its other parts. Its parts include 55 resistors, 37 capacitors, 13 ICs, 8 transistors and 8 connectors. It belongs with the home automation and IoT boards and the ESP32 boards of this library.

Here you'll find plans for an ESP32-based controller designed with ESPHome in mind. It is primarily designed for switching 24-volt AC circuits but it is flexible by design and should be adaptable to other types of electrical workloads.
In the Preface you will find background information about this project such as how it came to be and some personal thoughts and experiences I've had with home automation through the years.
In the Hardware document you will find a general explanation of the theory of operation of a thermostat as well as a design overview of this device, some handy tips (should you choose to build one), construction, usage, and installation detail.
Finally, the Hardware Detail document aims to explain why I did what I did -- design decisions, etc.
At present there are two major "versions" of (iterations on?) the device -- a version that supports an OLED display such as the SSD1325 and a version (well, actually three versions) that supports a Nextion touchscreen display. The project files for each can be found in its respective directory:
The schematic and PCB were drawn in KiCAD. I had PCBs fabricated by Elecrow but nearly any PCB fabricator should be able to manufacture these without any issues.
On Octopart I have posted a bill of materials (BoM) for each design version:
Save money by reading through the build guide before you order any parts, as you likely do not need every part in the linked BoMs! (For example, there are footprints multiple sensors on each PCB. You do not need all of the sensors!)
I've created a separate repository for my ESPHome configurations; if you're looking for a starting point/example configuration, please have a look there.
Everything you see here is provided to you free of charge. You are free to use it however you please within the constraints of the license -- but you do so at your own risk. I accept absolutely no liability if you cause damage to your property, HVAC system, or any other hardware you choose to connect to this device.
The circuit schematics, PCBs and enclosures found here are licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.

Thanks for visiting!
| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 100 nF | Capacitor_SMD:C_0805_2012Metric | C3, C4, C6, C10, C11, C15, C17, C22, C23, C24, C26, C28, C29, C30, C31, C32 +1 |
| 16 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R2, R3, R5, R6, R7, R8, R11, R13, R14, R15, R22, R25, R26, R30, R50 |
| 5 | .01 uF | Capacitor_SMD:C_0805_2012Metric | C33, C34, C35, C36, C37 |
| 5 | 180 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R40, R41, R42, R43, R44 |
| 5 | 270 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R35, R36, R37, R38, R39 |
| 5 | 2N6073BG | ClimateSprinklerController:TO-225-3_Vertical | Q5, Q6, Q7, Q8, Q9 |
| 5 | 39 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R51, R52, R53, R54, R55 |
| 5 | 820 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R45, R46, R47, R48, R49 |
| 5 | MOC3043 | Package_DIP:SMDIP-6_W9.53mm | U12, U13, U14, U15, U16 |
| 4 | 4.7 uF | Capacitor_SMD:C_0805_2012Metric | C2, C5, C9, C12 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H5, H6, H7, H8 |
| 3 | 1 uF | Capacitor_SMD:C_0805_2012Metric | C14, C19, C20 |
| 3 | 2K7 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R10, R33, R34 |
| 3 | 47 uF | Capacitor_SMD:C_1210_3225Metric | C16, C18, C21 |
| 2 | 10 uF | Capacitor_SMD:CP_Elec_5x5.8 | C25, C27 |
| 2 | 100K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R16, R19 |
| 2 | 10K | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | TH1, TH2 |
| 2 | 1K5 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R31, R32 |
| 2 | 3K3 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R18, R21 |
| 2 | 4.7 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R12, R20 |
| 2 | MMSS8050 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 1 | 10 uF | Capacitor_SMD:C_0805_2012Metric | C1 |
| 1 | 120 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R28 |
| 1 | 15 uH | Inductor_SMD:L_Wuerth_WE-PD-Typ-LS | L1 |
| 1 | 1K2 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R9 |
| 1 | 1K6 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R27 |
| 1 | 220 nF | Capacitor_SMD:C_0805_2012Metric | C13 |
| 1 | 24.9K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R17 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q4 |
| 1 | 300 mA | Fuse:Fuse_2920_7451Metric | F1 |
| 1 | 3V3 | LED_SMD:LED_1206_3216Metric_ReverseMount_Hole1.8x2.4mm | D7 |
| 1 | 470 uF | ClimateSprinklerController:CP_Radial_Cutout_L20.0mm_D10.0mm_P5.00mm | C7 |
| 1 | 4K7 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R4 |
| 1 | 560 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R29 |
| 1 | 5K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R23 |
| 1 | 5V | LED_SMD:LED_1206_3216Metric_ReverseMount_Hole1.8x2.4mm | D6 |
| 1 | 7.5 TO 40 V | Connector_BarrelJack:BarrelJack_Horizontal | J1 |
| 1 | 8K2 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R24 |
| 1 | AR_EN | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP11 |
| 1 | AR_IO0 | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP12 |
| 1 | BME280 | Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumbering | U9 |
| 1 | BME280_A0 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP15 |
| 1 | BME680 | Package_LGA:Bosch_LGA-8_3x3mm_P0.8mm_ClockwisePinNumbering | U7 |
| 1 | BME680_A0 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP14 |
| 1 | ClimateSprinklerControllerQR | ClimateSprinklerController:ClimateSprinklerControllerQR | QR***** |
| 1 | DHT22 | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | U17 |
| 1 | ESP32-WROVER | ClimateSprinklerController:ESP32-WROVER | U1 |
| 1 | FT232RL | Package_SO:SSOP-28_5.3x10.2mm_P0.65mm | U3 |
| 1 | G | LED_SMD:LED_1206_3216Metric_ReverseMount_Hole1.8x2.4mm | D11 |
| 1 | G6E-134P-US DC5 | Relay_THT:Relay_SPDT_Omron_G6E | K1 |
| 1 | HVAC | ClimateSprinklerController:PhoenixContact_SPTAF_1_12-3.5-IL_1x12_P3.50mm_Vertical | J10 |
| 1 | I2C | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Vertical | J8 |
| 1 | INTA_TO_I36 | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP5 |
| 1 | INTB_TO_I39 | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP4 |
| 1 | IO15 | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP13 |
| 1 | IO26/RTS | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP8 |
| 1 | IO_EXP | Connector_PinSocket_2.54mm:PinSocket_2x09_P2.54mm_Vertical | J9 |
| 1 | J5_V_SEL | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP9 |
| 1 | LD1086DT33TR | Package_TO_SOT_SMD:TO-252-2 | U8 |
| 1 | LMR36520 | Package_SO:Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm_ThermalVias | U5 |
| 1 | LOGO | ClimateSprinklerController:HomeAssistant_slik_logo | G*** |
| 1 | LOGO | ClimateSprinklerController:ESPHome_slik_logo | G*** |
| 1 | MCP23017_A0 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP1 |
| 1 | MCP23017_A1 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP2 |
| 1 | MCP23017_A2 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP3 |
| 1 | MCP23017_SO | Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm | U2 |
| 1 | MODE | Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx58-2LFS | SW3 |
| 1 | N/A | Diode_SMD:D_SOD-123 | D9 |
| 1 | N/A | Diode_SMD:D_SOD-123F | D1 |
| 1 | N/A | Connector_USB:USB_Micro-B_Molex-105017-0001 | J2 |
| 1 | N/A | ClimateSprinklerController:RV_Disc_D7mm_W4mm_P5mm | RV1 |
| 1 | N/A | Diode_SMD:Diode_Bridge_Bourns_CD-MBL2xxS | D2 |
| 1 | NEXTION | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J4 |
| 1 | PG_TO_EN | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP10 |
| 1 | PIR | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J7 |
| 1 | POWER | Button_Switch_THT:SW_Push_1P2T_Vertical_E-Switch_800UDP8P1A1M6 | SW1 |
| 1 | POWER_SEL | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J3 |
| 1 | RELAY | LED_SMD:LED_1206_3216Metric_ReverseMount_Hole1.8x2.4mm | D10 |
| 1 | RESET | Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx58-2LFS | SW2 |
The 161 most common of 184 parts.
It measures 169.5 × 84 mm and has 2 copper layers, 1.6 mm thick.
184 parts, built around the ESP32-WROVER, 2N6073BG, BME280 and BME680. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the kbx81/ClimateSprinklerController repository on GitHub, at the commit this page was made from: the board is WROVER-Nextion5/ClimateSprinklerController.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask kbx81 before reusing the design.

kbx81/ClimateSprinklerController
ESP32-based climate and sprinkler controller for use with ESPHome

kbx81/ClimateSprinklerController
ESP32-based climate and sprinkler controller for use with ESPHome

kbx81/ClimateSprinklerController
ESP32-based climate and sprinkler controller for use with ESPHome

oomlout/oomlout_oomp_project_bot_v_2


LudovicLemarinel/EspHomeAutomation
Home Automation based on ESP8266 and MQTT


MUBARIS-KT/DC-DC_CONVERTER
This project provides the complete design and code for a DC to DC converter that steps up 12V DC to 300V DC. The project is a comprehensive solution in power electronics, including PCB design, STM32 code for PWM…


curiouselectric/airQualitySensor
This is a PCB and design for an air quality sensor unit using the airrohr/luftdaten/sensor.community design

PostTenebrasLab/PTL-IR_remote
IR remote based on esp8266 with OTA, MQTT, web server, DHT22, brightness, IRM