Skip to the content
2 layers114.9 × 100 mmWaterMixer, the printed circuit board in 3D

Using Esp32 to mix water temperature

Size
114.9 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
22
Pads
142
Tracks, vias
217, 6
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
27 Jun 2021
Updated
4 Jun 2023

Overview

WaterMixer is an open-source printed circuit board by guttih, from the guttih/WaterMixer repository on GitHub. It is a 2-layer board of 114.9 × 100 mm with 20 parts on 22 nets, routed with 217 tracks and 6 vias.

It is built around the ESP32-DEVKITC-VE, MCP4728-E/UN and ADS1115. Its parts include 7 ICs, 3 capacitors and 1 resistor. It belongs with the ESP32 boards of this library.

Main components

3

README

README.md

Water Mixer

This project mixes water temperature from a 1/2" hot water pipe and a 1/2" cold water pipe out to a single 3/4" output water pipe. A electrical valve controls the flow from the hot water pipe and another electrical valve controls the cold water pipe. A Temperature sensor is put into the 3/4" output water pipe to sense the current heat of the outgoing water. Finally the third electrical valve is used to drain the hot tub.

Related links

Parts in project

Api

Supported methods, requests and responses are described in the API methods

Wiring the project

Schematic

text
                                                                                         +12V
                                                                                          ┬
  ┌───────────────────────────────────────────────────────────────────────────────────────┤
  │ ┌───────────────────┬──────────────────┬────────────────┬───────────────────────┬──┐  │
  │ │                   │                  │  ╔══════════╗  │  ╔═════════════╗      ┴  │  │
  │ │ ╔══════════════╗  │  ╔═════════════╗ │  ║ Pressure ║  │  ║     ADC     ║     GND │  │
  │ │ ║ POWER SOURCE ║  │  ║ DC_STEPDOWN ║ │  ║  Sensor  ║  │  ║   ADS1115   ║         │  │
  │ │ ║              ║  │  ║   -Vo(GND) -╟─┘  ║          ║  │  ║             ║         │  │
  │ │ ║              ║  │  ║   +Vo(+5V) -╟─┐  ║    Black-╟──┴──╢-G           ║         │  │
  │ │ ║              ║  │  ║             ║ │  ║    Green-╟─────╢-A0          ║         │  │
  │ └─╢-     GND    -╟──┴──╢-GND         ║ │  ║          ║     ╢-A1          ║         │  │
  └───╢-    +12V    -╟─────╢-VIN         ║ │  ║          ║     ╢-A2          ║         │  │
      ╚══════════════╝     ╚═════════════╝ │  ║          ║     ╢-A3          ║         │  │
                                           │  ║      Red-╟─┬───╢-V           ║         │  │
                      +5V                  │  ╚══════════╝ │ ┌─╢-CL       DA-╟─┐       │  │
                       ┬  ┌────────────────┴───────────────┘ │ ╚═════════════╝ │       │  │
                       └──┤                                  │                 │       │  │
                          │ ╔═══════════╗                    │ ╔═════════════╗ │       │  │
                          │ ║  -ESP32-  ║  ╔═════════════╗   │ ║     DAC     ║ │       │  │
                          │ ║           ║  ║ Logic Level ║   │ ║   MCP4728   ║ │       │  │
                          │ ║           ║  ║  converter  ║   │ ║             ║ │       │  │
                          └─╢-VIN   G14-╟──╢-LV3     HV3-╟───┴─╢-CL          ║ │       │  │
                            ║       G13-╟──╢-LV4     HV4-╟─────╢-DA───────DA-╟─┘       │  │
 +3V3   ╔═══════════╗       ║           ║  ║             ║     ║             ║         │  │

Legend

  • (BL) = Black wire (-Ground)
  • (RD) = Red wire (+VCC)
  • (YE) = Yellow wire
  • (GR) = Green wire (voltage signal)
  • (WT) = White wire
  • GND : Ground.
  • ┴
  • GND : Ground. When there is no room to connect the GND on the drawing, this notation is used. Note, all grounds are connected together.
  • VIN : 5V pin on the esp32 pin.
  • G34 : Esp32 GPIO 34 pin which is used to measure voltage coming from pressure sensor.
  • G25 : Esp32 GPIO 25 pin which is used to communicate with the temperature sensor.
  • G12 : Esp32 GPIO 12 pin which is used control the hot water valve.
  • G14 : Esp32 GPIO 14 pin which is used control the cold water valve.
  • G32 : Esp32 GPIO 32 pin which is used control the drain water valve.
  • G## : Other esp32 pins used to control the touch display and read and write to a sd card.
  • Valve H: Hot valve
  • Valve C: Cold valve
  • Valve D: Drain valve

