Fabrication intelligente

Surveillance de la température des roulements avec capteurs sans fil et alertes MQTT

Une installation concrète de surveillance de la température des roulements : capteurs sans fil sur pile fixés sur les paliers, mesures compensées de l'ambiante via MQTT, détection de vitesse de montée et alertes sur seuil déclenchées avant toute surchauffe.

Surveillance de la température des roulements avec un capteur sans fil sur le palier d'une pompe envoyant des alertes vers un tableau de bord MQTT dans le cloud
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

La surveillance de la température des roulements est l'un des moyens les plus simples de protéger moteurs, pompes, ventilateurs et convoyeurs contre les arrêts imprévus. Ce cas d'usage montre comment poser des capteurs de température sans fil sur les paliers, publier les mesures via MQTT, compenser la température ambiante et déclencher des alertes sur seuil et sur vitesse de montée bien avant qu'un roulement ne surchauffe.

Pourquoi surveiller la température des roulements

Les roulements tombent en panne pour des raisons bien connues : dégradation de la lubrification, excès de graisse, contamination, désalignement, tension de courroie excessive et simple fatigue. La plupart de ces causes se traduisent par un surcroît de frottement, et ce frottement se traduit par de la chaleur. Un roulement qui tourne habituellement à un écart stable au-dessus de la température de la pièce et qui commence à grimper vous envoie un signal.

La température est généralement un indicateur plus tardif que les vibrations. Un capteur de vibrations peut détecter un défaut de surface naissant des semaines à l'avance, alors que la température a tendance à monter une fois l'endommagement ou le problème de lubrification bien engagé. Elle n'en reste pas moins précieuse. Les capteurs de température sont bon marché, faciles à installer et faciles à interpréter, et ils excellent à détecter les modes de défaillance qui se développent rapidement, comme un défaut de lubrification après une tournée de graissage oubliée ou un joint grippé. En pratique, les meilleurs programmes combinent les deux : des capteurs de surveillance vibratoire pour l'alerte mécanique précoce et la température comme second avis robuste.

L'installation de surveillance

Le cas d'usage ci-dessous couvre une zone d'utilités typique : six pompes et quatre ventilateurs, chacun avec un roulement côté entraînement et un roulement côté opposé. Tirer des câbles vers vingt points de mesure dans une salle technique coûte cher : les capteurs sont donc sans fil et alimentés par pile.

Composant Rôle Exemple
Sonde de température Mesure la température du palier DS18B20 dans une gaine inox, ou thermistance de contact
Sonde d'ambiance Mesure la température de la pièce près de la machine Second DS18B20 sur la même carte
Nœud sans fil Lit les sondes, publie, se met en veille ESP32 sur piles, ou capteur sans fil du commerce avec passerelle
Broker MQTT Reçoit toutes les mesures et alertes Broker MQTT managé ConnectMQ
Logique d'alerte Seuils et détection de vitesse de montée Règles de seuil du portail plus un petit service Python
Tableau de bord Vue en direct par équipement Tableau de bord du portail ou tout outil de tableau de bord compatible MQTT

Monter la sonde

Montez la sonde sur le palier, aussi près que possible de la bague extérieure, idéalement dans la zone de charge. Un petit trou taraudé avec une sonde filetée offre le meilleur contact thermique ; une colle époxy thermique ou une fixation magnétique avec pâte thermique conviennent là où le perçage est interdit. Évitez de la fixer sur les carters, les capots ou la carcasse du moteur loin du roulement : ils réagissent avec retard et affichent des valeurs trop basses. Étiquetez chaque sonde avec son équipement et sa position, par exemple pump3/de pour le côté entraînement.

Firmware du nœud sans fil

Le sketch ci-dessous réveille un ESP32 chaque minute, lit une sonde de roulement et une sonde d'ambiance sur le même bus OneWire, publie un message JSON et repasse en veille profonde. Installez PubSubClient, OneWire et DallasTemperature depuis le gestionnaire de bibliothèques Arduino. Pour en savoir plus sur le capteur lui-même, consultez le tutoriel 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;

