Home/ Case studies/ Vending Machine IoT
IoT Remote ops Real-time Hardware bridge

Every vending machine, operated from a single screen.

A distributed fleet of vending machines needed physical visits for every restock check, price change or downtime alert. We built an in-house IoT integration that turned all of that into a live dashboard — with remote commands and real-time telemetry.

Live
Telemetry per machine
Remote
Price & planogram control
Field visits
Downtime
The Problem

Ops was flying blind, and every action needed a truck.

Vending is a great business — until you scale it. The problems compounded fast:

  • No visibility into stock levels until someone drove out to check.
  • Price changes and promotions needed a physical visit per machine.
  • Downtime was often discovered via customer complaints, not alerts.
  • Transaction reconciliation was manual, slow and error-prone.
  • Field-ops cost scaled linearly with fleet size — the opposite of what a vending business should do.
The Solution

An in-house IoT layer + a cloud control plane.

Each machine gets a small hardware bridge that pushes telemetry to the cloud and receives remote commands. Everything you used to drive out to do — you now do from a screen.

📡

Telemetry ingestion

Stock levels, temperature, dispense events, faults and coin/cashless transactions — streamed continuously.

🎛️

Remote control

Push new prices, update planograms, force restart, disable channels, or trigger diagnostic self-tests.

🚨

Fault alerts

Fault codes routed instantly to ops — before the customer notices — with severity and vending SKU context.

🗺️

Fleet map

All machines on one map with health, revenue and stock overlays. Filter by region, model or vertical.

💰

Transaction reconciliation

Every dispense event matched to a transaction — no more manual daily reconciliations.

📱

Technician mobile

Field techs see only the machines that actually need them — restocks, repairs, upgrades — with turn-by-turn routing.

Architecture

Deployed architecture

Hardware bridge on each machine → secure MQTT/HTTPS to cloud → ingestion + rules → dashboards and technician apps.

Edge · Machines Vending Machine Coin/UPI/Cashless Motors · sensors · fault codes Serial / MDB / Executive Hardware Bridge In-house firmware Local buffer · OTA-able Cloud Ingest MQTT / HTTPS Broker Secure, per-device auth Bi-directional messaging Command & control Rules & state engine Stock model · faults Alerting · reconciliation Data Time-series store Telemetry (events) Retention + rollups PostgreSQL Fleet · SKUs · Users Commands · audit Clients Ops Web Dashboard Map · fleet health Remote commands Reconciliation reports Technician Mobile Only actionable machines Routes · checklists Alerts & Analytics Alert engine Slack / SMS / Email routing per severity BI dashboards Revenue · SKUs · uptime · fault trends OTA firmware Staged rollouts to hardware bridges Cloud & DevOps Cloud broker (managed) · containerised workers · CI/CD · uptime + on-call · per-device certificates · signed OTA · secure command audit trail
Edge / Hardware
Broker / API
Data store
Client
Alerts / Analytics
Tech stack

Technologies used

Edge / hardware bridge

Custom PCB + microcontroller MDB / Executive vending protocols C / C++ firmware Local buffering + OTA

Cloud ingest & control

MQTT broker (managed) Node.js workers Rules / state engine Bi-directional command channel

Data

Time-series database PostgreSQL Redis

Clients

React (ops web) React Native (tech mobile) Maps + routing

Security & ops

Per-device certificates Signed OTA firmware Command audit trail Uptime + on-call alerting
Screens shipped

Screens from the platform

