Smart Manufacturing

Lagertemperatur-Überwachung mit Funksensoren und MQTT-Alarmen

Ein praxisnahes Setup zur Lagertemperatur-Überwachung: batteriebetriebene Funksensoren am Lagergehäuse, umgebungskompensierte Messwerte über MQTT, Erkennung des Temperaturanstiegs und Schwellenwert-Alarme, die auslösen, bevor ein Lager überhitzt.

Lagertemperatur-Überwachung mit einem Funksensor am Lagergehäuse einer Pumpe, der Alarme an ein Cloud-MQTT-Dashboard sendet
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

Die Lagertemperatur-Überwachung ist eine der einfachsten Methoden, um Motoren, Pumpen, Ventilatoren und Förderbänder vor ungeplanten Stillständen zu schützen. Dieser Anwendungsfall zeigt, wie Sie Funk-Temperatursensoren an Lagergehäusen anbringen, Messwerte über MQTT veröffentlichen, die Umgebungstemperatur kompensieren und Schwellenwert- sowie Anstiegsalarme auslösen, lange bevor ein Lager überhitzt.

Warum die Lagertemperatur überwachen

Lager fallen aus bekannten Gründen aus: Versagen der Schmierung, Überfettung, Verschmutzung, Fehlausrichtung, zu hohe Riemenspannung und schlichte Ermüdung. Die meisten davon äußern sich als zusätzliche Reibung, und zusätzliche Reibung äußert sich als Wärme. Ein Lager, das normalerweise konstant um einen bestimmten Betrag über Raumtemperatur läuft und dann langsam wärmer wird, sagt Ihnen etwas.

Temperatur ist in der Regel ein späterer Indikator als Schwingung. Ein Schwingungssensor erkennt einen beginnenden Oberflächenschaden unter Umständen Wochen im Voraus, während die Temperatur meist erst steigt, wenn Schäden oder Schmierprobleme bereits fortgeschritten sind. Das macht sie nicht weniger wertvoll. Temperatursensoren sind günstig, leicht zu installieren und einfach zu interpretieren, und sie erkennen hervorragend die Ausfallarten, die sich schnell entwickeln, etwa ein Schmierungsversagen nach einer ausgelassenen Nachschmierrunde oder eine festgefressene Dichtung. In der Praxis nutzen die besten Programme beides: Sensoren zur Schwingungsüberwachung als mechanische Frühwarnung und die Temperatur als robuste Zweitmeinung.

Das Überwachungs-Setup

Der folgende Anwendungsfall beschreibt einen typischen Versorgungsbereich: sechs Pumpen und vier Ventilatoren, jeweils mit einem antriebsseitigen (A-Seite) und einem nicht antriebsseitigen Lager (B-Seite). Kabel zu zwanzig Messstellen quer durch einen Technikraum zu verlegen ist teuer, deshalb sind die Sensoren funkbasiert und batteriebetrieben.

Komponente Aufgabe Beispiel
Temperaturfühler Misst die Temperatur des Lagergehäuses DS18B20 in einer Edelstahlhülse oder ein Kontakt-Thermistor
Umgebungsfühler Misst die Raumtemperatur nahe der Maschine Zweiter DS18B20 auf derselben Platine
Funkknoten Liest Fühler, veröffentlicht, schläft ESP32 mit Batterien oder ein kommerzieller Funksensor mit Gateway
MQTT-Broker Empfängt alle Messwerte und Alarme Verwalteter MQTT-Broker von ConnectMQ
Alarmlogik Schwellenwerte und Anstiegserkennung Schwellenwertregeln im Portal plus ein kleiner Python-Dienst
Dashboard Live-Ansicht pro Anlage Portal-Dashboard oder ein beliebiges MQTT-fähiges Dashboard-Tool

Montage des Fühlers

Montieren Sie den Fühler am Lagergehäuse, so nah wie möglich am Außenring, idealerweise in der Lastzone. Eine kleine Gewindebohrung mit einem Einschraubfühler bietet den besten Wärmekontakt; Wärmeleitkleber oder eine Magnethalterung mit Wärmeleitpaste funktioniert dort, wo nicht gebohrt werden darf. Vermeiden Sie die Montage an Schutzhauben, Abdeckungen oder am Motorgehäuse weit vom Lager entfernt, da diese träge reagieren und zu niedrige Werte liefern. Beschriften Sie jeden Fühler mit Anlage und Position, zum Beispiel pump3/de für die Antriebsseite.

