O monitoramento de temperatura de rolamentos é uma das formas mais simples de proteger motores, bombas, ventiladores e transportadores contra paradas não planejadas. Este caso de uso mostra como instalar sensores de temperatura sem fio nas caixas de mancal, publicar leituras via MQTT, compensar a temperatura ambiente e gerar alertas por limite e por taxa de elevação bem antes de um rolamento superaquecer.
Por que monitorar a temperatura dos rolamentos
Rolamentos falham por motivos conhecidos: degradação da lubrificação, excesso de graxa, contaminação, desalinhamento, tensão excessiva de correia e simples fadiga. A maioria desses problemas aparece como atrito extra, e atrito extra aparece como calor. Um rolamento que normalmente opera a uma diferença estável acima da temperatura ambiente e começa a subir aos poucos está avisando alguma coisa.
A temperatura costuma ser um indicador mais tardio do que a vibração. Um sensor de vibração pode detectar um defeito superficial inicial com semanas de antecedência, enquanto a temperatura tende a subir quando o dano ou o problema de lubrificação já está bem avançado. Isso não a torna menos valiosa. Sensores de temperatura são baratos, fáceis de instalar e fáceis de interpretar, e são excelentes para detectar modos de falha que se desenvolvem rapidamente, como uma falha de lubrificação depois de uma rota de lubrificação esquecida ou uma vedação travada. Na prática, os melhores programas usam os dois: sensores de monitoramento de vibração para o alerta mecânico precoce e a temperatura como uma segunda opinião robusta.
A configuração de monitoramento
O caso de uso abaixo cobre uma área de utilidades típica, como a de uma usina ou de uma planta em Joinville: seis bombas e quatro ventiladores, cada um com um rolamento do lado acionado e um do lado oposto. Passar cabos para vinte pontos de medição em uma casa de máquinas é caro, então os sensores são sem fio e alimentados por bateria.
| Componente | Função | Exemplo de escolha |
|---|---|---|
| Sonda de temperatura | Mede a temperatura da caixa de mancal | DS18B20 em uma bainha de inox, ou um termistor de contato |
| Sonda ambiente | Mede a temperatura da sala perto da máquina | Segundo DS18B20 na mesma placa |
| Nó sem fio | Lê as sondas, publica, dorme | ESP32 a bateria, ou um sensor sem fio comercial com gateway |
| Broker MQTT | Recebe todas as leituras e alertas | Broker MQTT gerenciado da ConnectMQ |
| Lógica de alerta | Limites e detecção de taxa de elevação | Regras de limite do portal mais um pequeno serviço em Python |
| Dashboard | Visão ao vivo por ativo | Dashboard do portal ou qualquer ferramenta de dashboard compatível com MQTT |
Montando a sonda
Monte a sonda na caixa de mancal, o mais perto possível do anel externo, de preferência na zona de carga. Um pequeno furo roscado com uma sonda rosqueada oferece o melhor contato térmico; epóxi térmico ou uma base magnética com pasta térmica funcionam onde não é permitido furar. Evite montar em proteções, tampas ou na carcaça do motor longe do rolamento, porque elas respondem com atraso e indicam valores mais baixos. Identifique cada sonda com seu ativo e posição, por exemplo pump3/de para o lado acionado.
Firmware do nó sem fio
O sketch abaixo acorda um ESP32 a cada minuto, lê uma sonda do rolamento e uma sonda ambiente no mesmo barramento OneWire, publica uma mensagem JSON e volta ao deep sleep. Instale PubSubClient, OneWire e DallasTemperature pelo Gerenciador de Bibliotecas do Arduino. Para conhecer melhor o próprio sensor, veja o 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;
// Substitua pelos endereços exibidos por um sketch scanner de 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(); // desiste e tenta no próximo ciclo
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); // retida: os dashboards veem o último valor na hora
mqtt.loop();
delay(100);
mqtt.disconnect();
sleepNow();
}
void loop() {}
A mensagem é retida, então um dashboard aberto entre dois despertares ainda mostra a última leitura imediatamente. Publicar delta_c, a diferença entre a temperatura do rolamento e a ambiente, é a decisão de projeto mais importante desta configuração.
Por que a compensação da temperatura ambiente importa
Um alarme fixo sobre a temperatura absoluta do rolamento se comporta mal ao longo das estações. Uma casa de bombas no verão pode ficar muito mais quente do que no inverno, então um limite seguro em janeiro pode nunca disparar em julho, e um limite ajustado para julho vai gerar alarmes incômodos durante todo o verão.
Já a elevação de temperatura acima da ambiente depende principalmente de carga, rotação e condição do rolamento. Alarmar sobre o delta elimina o efeito sazonal, enquanto um limite absoluto separado continua protegendo contra a operação fora da faixa nominal do lubrificante e do rolamento. Os fabricantes publicam temperaturas máximas de operação para rolamentos e graxas; use esses documentos como limite superior, em vez de um número genérico da internet.
Estratégia de alertas: três camadas
Um bom esquema de monitoramento de temperatura de rolamentos combina três tipos de regra:
- Limite absoluto. Temperatura do rolamento acima do máximo permitido pela especificação do rolamento e da graxa. Sempre um alarme.
- Limite de delta. Elevação acima da ambiente significativamente maior do que o normal aprendido para aquele rolamento. Geralmente primeiro um aviso, depois um alarme.
- Taxa de elevação. Temperatura subindo mais rápido que o normal em uma janela curta, por exemplo vários graus em meia hora com carga estável. Isso detecta cedo as falhas de desenvolvimento rápido, muitas vezes antes de qualquer um dos limites ser atingido.
Os dois primeiros são limites simples. No portal da ConnectMQ você pode criar regras de alerta por limite nos campos bearing_c e delta_c de cada topic e revisar cada excursão no log de alertas, sem código. A taxa de elevação precisa de histórico, então roda em um pequeno serviço assinante.
Detector de taxa de elevação em Python
import json
import time
from collections import defaultdict, deque
import paho.mqtt.client as mqtt
PREFIX = "connectmq/demo/51ad7e"
WINDOW_S = 30 * 60 # olha 30 minutos para trás
MAX_RISE_C = 5.0 # alerta se o delta subir mais do que isso dentro da janela
STALE_S = 5 * 60 # o nó perdeu vários despertares
history = defaultdict(deque) # topic -> deque de (tempo, 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)
O detector ignora os topics de alerta retidos, compara o delta mais recente com o menor valor da janela e limpa seu histórico após alertar, para não disparar a cada minuto. A verificação de dados obsoletos é importante para nós a bateria: um sensor que para de reportar em silêncio é tão perigoso quanto um rolamento quente que ninguém vê.
Expandindo para a planta inteira
- Comece com um piloto em poucos ativos críticos. Escolha máquinas cuja falha para a produção, não as mais fáceis de alcançar.
- Colete de duas a quatro semanas de dados antes de ajustar. Aprenda o delta normal de cada rolamento em carga típica.
- Defina limites de delta e de taxa de elevação por rolamento. Rolamentos do lado acionado e do lado oposto costumam operar em temperaturas diferentes.
- Combine uma resposta. Quem recebe um aviso, quem recebe um alarme e o que verificar primeiro (lubrificação, alinhamento, tensão da correia, carga).
- Registre as constatações. Cada alerta deve terminar com uma nota curta do que foi encontrado, para que os limites melhorem com o tempo e o seu cálculo de MTBF e MTTR reflita a realidade.
- Migre para um broker privado. Substitua a demonstração pública por credenciais do portal, TLS na porta 8883 e topics ISA-95 como
acme/plant1/utilities/pumproom/pump3/bearing_de.
A demonstração acima roda no servidor MQTT público gratuito, onde tudo fica visível para qualquer pessoa; use-o apenas para testes e protótipos. Para ativos reais, um broker MQTT gerenciado mantém os dados privados, os certificados renovados e o serviço funcionando sem que ninguém da sua equipe precise manter servidores.
Dicas de duração da bateria e confiabilidade
- Acorde, publique e durma o mais rápido possível. A maior parte do consumo da bateria vem da conexão Wi-Fi, então um intervalo de um minuto é um meio-termo; cinco minutos são suficientes para tendências lentas se você mantiver janelas de taxa de elevação longas.
- Use IP estático ou uma estratégia de reconexão rápida para reduzir o tempo de conexão.
- Reporte
rssie a tensão da bateria para que nós fracos sejam corrigidos antes de caírem. - Em sites grandes ou casas de máquinas com muito metal, considere sensores que usam um protocolo sem fio dedicado e um gateway que republica no MQTT.
Onde a temperatura de rolamentos se encaixa
A temperatura é um sinal entre vários. Combinada com o monitoramento de corrente de motores, ela separa o aquecimento causado pela carga do aquecimento causado pelo atrito, e combinada com a vibração confirma falhas mecânicas a partir de duas fontes independentes. O guia de manufatura inteligente mostra como esses sinais compartilham um único backbone MQTT e uma única estrutura de topics em toda a planta.
Proteja seus rolamentos com a ConnectMQ
A ConnectMQ oferece um broker MQTT privado e protegido por TLS, com retained messages, explorador de topics ao vivo, visão de dispositivos por nível ISA-95 e regras de alerta por limite no portal. Comece no plano Serverless gratuito em app.connectmq.com, sem cartão de crédito, e conecte hoje seu primeiro sensor de rolamento.
Perguntas frequentes
Qual é a temperatura normal de um rolamento?
Depende do rolamento, da carga, da rotação, do lubrificante e do ambiente. Aprenda a elevação normal acima da ambiente para cada rolamento e use as especificações máximas do fabricante do rolamento e da graxa como limite superior absoluto.
O monitoramento de temperatura de rolamentos basta sozinho?
Ele detecta bem falhas de lubrificação e defeitos de desenvolvimento rápido, mas a temperatura frequentemente sobe depois da vibração. Combine os dois para obter o alerta mais precoce.
Com que frequência um sensor de rolamento sem fio deve reportar?
A cada um a cinco minutos é o típico. A temperatura do rolamento muda devagar, e intervalos mais longos aumentam muito a duração da bateria.
Por que alarmar pela elevação de temperatura acima da ambiente?
A temperatura ambiente varia com a estação e a hora do dia. A elevação acima da ambiente reflete mais diretamente a condição do rolamento, então os alarmes continuam significativos o ano inteiro.



