IoT, Sensors & Digital Twins

Connected mines stream data from thousands of sensors. Learn mine IoT architecture (sensors, edge, networks, cloud), fleet management and dispatch data, condition monitoring and predictive maintenance with remaining-useful-life estimates, and digital twins that mirror the mine in real time — with a Python RUL example.

Trucks report payload and engine data every second, fans and pumps report vibration, slopes are watched by radar, and plants have tens of thousands of tags. Turning this data into decisions — before failures and incidents happen — is the promise of the digital mine.

An analogy

A digital twin is like a flight simulator that is continuously updated with the real aircraft's data — you can test 'what if' decisions on the twin before trying them on the real mine.

IoT architecture

Sensors (vibration, temperature, pressure, gas, GNSS, payload) → edge devices (filter, compress, local alarms) → networks (LTE/5G, Wi-Fi, fibre, satellite) → data platforms (historians such as PI, cloud data lakes) → dashboards, analytics and control.

Fleet management data

Fleet management systems record every truck cycle: load time, travel, queue, payload, speed and delays — the basis of short-interval control, dispatch optimisation and productivity analysis.

Predictive maintenance

Vibration, oil analysis, temperatures and electrical signatures reveal degrading components. RUL predictions schedule repairs before failure — reducing downtime and secondary damage.

Digital twins

A digital twin integrates geology, plans, equipment status and process models, updated in near real time, to simulate scenarios (e.g. plant throughput with harder ore, ventilation changes) and optimise decisions. Data quality and integration are the main hurdles.

Formulas

Worked example: Simple RUL

Given: Vibration 4.5 mm/s, rising 0.05 mm/s per day; Alarm 7.1 mm/s

Find: RUL.

Answer: ≈ 52 days — schedule replacement in the next planned shutdown

Worked example: Data volume

Given: 2000 sensors at 1 sample/s, 8 bytes each

Find: Daily data.

Answer: ≈ 1.4 GB/day (before compression)

Predict remaining useful life from vibration data

import numpy as np

# Daily vibration readings (mm/s RMS) from a haul-truck wheel-motor bearing
rng = np.random.default_rng(7)
days = np.arange(30)
vib = 3.0 + 0.05 * days + rng.normal(0, 0.08, days.size)

slope, intercept = np.polyfit(days, vib, 1)    # linear degradation trend
ALARM = 7.1                                    # ISO 10816 'unsatisfactory' zone
day_alarm = (ALARM - intercept) / slope
rul = day_alarm - days[-1]

print(f"trend: {slope:.3f} mm/s per day, latest {vib[-1]:.2f} mm/s")
print(f"predicted alarm on day {day_alarm:.0f} -> RUL = {rul:.0f} days")
# trend: 0.048 mm/s per day, latest 4.46 mm/s
# predicted alarm on day 85 -> RUL = 56 days

Fitting a trend to condition data and extrapolating to the alarm threshold gives a remaining-useful-life estimate, so the component change-out can be planned into a scheduled shutdown instead of failing in service. Real systems use many signals and machine-learning models, but the principle is the same.

Common mistakes

Applications

Key takeaways

Going further