Firmware des Funkknotens

Der folgende Sketch weckt einen ESP32 jede Minute, liest einen Lagerfühler und einen Umgebungsfühler am selben OneWire-Bus, veröffentlicht eine JSON-Nachricht und geht zurück in den Deep Sleep. Installieren Sie PubSubClient, OneWire und DallasTemperature über den Bibliotheksverwalter der Arduino IDE. Mehr zum Sensor selbst finden Sie im Tutorial ESP32 DS18B20 MQTT.

#include <WiFi.h>
#include <PubSubClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>

const char* WIFI_SSID = "YOUR_WIFI";
const char* WIFI_PASS = "YOUR_WIFI_PASSWORD";
const char* CLIENT_ID = "brg-pump3-de-51ad7e";
const char* TOPIC = "connectmq/demo/51ad7e/utilities/pump3/bearing_de";
const uint64_t SLEEP_US = 60ULL * 1000000ULL;

// Durch die Adressen ersetzen, die ein OneWire-Scanner-Sketch ausgibt
DeviceAddress BEARING = {0x28, 0xFF, 0x64, 0x1E, 0x15, 0x21, 0x03, 0x9A};
DeviceAddress AMBIENT = {0x28, 0xFF, 0x3C, 0x0B, 0x15, 0x21, 0x03, 0x41};

OneWire oneWire(4);
DallasTemperature sensors(&oneWire);
WiFiClient net;
PubSubClient mqtt(net);

void sleepNow() {
  esp_sleep_enable_timer_wakeup(SLEEP_US);
  esp_deep_sleep_start();
}

void setup() {
  sensors.begin();
  sensors.requestTemperatures();
  float bearing = sensors.getTempC(BEARING);
  float ambient = sensors.getTempC(AMBIENT);

  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  uint32_t start = millis();
  while (WiFi.status() != WL_CONNECTED) {
    if (millis() - start > 15000) sleepNow();  // aufgeben, im nächsten Zyklus erneut versuchen
    delay(100);
  }

  mqtt.setServer("broker.connectmq.com", 1883);
  if (!mqtt.connect(CLIENT_ID)) sleepNow();

  char payload[160];
  snprintf(payload, sizeof(payload),
           "{\"bearing_c\":%.2f,\"ambient_c\":%.2f,\"delta_c\":%.2f,\"rssi\":%d}",
           bearing, ambient, bearing - ambient, WiFi.RSSI());
  mqtt.publish(TOPIC, payload, true);  // retained: Dashboards sehen sofort den letzten Wert
  mqtt.loop();
  delay(100);
  mqtt.disconnect();
  sleepNow();
}

void loop() {}

Die Nachricht ist retained, sodass ein Dashboard, das zwischen zwei Weckzyklen geöffnet wird, sofort den letzten Messwert anzeigt. Die Veröffentlichung von delta_c, der Differenz zwischen Lager- und Umgebungstemperatur, ist die wichtigste Designentscheidung in diesem Setup.

Warum die Umgebungskompensation wichtig ist

Ein fester Alarm auf die absolute Lagertemperatur verhält sich über die Jahreszeiten hinweg schlecht. Ein Pumpenraum kann im Sommer deutlich wärmer sein als im Winter. Ein Grenzwert, der im Juli sicher ist, löst im Januar womöglich nie aus, und ein auf Januar abgestimmter Grenzwert erzeugt den ganzen Sommer über Störalarme.

Der Temperaturanstieg über der Umgebung hängt dagegen vor allem von Last, Drehzahl und Zustand des Lagers ab. Ein Alarm auf das Delta eliminiert den saisonalen Effekt, während ein separater absoluter Grenzwert weiterhin vor dem Betrieb außerhalb des zulässigen Bereichs von Schmierstoff und Lager schützt. Hersteller veröffentlichen maximale Betriebstemperaturen für Lager und Fette; verwenden Sie diese Unterlagen als Obergrenze statt einer pauschalen Zahl aus dem Internet.

Alarmstrategie: drei Ebenen

