The problem
Shared soap dispensers in washrooms are touched by hundreds of hands a day, which defeats the purpose of hand hygiene — and in hostels, labs and clinics, nobody notices the dispenser is empty until it matters. Manual pump bottles solve neither problem: they need contact, and refill depends on someone checking. Touchless dispensers exist commercially, but they are sealed black boxes with no refill warning. The useful engineering gap is a dispenser that dispenses without contact, meters its own soap level, and tells the facility staff before it runs dry. This project builds exactly that on an ESP32: IR hand detection, a peristaltic pump for positive-displacement dosing, level sensing with an on-device OLED bar, and Wi-Fi telemetry that logs each dispense and raises a low-level alert on the dashboard. Every subsystem is student-built and documented, so the report and viva can walk through sensing, actuation, dosing math and the IoT data path.
How it works
- The IR proximity sensor continuously watches the dispense zone; when a hand is detected within range, it signals the ESP32.
- The ESP32 runs the peristaltic pump for the configured dose duration, pushing a measured volume of soap through the nozzle tube.
- A level sensor measures the soap remaining in the reservoir; the ESP32 converts it to a percentage and renders a bar on the OLED.
- Each dispense increments a usage counter stored on the device.
- Over Wi-Fi, the ESP32 publishes the dispense event, current level and counter to the cloud dashboard at each event and on a periodic heartbeat.
- When the level falls below the low threshold, the device buzzes locally and the dashboard flags a refill alert.
Tech stack:
- ESP32 development board (Wi-Fi + Bluetooth)
- IR proximity sensor module (hand detection)
- 12 V DC peristaltic pump with silicone tubing
- Soap-level sensor (float/ultrasonic, per build)
- 0.96-inch OLED display (level bar, status)
- Cloud dashboard (Blynk/ThingSpeak class) for telemetry and alerts
- Arduino IDE (C/C++ firmware)
- 12 V adapter with buck converter + rechargeable battery pack
| Parameter | Value |
|---|---|
| Controller | ESP32 dev board, Wi-Fi 802.11 b/g/n |
| Hand detection | IR proximity sensor, design range approx. 5–10 cm (adjustable) |
| Dosing | 12 V peristaltic pump; dose set by firmware duration, design approx. 1–3 mL per dispense |
| Level sensing | Reservoir level sensor with OLED bar + low-level threshold |
| Alerts | Local buzzer + cloud dashboard low-level flag |
| Telemetry | Dispense events, level %, usage counter over Wi-Fi (MQTT/HTTP) |
| Reservoir | Design approx. 500 mL translucent tank |
| Power | 12 V DC adapter with buck converter; rechargeable battery backup |
Project features
- [Touchless IR dispensing] An IR proximity sensor detects a hand under the nozzle and triggers a dispense with no contact.
- [Peristaltic pump dosing] A 12 V peristaltic pump gives positive-displacement metering, so each dispense delivers a repeatable dose and the soap path stays sealed.
- [Configurable dose size] Dispense duration is adjustable in firmware, letting the student demonstrate small versus large dose settings.
- [Soap-level sensing with OLED bar] A level sensor tracks the reservoir and the OLED shows a live level bar, so the device itself reports when it is running low.
- [Low-level buzzer alert] When the level crosses the low threshold, a buzzer sounds at the unit in addition to the dashboard alert.
- [IoT dashboard and alerts] The ESP32 publishes dispense events, level readings and low-level alerts over Wi-Fi to a cloud dashboard for remote monitoring.
- [Usage counter] Every dispense is counted and timestamped, giving refill planning data on the dashboard.
- [Battery-backed operation] A rechargeable battery pack keeps the unit running during power cuts; mains adapter charging included.
What is included
- Working touchless soap dispenser prototype (ESP32, IR sensor, pump, level sensor, OLED, enclosure)
- Complete firmware source code (dosing, level logic, Wi-Fi telemetry, alerts)
- Circuit and wiring documentation
- Cloud dashboard setup guide with alert configuration
- Component list with ratings
- Dose and level calibration procedure (buyer-run)
- Project report PDF (hygiene background, system design, dosing method, IoT architecture, test procedure)
- PPT presentation for final review
- Viva Q&A preparation document (peristaltic pumping, IR sensing, MQTT/HTTP telemetry)
- Setup and demonstration guide
Limitations & prerequisites
- This is a student prototype, not a waterproof commercial dispenser; the electronics must be kept dry and it is not rated for outdoor or high-splash installation.
- Dispensed dose is a design setting verified by the buyer's own calibration (measuring actual mL per dispense); the pump tube wears over time and dose drifts, which is documented as a maintenance point.
- Cloud alerts and dashboard need Wi-Fi; without network the unit still dispenses and shows the level locally, but no remote alert is sent.
- Level-sensor accuracy depends on the reservoir geometry and sensor mounting; it is an indicator, not a laboratory measurement.
- Battery runtime varies with dispense frequency and Wi-Fi duty cycle.
Frequently Asked Questions
Which controller is used?
An ESP32 development board — it handles the IR trigger, pump timing, level sensing, OLED and Wi-Fi telemetry in one chip.
Does it work without Wi-Fi?
Yes, partially: dispensing, dose control, OLED level bar and the local buzzer all work offline. Only the cloud dashboard and remote low-level alerts need Wi-Fi.
How is the dose set?
Dispense duration is a firmware constant; the calibration procedure shows how to measure the actual mL per dispense and tune it. Design dose is approximately 1–3 mL.
What power supply is needed?
A 12 V DC adapter (included design) with a buck converter for logic, plus a rechargeable battery pack for backup during outages.
What are the main limitations?
Not waterproof — indoor use; dose needs buyer calibration and drifts as the pump tube wears; cloud features need Wi-Fi; level reading is an indicator.
Is this project suitable for a final-year project?
Yes — for Electronics, Computer and IoT programs. It demonstrates sensor-actuator interfacing, positive-displacement dosing, embedded UI and an end-to-end IoT telemetry path. Suitable for B.E./B.Tech final-year projects in Electronics, Computer and IoT programs.
Components & software requirements
- ESP32 development board (Wi-Fi + Bluetooth)
- IR proximity sensor module (hand detection)
- 12 V DC peristaltic pump with silicone tubing
- Soap-level sensor (float/ultrasonic, per build)
- 0.96-inch OLED display (level bar, status)
- Cloud dashboard (Blynk/ThingSpeak class) for telemetry and alerts
- Arduino IDE (C/C++ firmware)
- 12 V adapter with buck converter + rechargeable battery pack
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.