Built to order

IoT 3D Printer Farm Monitor with Job Queue Dashboard

This project builds a fleet monitor for a small 3D-printer farm. Each printer gets an ESP32 monitor node with an ACS712 current sensor that reads the printer's power signature, an optical filament-runout switch, and an ESP32-CAM that grabs progress snapshots — every node publishes status over MQTT to a central dashboard showing each printer as printing, idle or in error, with a shared job queue, a filament alert feed and job history. Because status is inferred from real current draw, no printer firmware changes are needed, so any 12/24 V DC printer can join the farm. Suitable for B.E./B.Tech

IoT 3D Printer Farm Monitor with Job Queue Dashboard — project thumbnail preview
More project photos (2)

The problem

College makerspaces and small print farms often run three to ten 3D printers at once, and nobody can tell at a glance which machine is free, which one failed at 2 AM, or which is about to run out of filament. The usual answer is someone walking the room, checking screens and guessing — so failed prints waste hours and queued jobs sit idle while a printer stands free. This project gives the farm a nervous system: each printer gets a small ESP32 monitor node that reads the printer's DC supply current through an ACS712 Hall-effect sensor, watches a filament-runout switch, and snaps progress photos with an ESP32-CAM. The nodes publish over MQTT to a central dashboard that renders the whole farm as a live grid — printing, idle or error — alongside a shared job queue, a filament alert feed and job history. Because status is inferred from real power draw, no printer firmware changes are needed, so any 12/24 V DC machine can join the farm.

How it works

  1. The ACS712 sensor is wired in series with the printer's 12/24 V DC supply line (low-voltage side only — mains is never touched), and the monitor node runs on USB 5 V.
  2. At installation, firmware captures each printer's idle standby baseline, and the idle/printing/error current thresholds adapt to that baseline.
  3. The ESP32 samples current at approximately 1 kHz, computes RMS over a 1 s window and classifies the printer state; filament-switch changes fire an immediate MQTT alert message.
  4. Every 5 s the node publishes a JSON packet (current, state, filament, uptime) to farm//telemetry; retained messages keep the dashboard truthful on reload.
  5. An ESP32-CAM grabs a snapshot every 10 min and on every alert (stills only — no video stream, keeping farm bandwidth low) for the printer's dashboard card.
  6. The single-file dashboard app connects to the broker over MQTT WebSockets and renders the farm grid, job queue and alert feed live in any browser on the local network.
  7. Operators queue jobs with estimated durations; progress bars advance from elapsed time, and jobs complete or flag failed when the node reports a state change.

Tech stack:

  • ESP32 dev board · ACS712 5 A current sensor
  • Optical filament runout switch
  • ESP32-CAM snapshot module
  • MQTT · Mosquitto broker
  • Dashboard: HTML/CSS/JS · MQTT WebSockets
  • Arduino IDE · C/C++ firmware
  • 3D-printer 12/24 V DC interfacing
Parameter Value
Printers per coordinator Up to 8 nodes (design target)
Current sensing ACS712 5 A Hall-effect, ±1.5% typical (datasheet value)
Current sampling Approx. 1 kHz sample rate, 5 s publish interval (design target)
State detection Idle / printing / error from DC current signature
Runout alert latency Within approx. 2 s of switch trigger (design target)
Camera ESP32-CAM, still snapshot every 10 min + on alert (design target)
Connectivity Wi-Fi, MQTT over local broker
Dashboard Single-file web app, local-network browser access
Node supply USB 5 V; sensing on 12/24 V DC side only
Queue capacity 50 jobs with priority flag (design target)

Project features

  • [Current-signature state detection] ACS712 5 A Hall-effect sensor on the printer's DC input; the ESP32 samples current and a firmware state machine classifies each printer as idle, printing or error from its power signature — no printer firmware changes needed.
  • [Filament-runout alerts] Optical runout switch per printer wired to the node; an MQTT alert fires within about 2 seconds (design target) of filament depletion, flagging the printer as ERROR on the dashboard.
  • [Live farm grid dashboard] Every printer renders as a card with status, live current draw, filament state, elapsed time and progress bar — the whole farm readable in one glance.
  • [Shared job queue] Operators add jobs (G-code filename, estimated duration, priority) and assign them to printers; the queue tracks pending, running, completed and failed states with a job history log.
  • [Progress camera snapshots] ESP32-CAM captures a still every 10 minutes (design target) and on every alert; the latest snapshot appears on each printer card for quick visual checks.
  • [MQTT telemetry backbone] Each node publishes JSON telemetry to a local Mosquitto broker every 5 seconds on its own topic; the dashboard subscribes over WebSockets so status updates land live.
  • [Alert feed] Runout, error-state and node-offline events append to a timestamped alert feed — the farm's single incident log instead of word of mouth.