// Remplacez par les adresses affichées par un sketch de scan OneWire
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();  // abandon, nouvel essai au prochain cycle
    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 : les tableaux de bord voient immédiatement la dernière valeur
  mqtt.loop();
  delay(100);
  mqtt.disconnect();
  sleepNow();
}

void loop() {}

Le message est retained : un tableau de bord ouvert entre deux réveils affiche donc immédiatement la dernière mesure. Publier delta_c, l'écart entre la température du roulement et l'ambiante, est la décision de conception la plus importante de cette installation.

Pourquoi la compensation de l'ambiante est essentielle

Une alarme fixe sur la température absolue du roulement se comporte mal d'une saison à l'autre. Une salle de pompes peut être bien plus chaude en été qu'en hiver : un seuil sûr en juillet risque de ne jamais se déclencher en janvier, et un seuil réglé pour janvier provoquera des alarmes intempestives tout l'été.

L'échauffement au-dessus de l'ambiante, en revanche, dépend surtout de la charge, de la vitesse et de l'état du roulement. Déclencher l'alarme sur l'écart supprime l'effet saisonnier, tandis qu'une limite absolue distincte protège toujours contre un fonctionnement hors de la plage nominale du lubrifiant et du roulement. Les fabricants publient les températures maximales de fonctionnement des roulements et des graisses ; utilisez ces documents comme limite haute plutôt qu'un chiffre générique trouvé sur Internet.

Stratégie d'alerte : trois niveaux

Un bon dispositif de surveillance de la température des roulements combine trois types de règles :

  1. Limite absolue. Température du roulement supérieure au maximum autorisé par les spécifications du roulement et de la graisse. Toujours une alarme.
  2. Limite d'écart. Échauffement au-dessus de l'ambiante nettement supérieur à la normale apprise pour ce roulement. En général un avertissement d'abord, puis une alarme.
  3. Vitesse de montée. Température qui grimpe plus vite que la normale sur une courte fenêtre, par exemple plusieurs degrés en une demi-heure à charge stable. Cette règle détecte tôt les défaillances rapides, souvent avant qu'aucune des deux limites ne soit atteinte.

Les deux premières sont de simples seuils. Dans le portail ConnectMQ, vous pouvez créer des règles d'alerte sur seuil sur les champs bearing_c et delta_c de chaque topic et consulter chaque dépassement dans le journal des alertes, sans écrire de code. La vitesse de montée nécessite un historique : elle s'exécute donc dans un petit service abonné.

Détecteur de vitesse de montée en Python

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

PREFIX = "connectmq/demo/51ad7e"
WINDOW_S = 30 * 60          # fenêtre d'analyse de 30 minutes
MAX_RISE_C = 5.0            # alerte si l'écart augmente de plus que cette valeur dans la fenêtre
STALE_S = 5 * 60            # le nœud a manqué plusieurs réveils

history = defaultdict(deque)   # topic -> deque de (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)

Le détecteur ignore les topics d'alerte retained, compare le dernier écart à la valeur la plus basse de la fenêtre et efface son historique après une alerte pour ne pas se déclencher chaque minute. La vérification des nœuds muets est importante pour les capteurs sur pile : un capteur qui cesse silencieusement de remonter des données est aussi dangereux qu'un roulement chaud que personne ne voit.