ops.vendplatform.io/fleet Fleet · 342 machines HEALTH 318 Online 18 Low stock 4 Fault 2 Offline FILTER All Faults Low stock CRITICAL · TAP TO INSPECT M-01184 · MG Rd Kiosk Coin jam · 41 min · SLA overdue M-00932 · Airport T2 Low stock · 4 SKUs at 0 M-01067 · Tech Park B4 Low stock · Coke Zero M-00845 · Metro Stn Offline · 12 min ! M-01184 · MG Rd Kiosk Coin jam · 41 min · Last dispense 45m ago Today's revenue₹ 2,180 Stock health62% Uptime · 7d98.4% Dispatch tech Force restart Online Low Fault Offline
Web · Fleet map
All 342 machines on one map, colour-coded health, tap-to-inspect with remote actions.
M-01067 · Tech Park B4 Bengaluru · Whitefield · Zone SE-14 ● Online Send command PLANOGRAM · 6 × 5 A114 A212 A33 A410 A511 A60 B113 B24 B39 B415 B58 B610 C114 C212 C311 C42 C513 C610 D115 D211 D314 D412 D510 D613 LIVE TELEMETRY TEMPERATURE 4.2°C UPTIME · 7D 99.6% REVENUE · TODAY ₹ 3,420 DISPENSES · TODAY 128 REMOTE CONTROLS Update prices Update planogram Force restart Diagnostics 3 SKUs need refill Auto-added to next visit
Tablet · Machine detail
Live planogram (per-lane stock), telemetry, revenue, one-tap remote commands.
ops.vendplatform.io/machines/M-01184/faults M-01184 · Fault timeline Last 30 days · 8 faults · 6 resolved · 1 open · 1 acknowledged All 8 Open 1 Resolved 6 TIME FAULT · CODE DURATION TECHNICIAN STATUS Today · 14:32 Coin acceptor jamCode F-CA-004 · MDB error 41m · ongoing Rakesh · dispatched OPEN Today · 09:12 Temperature highCode F-TH-002 · 8.4°C for 4 min 6m Auto-recovered ACKNOWLEDGED Yesterday · 18:04 Note dispenser jamCode F-NB-011 22m Auto-clear on restart RESOLVED 3d ago · 11:47 Cashless reader offlineCode F-CR-007 1h 12m Ashok · replaced module RESOLVED 7d ago · 22:18 Compressor cycling anomalyCode F-CO-003 · auto-diagnostic 14m Self-cleared RESOLVED Older resolved faults · 3 more →
Web · Fault timeline
Every fault code with duration, technician, and current state — with pattern detection.
ops.vendplatform.io/reconciliation Reconciliation · 30 Jul Dispense events matched to transactions across the fleet · 3 discrepancies MATCHED 12,481 99.98% match rate DISCREPANCIES 3 Requires review GROSS REVENUE ₹ 4.28L Across 342 machines CASH · CASHLESS 28 / 72 % split MACHINE DISPENSES TXNS CASH UPI / CARD EXPECTED MATCH M-01067 · Tech Park B4 128128 ₹ 720₹ 2,700 ₹ 3,420 100% M-00932 · Airport T2 412411 ₹ 3,200₹ 9,140 ₹ 12,340 1 diff M-01184 · MG Rd Kiosk 9290 ₹ 340₹ 1,840 ₹ 2,180 2 diff M-00845 · Metro Stn 184184 ₹ 1,120₹ 4,280 ₹ 5,400 100% ⚠ Discrepancy · M-01184 · 2 dispenses without txn (₹ 60) Likely cause · coin jam period (13:51–14:32) · items dispensed after retry, coin not registered. Recommended · adjust cash tally by −₹ 60 · flag technician visit for coin acceptor Approve adjustment
Web · Reconciliation
Every dispense matched to a transaction; discrepancies auto-explained with root cause.
Adoption

Rolled out per fleet, per city

  • Hardware bridge fitted per fleet with staggered deployment — small pilot first, then per-city rollouts.
  • Ops team switched from spreadsheet-driven daily routines to the live dashboard.
  • Technicians onboarded via the mobile app — field visits filtered to only the ones that mattered.
  • OTA firmware upgrades enabled continuous improvement without truck rolls.
Impact

Impact on the business

Field visits
Downtime
Real-time
Alerts & reconciliation
Scalable
Fleet ops per FTE

Field visits dropped to only the ones that mattered (restock / repair). Downtime shrunk because alerts came in real-time — not via customer complaints. And because everything runs on one control plane, adding another 100 machines no longer meant adding another operator.

Explore more

Related case studies

Have hardware that needs to speak to the cloud?

From vending to sensors to gates — we've built the firmware and the cloud-side control plane.

Talk to us →