What is included

  • Working monitor-node prototypes — 3 complete nodes (ESP32, ACS712, runout switch, ESP32-CAM), expandable to 8
  • Complete node firmware source (current sampling, state machine, MQTT, alerts)
  • Farm dashboard web app (live grid, job queue, alert feed, job history)
  • Wiring diagrams and DC-side installation guide with safety notes
  • MQTT topic map and Mosquitto broker setup guide
  • Calibration procedure for idle-baseline thresholds
  • Project report PDF (background, power-signature method, firmware design, MQTT architecture)
  • PPT presentation for final review
  • Viva Q&A preparation document (current sensing, state machines, MQTT, embedded power budgets)

Limitations & prerequisites

  • Status is inferred from current draw, not the printer's firmware — a print paused from the screen reads as idle, and progress percentage is an elapsed-time estimate, not true layer tracking.
  • The ±1.5% accuracy figure is the ACS712 datasheet typical, not a measured calibration result; the report documents the buyer-run calibration procedure instead.
  • Monitoring is snapshot-based: stills every 10 min plus on alerts — there is no live video stream, by design, to keep farm bandwidth low.
  • The dashboard is local-network only in this build; remote access needs a VPN or reverse proxy, listed as future scope.
  • Mains voltage is never touched — the sensor sits on the low-voltage DC side only, so this node cannot detect mains-side failures.
  • Stable Wi-Fi is required at the farm; nodes buffer only the last state locally and do not log long offline histories.

Frequently Asked Questions

How does it know a print failed instead of finishing?

The firmware watches the current signature: a mid-print drop to idle before the job's estimated duration elapses is flagged as an error/failed print, while a drop after the estimated time marks completion. The margin is tuned per printer during calibration.

Does it modify the printer or its firmware?

No. The node only observes — current sensing on the DC supply line, a runout switch in the filament path, and a camera pointed at the bed. The printer runs its stock firmware untouched.

Which printers does it support?

Any 12 V or 24 V DC machine whose supply current fits the ACS712 5 A range — that covers most desktop FDM printers. Mains-powered industrial machines are out of scope.

Can I see the farm from my phone?

The dashboard is a web app on the local network, so any phone or laptop on the same Wi-Fi sees the live grid, queue and alerts — no app install needed.

Is this project suitable for a final-year project?

Yes — for IoT & Embedded programs. It combines embedded current sensing, state-machine firmware design, MQTT networking and a real operational dashboard around a genuine makerspace problem. Suitable for B.E./B.Tech final-year projects in IoT & Embedded.

Components & software requirements
  • ESP32 dev board · ACS712 5 A current sensor
  • Optical filament runout switch
  • ESP32-CAM snapshot module
  • MQTT · Mosquitto broker
  • Dashboard: HTML/CSS/JS · MQTT WebSockets
  • Arduino IDE · C/C++ firmware
  • 3D-printer 12/24 V DC interfacing
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.

Download abstract (PDF)

Related guides

All guides
Blueprint-style technical illustration of an ESP32 development board at the centre, with sensor nodes, data-flow arrows and a circuit-brain motif representing an AI agent reasoning and sending decisions back.Engineering students building IoT or embedded final-year projects who want to add local AI agent behaviour with ESP32, MQTT and a small language model.

AI Agents on ESP32: Agentic IoT Final-Year Projects

An agentic IoT system observes, reasons, acts, remembers and explains. On ESP32 that means a split architecture: the chip senses and acts while a small local model (Ollama on your laptop) reasons over MQTT — a full LLM needs gigabytes of RAM the chip doesn't have. This guide covers three working patterns (host-reasoned agent, on-device tinyML on ESP32-S3, and a hybrid of both), plus Wi-Fi CSI presence sensing, parts and budget for India, code shapes, and honest limits to state in your report.

Read guide
Technical illustration of three electronic control units linked by a twisted-pair CAN bus cable carrying signal pulses between them.Electronics, E&TC, IoT and robotics students who keep hearing “CAN bus” in EV, automotive and industrial project ideas and want to understand it properly before wiring anything

CAN Bus Basics for Students: How ECUs Communicate

CAN bus is the shared network that lets dozens of controllers in a car, EV or robot communicate over two wires. This guide explains message IDs, arbitration, the physical layer, frame structure, error handling and CAN FD, then walks through building a working two-node bench network with an ESP32 and a transceiver.

Read guide
Illustration of a quadcopter drone build showing labeled parts including frame, motors, propellers, ESCs, flight controller, and battery.B.E./B.Tech Electronics, Mechanical, and Computer Science students planning to build a quadcopter drone who need to select compatible parts without wasting money on mismatched

Drone Build: Parts Selection Guide

Picking drone parts that actually work together is a sizing problem, not a shopping problem. This guide walks the compatibility chain — frame to props to motors to ESCs to battery — with the thrust math, firmware choices, LiPo safety, and the bench-test order that prevents disasters.

Read guide
Get a quotation