Software development

The software for this project was developed using PlatformIO.

Tests

There are two kinds of tests in this project, integration tests and unit tests.

Integration tests: integration tests are located in the ./test directory.

On windows 10, best would be if you would add this location to your PATH system environment variable C:\Users\your_user_name.platformio\penv\Scripts to get access to the pio.exe application. C:\Users\gudjons.platformio\penv\Scripts Then you can run the tests with this command pio test

Parts

20
QtyValueFootprintReferences
4MountingHolewatermixer-footprints:MountingHole_3.2mm_M3H1, H2, H3, H4
3470uFCapacitor_THT:CP_Radial_Tantal_D8.0mm_P5.00mmC1, C2, C3
2SD_BUCK3Awatermixer-footprints:SD_BUCK3AU6, U7
101x03watermixer-footprints:Screw_Termianl_01x03JD_VALVE1
101x06watermixer-footprints:Screw_Termianl_01x06JHC_VALVES1
14.7kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
1ADS1115watermixer-footprints:ADS1115_moduleU5
1Barrel_Jackwatermixer-footprints:Barrel_JackJ_12V1
1CR2013-MI2120-touchwatermixer-footprints:CR2013-MI2120_touchU1
1ESP32-DevKitCEspressif:ESP32-DevKitCU2
1LLC_4CHwatermixer-footprints:LLC_4CHU3
1MCP4728watermixer-footprints:MCP4728_moduleU4
1Pressure sensorwatermixer-footprints:Screw_Termianl_01x03JPress1
1Temperature sensorwatermixer-footprints:Screw_Termianl_01x03JTemp1

Similar boards

  • 2 layers51.3 × 105 mmZynface V5, the printed circuit board in 3D

    Zynface V5

    zynthian/zynthian-hw

    Zynthian hardware stuff: PCBs, schemes, parts specifications, pin assignment, ...

    26 parts156
  • 2 layers50 × 50 mmESP Wifi Car, the printed circuit board in 3D

    ESP Wifi Car

    Kanedinha/ESP_IDF_WIFI_CAR

    Remote car controled with Wifi HTTP protocol. Using a ESP32 Wrover-It as a Access point web server, the interface made with HTML and JS comunicate car and control it.

    9 parts1
  • 2 layers81.5 × 58.7 mmKonservasi air, the printed circuit board in 3D

    Konservasi air

    heliumonoxide/water_quality_monitoring_device

    Water Quality Monitoring in Water Fountain at Gedung K Faculty of Engineering UI

    31 partsMIT
  • 4 layers70.8 × 108 mmCastor and Pollux, the printed circuit board in 3D

    Castor and Pollux

    wntrblm/Castor_and_Pollux

    A Juno-inspired dual oscillator

    235 parts587
  • 2 layers191.5 × 76 mmPcb project, the printed circuit board in 3D

    Pcb project

    CrashOverride85/zc95

    4 channel EStim box inspired by the mk312bt, with Lua scripting support

    337 parts117GPL-3.0
  • 2 layers99.1 × 99.1 mmPower supply panelized, the printed circuit board in 3D

    Power supply panelized

    thebiguno/microcontroller-projects

    A home for a bunch of microcontroller projects which don't warrant their own repos.

    223 parts75

Questions

How big is the WaterMixer PCB?

It measures 114.9 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the WaterMixer use?

20 parts, built around the ESP32-DEVKITC-VE, MCP4728-E/UN and ADS1115. 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.

Where can I download the WaterMixer KiCad files?

From the guttih/WaterMixer repository on GitHub, at the commit this page was made from: the board is hardware/KiCad/watermixer.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the WaterMixer design in my own project?

Its repository states no licence, so its author keeps all rights: ask guttih before reusing the design.