Ein gutes Konzept zur Lagertemperatur-Überwachung kombiniert drei Arten von Regeln:

  1. Absoluter Grenzwert. Lagertemperatur über dem Maximum, das die Spezifikation von Lager und Fett erlaubt. Immer ein Alarm.
  2. Delta-Grenzwert. Anstieg über die Umgebung deutlich höher als der gelernte Normalwert dieses Lagers. Meist zuerst eine Warnung, dann ein Alarm.
  3. Anstiegsrate. Die Temperatur steigt in einem kurzen Zeitfenster schneller als normal, etwa um mehrere Grad innerhalb einer halben Stunde bei stabiler Last. Das erkennt sich schnell entwickelnde Ausfälle früh, oft noch bevor einer der Grenzwerte erreicht ist.

Die ersten beiden sind einfache Schwellenwerte. Im ConnectMQ-Portal können Sie ohne Code Schwellenwert-Alarmregeln auf die Felder bearing_c und delta_c jedes Topics anlegen und jede Überschreitung im Alarmprotokoll nachvollziehen. Die Anstiegsrate braucht eine Historie und läuft daher in einem kleinen Subscriber-Dienst.

Anstiegsdetektor in Python

import json
import time
from collections import defaultdict, deque
import paho.mqtt.client as mqtt

PREFIX = "connectmq/demo/51ad7e"
WINDOW_S = 30 * 60          # 30 Minuten zurückblicken
MAX_RISE_C = 5.0            # Alarm, wenn das Delta im Fenster stärker steigt
STALE_S = 5 * 60            # Knoten hat mehrere Weckzyklen verpasst

history = defaultdict(deque)   # topic -> deque of (time, delta_c)
last_seen = {}

def on_connect(client, userdata, flags, reason_code, properties):
    client.subscribe(f"{PREFIX}/+/+/+", qos=1)

def on_message(client, userdata, msg):
    if msg.topic.endswith("/alert"):
        return
    now = time.time()
    data = json.loads(msg.payload)
    h = history[msg.topic]
    h.append((now, data["delta_c"]))
    last_seen[msg.topic] = now
    while h and now - h[0][0] > WINDOW_S:
        h.popleft()
    rise = h[-1][1] - min(v for _, v in h)
    if rise > MAX_RISE_C:
        alert = {"ts": int(now), "kind": "rate_of_rise", "topic": msg.topic,
                 "rise_c": round(rise, 1), "window_min": WINDOW_S // 60,
                 "bearing_c": data["bearing_c"]}
        client.publish(f"{msg.topic}/alert", json.dumps(alert), qos=1, retain=True)
        print("ALERT", alert)
        h.clear()

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="brg-ror-51ad7e")
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883, keepalive=60)
client.loop_start()

while True:
    time.sleep(60)
    for topic, seen in list(last_seen.items()):
        if time.time() - seen > STALE_S:
            print(f"STALE {topic}: no reading for {int(time.time() - seen)} s")
            last_seen.pop(topic)

Der Detektor ignoriert retained Alarm-Topics, vergleicht das aktuelle Delta mit dem niedrigsten Wert im Fenster und leert nach einem Alarm seine Historie, damit er nicht jede Minute erneut auslöst. Die Prüfung auf veraltete Werte ist für Batterieknoten wichtig: Ein Sensor, der stillschweigend nicht mehr meldet, ist genauso gefährlich wie ein heißes Lager, das niemand bemerkt.

Rollout im gesamten Werk

  1. Pilot an wenigen kritischen Anlagen. Wählen Sie Maschinen, deren Ausfall die Produktion stoppt, nicht die am leichtesten erreichbaren.
  2. Vor dem Feintuning zwei bis vier Wochen Daten sammeln. Lernen Sie das normale Delta jedes Lagers bei typischer Last.
  3. Delta- und Anstiegsgrenzwerte pro Lager festlegen. A-seitige und B-seitige Lager laufen oft bei unterschiedlichen Temperaturen.
  4. Reaktion vereinbaren. Wer erhält eine Warnung, wer einen Alarm, und was wird zuerst geprüft (Schmierung, Ausrichtung, Riemenspannung, Last)?
  5. Befunde dokumentieren. Jeder Alarm sollte mit einer kurzen Notiz zum Befund enden, damit sich die Schwellenwerte mit der Zeit verbessern und Ihre MTBF- und MTTR-Berechnung die Realität abbildet.
  6. Auf einen privaten Broker umziehen. Ersetzen Sie die öffentliche Demo durch Zugangsdaten aus dem Portal, TLS auf Port 8883 und ISA-95-Topics wie acme/plant1/utilities/pumproom/pump3/bearing_de. Damit wird die ISA-95-Hierarchie zur Struktur Ihres Unified Namespace (UNS), in dem jeder Lagerwert eindeutig Werk, Bereich und Anlage zugeordnet ist.

