WiFi-Controlled Pipe Cleaning Robot With NodeMCU Web Dashboard (Drill + Ultrasonic + Live Sensor Feed)
by arhamsameel3 in Circuits > Robots
22 Views, 1 Favorites, 0 Comments
WiFi-Controlled Pipe Cleaning Robot With NodeMCU Web Dashboard (Drill + Ultrasonic + Live Sensor Feed)
So I built this pipe cleaning robot that crawls inside pipes, scrubs with a front drill motor, and now I can control the whole thing from my phone browser over WiFi. No app, no Bluetooth, nothing special — just connect to its hotspot and you get a full control dashboard.
The sensor setup is simple: one HC-SR04 on the front. That's it. It tells you what's ahead, and you make the call. Manual control over WiFi means you decide when to reverse, when to drill harder, when to stop — which honestly is more useful than autonomous mode inside an unknown pipe.
Supplies
NodeMCU ESP8266
1× HC-SR04 Ultrasonic Sensor (front only)
L298N Motor Driver Module
3× TT Yellow Gear Motors
1× Small DC Motor (drill/brush, front mounted)
7.4V Li-Po Battery
Buck converter (to get 5V for NodeMCU)
3D printed chassis with spring suspension arms
Jumper wires, M3/M4 screws, hot glue
What It Does
The robot hosts its own WiFi access point. You connect your phone or laptop to that network, open a browser, and you get a control panel with:
- Forward / Backward / Stop buttons
- Drill ON / Drill OFF toggle
- Live ultrasonic distance , refreshing every second
- A simple status indicator showing current movement state
Everything runs on HTTP GET requests — the ESP8266 handles them, drives the motors through an L298N, and responds with updated sensor data as JSON.
Architecture
NodeMCU creates a WiFi access point. You connect your phone to it, open 192.168.4.1 in the browser, and get the dashboard. Buttons send HTTP GET requests — /forward, /backward, /stop, /drillon, /drilloff. One endpoint /sensors fires the HC-SR04 and returns a JSON with the front distance. Dashboard polls it every second.
L298N handles all motor power. NodeMCU only drives logic-level signals.
Wiring
NodeMCU → L298N (Drive motors):
- D1 → IN1
- D2 → IN2
- D3 → ENA (PWM)
NodeMCU → L298N (Drill motor):
- D5 → IN3
- D6 → IN4
- D7 → ENB (PWM)
NodeMCU → HC-SR04 (front):
- D8 → TRIG
- D4 → ECHO — use a voltage divider here (10kΩ + 20kΩ). SR04 echo is 5V, NodeMCU is 3.3V. Skip this and you'll kill a GPIO pin quietly over time.
Power:
- Battery → L298N 12V in + Buck converter in
- Buck converter 5V out → NodeMCU VIN
- L298N 5V out → SR04 VCC
- All grounds tied together
3d Files
Code
Downloads
Using It
This is the part that actually makes this robot different from a regular RC car — the spring suspension arms.
Before inserting, pull all three suspension arms inward toward the chassis and hold them compressed. The springs will resist but it's manageable with one hand. In this collapsed state the robot is narrow enough to fit into the pipe opening.
Once the front end is inside, slowly release your grip. The springs push the arms outward and the rubber wheels press firmly against the inner pipe wall. The robot self-centers automatically — no adjustment needed. This works across a range of pipe diameters, not just one fixed size.
Power on. NodeMCU boots and the PipeCrawler WiFi network appears.
Connect your phone to it (password: crawl1234).
Open browser → 192.168.4.1.
Drive forward, watch the front distance. If it drops below 10cm it goes red — that's your cue to stop or reverse.
Toggle drill as needed.
Tips
Voltage divider on the echo pin is not optional. I cannot stress this enough.
NodeMCU PWM is 0–1023, not 0–255. If motors barely move, this is why.
One sensor is enough for manual control — you're watching the number and deciding. The autonomous version needed two because the code had to detect if it was actually moving forward. Here, that's your job.
If the distance reads 999 it means the pulse timed out — either nothing is in range or the sensor isn't wired right. Check the echo voltage divider first.
Conclusion
One sensor, one NodeMCU, one dashboard. The spring suspension arms do the centering inside the pipe, the drill handles the scrubbing, and you drive it from your phone. Total build cost around ₹1,800–2,200. The 3D printed chassis took the most iteration — four versions of the suspension arms before they stopped binding — but the electronics side is genuinely straightforward once the voltage levels are sorted.