To measure and adjust air flow in air valves, diffusers or grilles accurate measurement of small pressure drop (differential pressure) is often required (usually in the range of -50 to 50 Pa). Pressure drop is used to calculate flow through air valve by using formula
where
For example, Flakt Group air valves have nice illustrations :
Source: KSO air valve product page
However, it is hard to find measurement equipment for such small pressures (±50 Pa). There are some professional options (e.g Fluke 922), but they cost quite a bit.
Here, as an alternative, DIY handheld battery-powered differential pressure meter is built. It is based on Sensirion SDP810-500Pa differential pressure sensor (measurement range ±500 Pa, zero point accuracy 0.1 Pa). As a brain, ESP32-WROOM-32E chip is used. Firmware is mainly based on ESPHome.
Electrical design is made using KiCad 7.0 software. The main components are:
- ESP32-WROOM-32E + USB to UART converter (
CH340C
) - main compute - Sensirion SDP810-500Pa - I2C differential pressure sensor
- 1.8" LCD ST7735S - screen
- PKLCS1212E40A1-R1 - Buzzer for making sounds
- 5 way buttons for navigation
- Battery charging management (
TP4056
)
For details see:
Front | Back |
---|---|
The mechanical design is done using Onshape: project files. The case is mostly 3D printed:
- Front (STL)
- Back (STL)
- Screen spacers (STL)
- 1 mm thick Plexiglass for screen protection (37 mm x 50 mm)
- M2x5 screws for screen mounting
- DIN912 M3x12 screws for case
Printer parameters:
- Printer: Ender-3 V2 (Trianglelab DDB Extruder V2.0 + BLTouch)
- Slicer: Ultimaker Cura 4.11.0
- Filamant: eSun PLA+ 1.75mm 1kg Black
- Profile: Standard Quality
- Printing temperature: 210 °C
- Build Plate Temperature: 60 °C
- Initial layer horizontal expansion: -0.1 mm
- Generate support: yes
Powered on | Powered off | Case opened |
---|---|---|
Firmware is developed using ESPHome with additional custom component for calculating flow. The configuration file can be edited to include more air valve types or to make any other changes if needed
To install precompiled firmware:
- Download latest firmware (
.bin
file) from releases page. - Connect with USB cable
- Use https://web.esphome.io/ to prepare device for the first use and to flash the firmware
Most of the usage is explained in the image. Some (hidden) features:
- Automatic poweroff after 10 minutes of inactivity
- Automatic poweroff on low battery level
This paragraph contains instructions for development of the code and can be skipped if not relevant.
To begin, create virtual environment (Python 3.11), activate and install requirements:
python -m venv venv
source venv/bin/activate # or on Windows: .\venv\Scripts\activate
pip install -r requirements.txt
To compile and upload firmware, run:
esphome run dif-pressure-meter.yaml
Lint checks:
yamllint $(git ls-files '*.yaml')
pylint $(git ls-files '*.py')
clang-format-13 --dry-run --Werror $(git ls-files '*.cpp' '*.h')
If requirements change or need to be updated, run:
pip-compile --upgrade -o requirements.txt requirements.in
pip-sync