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:
- Absoluter Grenzwert. Lagertemperatur über dem Maximum, das die Spezifikation von Lager und Fett erlaubt. Immer ein Alarm.
- Delta-Grenzwert. Anstieg über die Umgebung deutlich höher als der gelernte Normalwert dieses Lagers. Meist zuerst eine Warnung, dann ein Alarm.
- 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
- Pilot an wenigen kritischen Anlagen. Wählen Sie Maschinen, deren Ausfall die Produktion stoppt, nicht die am leichtesten erreichbaren.
- Vor dem Feintuning zwei bis vier Wochen Daten sammeln. Lernen Sie das normale Delta jedes Lagers bei typischer Last.
- Delta- und Anstiegsgrenzwerte pro Lager festlegen. A-seitige und B-seitige Lager laufen oft bei unterschiedlichen Temperaturen.
- Reaktion vereinbaren. Wer erhält eine Warnung, wer einen Alarm, und was wird zuerst geprüft (Schmierung, Ausrichtung, Riemenspannung, Last)?
- 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.
- 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
rssiund 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.



