Arduino library for the WF100DPZ pressure sensor family using the sensor's 3-wire SPI interface.
- Callibrated digital pressure sensor with integrated temperature output
- SPI / I2C Interface
- Pressure-ranges from 5kPa to 1000 kPa
- Integrated 24-bit ADC
- Sample rates >480Hz (Individual) or >240Hz (Combined).
- Blocking reads:
readTemp,readPressure,readCombined - Non-blocking one-shot reads:
start,ready,getResult - Non-blocking continuous reads:
startContinuous,continuousReady,getContinuousResult - Runtime configuration via
Config, includingsample_interval - Dual backend design:
BitBangfor broad Arduino compatibility andEspIdf3Wireon ESP32 for higher SPI clock rates
Connect the sensor pins as:
| WF100DPZ Pin | Pin Function | Arduino Uno Pin Connection | ESP32-S3 Pin Connection |
|---|---|---|---|
| CSB | Chip Select | D10 | GPIO10 |
| SDA | SPI Data | D11 | GPIO11 |
| CLK | SPI Clock | D13 | GPIO12 |
| VDD | VDD | 3.3V (recommended) | 3.3V |
| GND | GND | GND | GND |
Install using Arduino Library Manager or manually:
- Download/clone this repository.
- Place it in your Arduino
librariesfolder asWF100DPZ. - Restart Arduino IDE.
examples/QuickStart/QuickStart.ino
Basic startup, part ID read, and blocking combined temperature/pressure measurements.examples/AdvancedConfig/AdvancedConfig.ino
Shows how to build and apply a customWF100DPZ::Config(backend, SPI clock, sample interval, and auto-refresh policy).examples/NonBlockingRead/NonBlockingRead.ino
Demonstrates one-shot non-blocking workflow:start->ready->getResult.examples/ContinuousRead/ContinuousRead.ino
Demonstrates continuous non-blocking workflow:startContinuous->continuousReady->getContinuousResult.
A detailed API is provided in API.md with detailed explanations of all the provided library methods and constructors.
- The three-wire SPI interface is only available on ESP32.
- On other platforms a bit-bang backend is provided.
This project is licensed under the MIT License.
Use GitHub Issues in this repository for bug reports and feature requests.