Die obige Demo läuft auf dem kostenlosen öffentlichen MQTT-Broker, auf dem alles für jeden sichtbar ist. Für echte Anlagen hält ein verwalteter MQTT-Broker die Daten privat, die Zertifikate aktuell und den Dienst am Laufen, ohne dass jemand in Ihrem Team Server warten muss.

Tipps zu Batterielaufzeit und Zuverlässigkeit

  • Aufwachen, veröffentlichen und so schnell wie möglich wieder schlafen. Der größte Batterieverbrauch entsteht durch die WLAN-Verbindung, daher ist ein Intervall von einer Minute ein Kompromiss; fünf Minuten genügen für langsame Trends, wenn Sie die Fenster für die Anstiegsrate lang halten.
  • Verwenden Sie eine statische IP oder eine Fast-Reconnect-Strategie, um die Verbindungszeit zu verkürzen.
  • Melden Sie rssi und Batteriespannung, damit schwache Knoten repariert werden, bevor sie ausfallen.
  • Für große Standorte oder Technikräume mit viel Metall kommen Sensoren mit einem eigenen Funkprotokoll und einem Gateway infrage, das die Daten an MQTT weiterveröffentlicht.

Wo die Lagertemperatur ihren Platz hat

Die Temperatur ist ein Signal unter mehreren. Kombiniert mit der Motorstromüberwachung unterscheidet sie lastbedingte von reibungsbedingter Erwärmung, und kombiniert mit Schwingungsdaten bestätigt sie mechanische Fehler aus zwei unabhängigen Quellen. Der Smart-Manufacturing-Leitfaden zeigt, wie sich diese Signale im gesamten Werk ein MQTT-Backbone und eine Topic-Struktur teilen.

Schützen Sie Ihre Lager mit ConnectMQ

ConnectMQ bietet einen privaten, TLS-gesicherten MQTT-Broker mit retained Messages, einem Live-Topic-Explorer, einer Geräteansicht nach ISA-95-Ebene und Schwellenwert-Alarmregeln im Portal. Starten Sie mit dem kostenlosen Serverless-Plan unter app.connectmq.com, ganz ohne Kreditkarte, und verbinden Sie noch heute Ihren ersten Lagersensor.

Häufig gestellte Fragen

Was ist eine normale Lagertemperatur?

Das hängt von Lager, Last, Drehzahl, Schmierstoff und Umgebung ab. Lernen Sie für jedes Lager den normalen Anstieg über die Umgebungstemperatur und nutzen Sie die Maximalwerte der Lager- und Fetthersteller als absolute Obergrenze.

Reicht die Lagertemperatur-Überwachung allein aus?

Sie erkennt Schmierungsversagen und sich schnell entwickelnde Fehler gut, doch die Temperatur steigt oft später als die Schwingung. Kombinieren Sie beides für die früheste Warnung.

Wie oft sollte ein Funk-Lagersensor melden?

Typisch sind ein bis fünf Minuten. Die Lagertemperatur ändert sich langsam, und längere Intervalle verlängern die Batterielaufzeit erheblich.

Warum auf den Temperaturanstieg über der Umgebung alarmieren?

Die Umgebungstemperatur schwankt mit Jahres- und Tageszeit. Der Anstieg über der Umgebung spiegelt den Lagerzustand direkter wider, sodass Alarme das ganze Jahr über aussagekräftig bleiben.

Verwandte Artikel

OEE vs. TEEP vs. OOE: Welche Kennzahl sollten Sie verwenden?

OEE, OOE und TEEP teilen sich die Faktoren Leistung und Qualität, beziehen sich aber auf unterschiedliche Zeitbasen. Dieser Vergleich rechnet ein Beispiel durch und listet die MQTT-Signale, die jede Kennzahl benötigt.

7 Min. Lesezeit

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.