Skip to the content
2 layers76.5 × 123.8 mmWater Level Indicator, the printed circuit board in 3D

This project is an ESP32-based Water Level Indicator PCB designed to monitor the water level in a tank using an ultrasonic sensor and provide visual and audible alerts.

Size
76.5 × 123.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
13
Nets
35
Pads
61
Tracks, vias
77, 2
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
24 Sep 2026
Updated
24 Sep 2026

Overview

Water Level Indicator is an open-source printed circuit board by Manideep136, from the Manideep136/Water-Level-Indicator repository on GitHub. It is a 2-layer board of 76.5 × 123.8 mm with 13 parts on 35 nets, routed with 77 tracks and 2 vias.

It is built around the HLK-PM01 and BC547. Its parts include 6 connectors, 2 resistors, 1 IC, 1 diode and 1 transistor.

Main components

2

README

README.md

Water-Level-Indicator

Project Overview

This project is an ESP32-based Water Level Indicator PCB designed to monitor the water level in a tank using an ultrasonic sensor and provide visual and audible alerts.

The PCB is designed in KiCad and provides connections for an ESP32 DevKit V1 (30-pin), ultrasonic sensor, OLED display, buzzer, LED indicator, push button, and power supply.

The ESP32 processes the distance measured by the ultrasonic sensor and determines the approximate water level. The status can be displayed on an OLED and indicated using LEDs and a buzzer.

Features ESP32 DevKit V1 based controller Ultrasonic water-level measurement OLED display interface using I²C LED status indication Buzzer alarm for high/critical water level Push-button input Transistor-driven buzzer circuit Removable ESP32 module Through-hole mounting for ESP32 headers External 5 V DC power input Designed using KiCad PCB layout suitable for prototype/college project development

🚀 Working Principle The ultrasonic sensor sends an ultrasonic pulse toward the water surface. The reflected signal is received by the sensor. The ESP32 calculates the distance to the water surface. The water level is calculated from the tank dimensions. The current water-level status can be displayed on the OLED. LEDs provide visual status indication. The buzzer provides an audible warning when the water reaches a defined critical level. The push button provides an additional user-control interface. 🔧 Future Improvements

Possible future versions can include:

Automatic water pump control Wi-Fi monitoring Mobile/web dashboard MQTT/ThingsBoard integration Water-level percentage calculation Multiple tank monitoring Low-water warning Overflow protection Relay/SSR output Capacitive water-level sensing PCB-mounted voltage regulator and protection circuit ⚠️ Important Design Notes Verify the exact ESP32 DevKit V1 dimensions before PCB manufacturing. Verify the 25.40 mm header row spacing against the physical ESP32 board. Use 2.54 mm pitch headers. Use appropriate voltage-level protection for a 5 V ultrasonic ECHO signal. Keep sensor wiring away from noisy/high-current traces. Use an external certified DC power supply for the prototype. Check ERC and DRC before generating Gerber files. Verify all connector pinouts before manufacturing. 📜 License

This project is intended for educational, academic, and personal development purposes.

Feel free to modify and improve the design for your own projects.

Parts

13
QtyValueFootprintReferences
2Conn_01x15_PinTerminalBlock:TerminalBlock_MaiXu_MX126-5.0-15P_1x15_P5.00mmJ5, J6
2RResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1, R2
2Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ7, J8
1BC547Package_TO_SOT_THT:TO-92_InlineQ1
1BuzzerBuzzer_Beeper:Buzzer_15x7.5RM7.6BZ1
1Conn_01x04_PinTerminalBlock:TerminalBlock_MaiXu_MX126-5.0-04P_1x04_P5.00mmJ2
1HLK-PM01Converter_ACDC:Converter_ACDC_Hi-Link_HLK-PMxxU2
1LEDLED_THT:LED_D3.0mmD1
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW1
1Screw_Terminal_01x04TerminalBlock:TerminalBlock_MaiXu_MX126-5.0-04P_1x04_P5.00mmJ3

Similar boards

  • 2 layers129.9 × 63.6 mmTraeger rev 2.3.0.kicad pro, the printed circuit board in 3D

    Traeger rev 2.3.0.kicad pro

    jazzmonger/Traeger-PID-Controller

    Traeger Smoker/Grill Controller based on an

    45 parts36
  • 2 layers270.6 × 182.2 mmSmarthomeiot, the printed circuit board in 3D

    Smarthomeiot

    haripradhap14/ESP32-4CH-Relay-Controller-

    4-channel IoT relay controller using ESP32-WROOM-32E for home automation.

    31 parts1
  • 2 layers130 × 80 mmArduinoNanoPjt1, the printed circuit board in 3D

    ArduinoNanoPjt1

    thihakyawjob/PCBDesign

    All PCB Files

    62 parts1
  • 2 layersIoT ESP switch relay, the printed circuit board in 3D

    IoT ESP switch relay

    AdharTechnologies/ESP8266_D1_MINI_IoT_switch

    kindly read this blog for full understanding: https://docs.google.com/document/d/e/2PACX-1vSAi6zmGvRynDwEvqRe5kNtlbvMZqgKHYD9E6emAaTxG17WCHXLFxFSK3p-E7R5uc0UGJ3i0j8vB/pub

    8 partsMIT
  • 2 layers125.5 × 129.5 mmHome automation pcb, the printed circuit board in 3D

    Home automation pcb

    ayannsinghhh/home-automation-esp32-pcb

    This project is a custom-designed home automation PCB built using an ESP32, aimed at controlling multiple household appliances through relay switching.

    36 parts
  • 2 layers78 × 47 mmAgroTron(kicad), the printed circuit board in 3D

    AgroTron(kicad)

    HenryqueFarias16/AgroTron

    Projeto de Automação agrícola com microcontrolador ESP12-E

    35 parts
  • 2 layers57.5 × 45.5 mmInterruptor Arcade, the printed circuit board in 3D

    Interruptor Arcade

    Rocheez/arcade-light-switch

    A simple light switch made from discrete components

    22 parts

Questions

How big is the Water Level Indicator PCB?

It measures 76.5 × 123.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Water Level Indicator use?

13 parts, built around the HLK-PM01 and BC547. 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 Water Level Indicator KiCad files?

From the Manideep136/Water-Level-Indicator repository on GitHub, at the commit this page was made from: the board is Water Level Indicator/Water Level Indicator.kicad_pcb and its schematic Water Level Indicator/Water Level Indicator.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Water Level Indicator design in my own project?

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