Skip to the content
PCBKitNew board
4 layers54.4 × 31 mmPoolMonitor, the printed circuit board in 3D

A pool monitor with accompaning PCB

Size
54.4 × 31 mm
Copper layers
4
Thickness
3.66 mm
Parts
28
Nets
29
Pads
84
Tracks, vias
117, 21
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
17 Jan 2022
Updated
3 Jul 2022

Overview

PoolMonitor is an open-source printed circuit board by tpanajott, from the tpanajott/PoolMonitor repository on GitHub. It is a 4-layer board of 54.4 × 31 mm with 28 parts on 29 nets, routed with 117 tracks and 21 vias.

It is built around the ESP-12E, K7803M-1000R3 and AO3400A, with the DMP2225L-7-VB and SS14 among its other parts. Its parts include 8 resistors, 7 capacitors, 3 connectors, 2 ICs and 2 diodes. It belongs with the ESP8266 boards of this library.

Main components

5

README

README.md

PoolMonitor

Description

This is a small PCB made to monitor the temperature of a pool using a DS18B20 waterproof sensor. The PCB is based around a ESP-12 module that will connect to WiFi periodically (period time configurable) and report the temperature together with battery voltage via MQTT. In between the meassurements, the sensors are turned off to save battery.

PCB Preview

Hardware

PCB Manufacturing

I had the board manufactured at JLCPCB. Simply upload the ZIP-file in the PCB/gerbers directory to their website. The following PCB stackup is used:

LayerName
L1(Top Layer)PoolMonitor-F_Cu.gtl
L2(Inner Layer1)PoolMonitor-GND.g2
L3(Inner Layer2)PoolMonitor-3_3V.g3
L4(Bottom Layer)PoolMonitor-B_Cu.gbl

Parts

A BOM for the project is available in the file PCB/PoolMonitor.csv. The parts list have references to LCSC part numbers.

Sensor

This board is designed to use a simple DS18B20 sensor with three wires. The following wiring diagram is to be used and the sensor should be connected to the TempSense1 connector.

Wire ColorConnection
Red+
Black-
YellowD

Jumpers

Disable pol prot

This jumber, when briged, will disable the polarity protection on the power input.

Disable power ctrl

This jumber will, when briged, disable to power control of the DS18B20 sensor when not reading from it. By default the power to the DS18B20 sensor will only be turned on while reading data from it in an attempt to conserve power.

Installation of software

  1. Connect a FTDI programmer set to 3.3V to the header on the PCB.
  2. Download and installation VS Code together with the PlatformIO extention.
  3. Download this repo and open it with PlatformIO.
  4. Hold the SW_FLASH1 button and press and release the SW_RESET1 button. This will put the device into a programming mode.
  5. Create a copy of the "settings.h.example" file found in the "src/" directory and name it settings.h.
  6. Configure all relevant paramaters in the settings.h file.
  7. Make sure to save everything and then press "Upload" in PlatformIO.
  8. Once the upload is complete, disconnect the FTDI-programmer.
  9. Done, enjoy.

Home Assistant configuration

The following configuration example can be added to the sensor section in your Home Assistant configuration. The expire_after paramater set to 4200 means that Home Assistant will consider the value old if 70 minutes has passed since last update from sensor. This value may need to be changed in order to reflect your configuration of the SLEEP_TIME paramater in the settings.h file.

yaml
- platform: mqtt
  device_class: temperature
  name: "Pool temperature"
  state_topic: "/pool/temp/"
  unit_of_measurement: "°C"
  expire_after: 4200
- platform: mqtt
  device_class: temperature
  name: "Pool sensor voltage"
  state_topic: "/pool/voltage/"
  unit_of_measurement: "V"
  expire_after: 4200

Parts

28
QtyValueFootprintReferences
410KResistor_SMD:R_0603_1608MetricR1, R3, R7, R8
3SW_PushButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKCHK_CHARGE1, SW_FLASH1, SW_RESET1
210uFCapacitor_SMD:C_0805_2012MetricC1, C5
222uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC2, C3
1100nFCapacitor_SMD:C_0805_2012MetricC7
110kResistor_SMD:R_0603_1608MetricR5
11KResistor_SMD:R_1206_3216MetricR4
11ufCapacitor_SMD:C_0603_1608MetricC4
12KResistor_SMD:R_0603_1608MetricR2
14.7uFCapacitor_SMD:C_1206_3216MetricC6
14k7Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR6
1AO3400APackage_TO_SOT_SMD:SOT-23Q2
1Conn_01x02_MaleConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1Conn_01x03_MaleConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalTempSense1
1Conn_01x06_FemaleConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ2
1DMP2225L-7 Package_TO_SOT_SMD:SOT-23Q1
1ESP-12ERF_Module:ESP-12EU2
1K7803M-1000R3CustomFootprints:CONV_K7803M-1000R3U1
1LED_GREENLED_SMD:LED_1206_3216MetricD2
1SS14Diode_SMD:D_SMAD1
1SolarPanel6VConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ3

Questions

How big is the PoolMonitor PCB?

It measures 54.4 × 31 mm and has 4 copper layers, 3.66 mm thick.

What parts does the PoolMonitor use?

28 parts, built around the ESP-12E, K7803M-1000R3, AO3400A and DMP2225L-7-VB. 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 PoolMonitor KiCad files?

From the tpanajott/PoolMonitor repository on GitHub, at the commit this page was made from: the board is PCB/PoolMonitor.kicad_pcb and its schematic PCB/PoolMonitor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PoolMonitor design in my own project?

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

Similar boards

  • 2 layers100 × 50 mmChrismettal ESP Hiro ESP Hiro, the printed circuit board in 3D

    Chrismettal ESP Hiro ESP Hiro

    punkfab/pcb-corpus

    235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

    102 parts1
  • 2 layers97 × 77.5 mmESPlant, the printed circuit board in 3D

    ESPlant

    CCHS-Melbourne/ESPlant

    Environmental Sensor Plant - solar WiFi gardening/meteorological sensor using ESP8266

    77 parts37
  • 2 layers42 × 45.1 mmESP8266 LED controller, the printed circuit board in 3D

    ESP8266 LED controller

    daumemo/DIY-ESP-12E-LED-Strip-Controller-4-Channel

    DIY LEd Strip Controller with ESP-12E

    31 parts5GPL-3.0
  • 2 layers29.7 × 126.5 mmPrrojectop, the printed circuit board in 3D

    Prrojectop

    Editbyfox/PCB-Project

    Humidity Sensor

    45 parts
  • 2 layers25.5 × 23 mmLedboard, the printed circuit board in 3D

    Ledboard

    ohaut/ray

    Ray is a WiFi 3 channel led controller

    39 parts2
  • 2 layers22.5 × 110.8 mmSMS, the printed circuit board in 3D

    SMS

    Lee34667/PCB_Kicad_Projects

    Creating a L9110 module using PCB techniques.

    42 parts1
  • 2 layers66.8 × 34 mmESP8266, the printed circuit board in 3D

    ESP8266

    MaloufSleep/ME-ESP8266

    Malouf Electronics - ESP8266 Dev Board

    127 parts204MIT
  • 2 layers170.1 × 96.9 mmSmartPrintCoreH7x, the printed circuit board in 3D

    SmartPrintCoreH7x

    BoltzRnD/SmartPrintCoreH7x

    STM32H7 based Robust and Open Source 3D Printer Mainboard

    567 parts89