Déploiement à l'échelle d'une usine

  1. Pilotez sur quelques équipements critiques. Choisissez les machines dont la panne arrête la production, pas les plus faciles d'accès.
  2. Collectez deux à quatre semaines de données avant de régler. Apprenez l'écart normal de chaque roulement à charge typique.
  3. Définissez des limites d'écart et de vitesse de montée par roulement. Les roulements côté entraînement et côté opposé tournent souvent à des températures différentes.
  4. Convenez d'une réponse. Qui reçoit un avertissement, qui reçoit une alarme, et que vérifient-ils en premier (lubrification, alignement, tension de courroie, charge).
  5. Consignez les constats. Chaque alerte doit se conclure par une courte note sur ce qui a été trouvé, afin que les seuils s'améliorent avec le temps et que votre calcul du MTBF et du MTTR reflète la réalité.
  6. Passez à un broker privé. Remplacez la démo publique par des identifiants issus du portail, TLS sur le port 8883 et des topics ISA-95 comme acme/plant1/utilities/pumproom/pump3/bearing_de.

La démo ci-dessus s'exécute sur le serveur MQTT public gratuit, où tout est visible par n'importe qui. Pour de vrais équipements, un broker MQTT managé garde les données privées, les certificats renouvelés et le service opérationnel sans que personne dans votre équipe n'ait à maintenir de serveurs.

Conseils d'autonomie et de fiabilité

  • Réveillez, publiez et rendormez le plus vite possible. L'essentiel de la consommation vient de la connexion Wi-Fi ; un intervalle d'une minute est donc un compromis, et cinq minutes suffisent largement pour des tendances lentes si vous gardez des fenêtres de vitesse de montée longues.
  • Utilisez une IP statique ou une stratégie de reconnexion rapide pour réduire le temps de connexion.
  • Remontez le rssi et la tension de la pile afin de corriger les nœuds faibles avant qu'ils ne décrochent.
  • Pour les grands sites ou les salles techniques très métalliques, envisagez des capteurs utilisant un protocole sans fil dédié et une passerelle qui republie vers MQTT.

La place de la température des roulements

La température est un signal parmi d'autres. Combinée à la surveillance du courant moteur, elle distingue l'échauffement dû à la charge de celui dû au frottement ; combinée aux vibrations, elle confirme les défauts mécaniques à partir de deux sources indépendantes. Le guide de l'industrie intelligente montre comment ces signaux partagent une même dorsale MQTT et une même structure de topics dans toute l'usine.

Protégez vos roulements avec ConnectMQ

ConnectMQ fournit un broker MQTT privé sécurisé par TLS, avec retained messages, un explorateur de topics en direct, une vue des appareils par niveau ISA-95 et des règles d'alerte sur seuil dans le portail. Commencez avec l'offre Serverless gratuite sur app.connectmq.com, sans carte bancaire, et connectez votre premier capteur de roulement dès aujourd'hui.

Questions fréquentes

Quelle est la température normale d'un roulement ?

Elle dépend du roulement, de la charge, de la vitesse, du lubrifiant et de l'environnement. Apprenez l'échauffement normal au-dessus de l'ambiante pour chaque roulement et utilisez les valeurs maximales des fabricants du roulement et de la graisse comme limite absolue.

La surveillance de la température des roulements suffit-elle à elle seule ?

Elle détecte bien les défauts de lubrification et les défaillances rapides, mais la température monte souvent plus tard que les vibrations. Combinez les deux pour obtenir l'alerte la plus précoce.

À quelle fréquence un capteur de roulement sans fil doit-il remonter ses mesures ?

Toutes les une à cinq minutes, en général. La température d'un roulement évolue lentement, et des intervalles plus longs prolongent nettement l'autonomie de la pile.

Pourquoi déclencher l'alarme sur l'échauffement au-dessus de l'ambiante ?

La température ambiante varie selon la saison et l'heure de la journée. L'échauffement au-dessus de l'ambiante reflète plus directement l'état du roulement, si bien que les alarmes restent pertinentes toute l'année.

Articles liés

TRS (OEE) vs TEEP vs OOE : quel indicateur utiliser ?

Le TRS (OEE), l'OOE et le TEEP partagent les mêmes facteurs de performance et de qualité, mais se mesurent sur des bases de temps différentes. Ce comparatif déroule un exemple unique et liste les signaux MQTT nécessaires à chaque indicateur.

7 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.