Raspberry Pi

Raspberry Pi vs ESP32 em projetos IoT: como escolher a placa certa para MQTT

Uma comparação prática Raspberry Pi vs ESP32 para quem constrói IoT: como um computador de placa única com Linux e um microcontrolador Wi-Fi diferem em consumo, custo, confiabilidade e ferramentas MQTT, e quando usar os dois juntos.

Um Raspberry Pi e uma placa de desenvolvimento ESP32 lado a lado, ambos enviando mensagens MQTT para a nuvem, ilustrando raspberry pi vs esp32
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

A dúvida Raspberry Pi vs ESP32 aparece em quase todo projeto IoT, e a resposta honesta é que eles resolvem problemas diferentes. Este guia compara um computador de placa única com Linux e um microcontrolador Wi-Fi nos pontos que realmente decidem uma implantação: consumo, custo, confiabilidade, esforço de desenvolvimento e opções de cliente MQTT. Ao final, você vai saber qual placa colocar em cada lugar e como fazer as duas conversarem com o mesmo broker.

Duas classes diferentes de dispositivo

Um Raspberry Pi é um computador completo. Ele dá boot no Linux a partir de um cartão SD ou SSD, roda um gerenciador de pacotes, vários processos, Python, Node.js, Docker, um servidor web e um banco de dados ao mesmo tempo. Um ESP32 é um microcontrolador: um chip dual-core com algumas centenas de kilobytes de RAM, Wi-Fi e Bluetooth integrados, executando uma única imagem de firmware gravada via USB. Não há sistema operacional no sentido de desktop, apenas o FreeRTOS por baixo do seu código Arduino ou ESP-IDF.

Essa diferença de classe define todo o resto. O Pi oferece flexibilidade e um ecossistema de software enorme; o ESP32 oferece determinismo, baixo consumo e a possibilidade de ser colocado numa caixa e esquecido. Nenhum dos dois é "melhor" em abstrato.

Raspberry Pi vs ESP32 num relance

Critério Raspberry Pi (4, 5, Zero 2 W) ESP32 (clássico, S3, C6)
Tipo Computador de placa única com Linux Microcontrolador Wi-Fi/Bluetooth
Tempo de boot Dezenas de segundos Bem menos de um segundo
Consumo típico em repouso Watts Miliwatts; microampères em deep sleep
Operação a bateria Inviável por longos períodos Projetado para isso com deep sleep
Armazenamento Cartão SD ou SSD com sistema de arquivos Flash interna, sem necessidade de sistema de arquivos
Queda súbita de energia Pode corromper o cartão SD Em geral inofensiva
Linguagens Python, Node.js, Go, C#, Java, qualquer coisa no Linux C/C++ (Arduino, ESP-IDF), MicroPython
Clientes MQTT paho-mqtt, MQTT.js, ferramentas Mosquitto, Node-RED PubSubClient, AsyncMqttClient, ESP-MQTT, umqtt
TLS OpenSSL completo, trivial de habilitar Suportado, mas certificados e RAM exigem cuidado
Câmera, ML, dispositivos USB Fácil Limitado (ESP32-CAM, TinyML)
Atualizações remotas apt, git pull, contêineres Imagens de firmware OTA
Custo unitário Maior Menor

Consumo e autonomia de bateria

O consumo é onde a comparação é mais desequilibrada. Um Raspberry Pi nunca dorme de verdade; até o Zero 2 W consome uma corrente constante sempre que está ligado, e um Pi 5 com periféricos precisa de uma fonte USB-C adequada. Alimentar um Pi com power bank funciona para uma demonstração de fim de semana, não para um sensor no meio de uma lavoura.

Um ESP32 pode acordar, ler um sensor, conectar ao Wi-Fi, publicar uma mensagem MQTT e voltar ao deep sleep em poucos segundos. Entre um despertar e outro, ele consome uma fração mínima da corrente ativa, e é assim que placas do tamanho de uma moeda funcionam por meses com uma única célula. Se o seu dispositivo não tem energia da rede, a decisão está praticamente tomada: use o ESP32 e leia nosso guia sobre ESP32 em deep sleep com MQTT para o padrão publicar-e-dormir.

Confiabilidade em campo

Microcontroladores são difíceis de quebrar. Se um ESP32 perde energia no meio de uma gravação, ele simplesmente reinicia com o mesmo firmware. Um watchdog o reinicia se o seu loop travar, e não existe sistema de arquivos para corromper.

Um Raspberry Pi é mais frágil em instalações sem supervisão. Os modos de falha mais comuns são:

  1. Corrupção do cartão SD após repetidos cortes bruscos de energia ou excesso de logs.
  2. Subtensão por fonte fraca, que provoca travamentos aleatórios e quedas de Wi-Fi.
  3. Um script Python que encerra por causa de uma exceção e ninguém o reinicia.
  4. Disco enchendo de logs ao longo dos meses.

Os quatro têm solução: use uma fonte de qualidade, grave logs em RAM ou reduza o volume de logs, dê boot por SSD em um Pi 4 ou Pi 5 e execute seu script MQTT como serviço systemd com Restart=always. Nosso guia sobre como executar um script Python MQTT na inicialização mostra o arquivo de serviço passo a passo. Depois de blindado, um Pi roda por longos períodos sem atenção, mas ele precisa dessa etapa de blindagem que o ESP32 dispensa.

Velocidade de desenvolvimento e depuração

No Pi você entra via SSH, edita um arquivo Python, executa, lê o traceback e itera em segundos. Dá para instalar mosquitto-clients e observar o tráfego no próprio dispositivo, usar htop para verificar a memória e manter um checkout git completo na placa. Para processamento de dados, manipulação de imagens ou qualquer coisa que envolva banco de dados, isso é muito mais rápido que desenvolvimento embarcado.

No ESP32, cada mudança exige compilar e gravar, e a depuração é feita principalmente com prints na serial. Em troca, o firmware final é pequeno, inicia instantaneamente e se comporta sempre da mesma forma. Muitas equipes prototipam a lógica em Python no Pi e depois portam a parte estável para o ESP32.

Opções de cliente MQTT comparadas

As duas plataformas são clientes MQTT de primeira linha, mas a experiência é diferente.

No Raspberry Pi você tem as mesmas bibliotecas de um servidor. O paho-mqtt 2.x para Python suporta MQTT 3.1.1 e 5.0, TLS, WebSockets e reconexão automática. O MQTT.js cobre o Node.js, o Node-RED roda nativamente e as ferramentas de linha de comando do Mosquitto estão a um apt install de distância. Um Pi também pode atuar como gateway: ler dispositivos Modbus, BLE ou seriais e encaminhá-los via MQTT.

No ESP32, o PubSubClient é a opção mais simples para MQTT 3.1.1 com publicação em QoS 0; o AsyncMqttClient e o componente esp-mqtt do ESP-IDF acrescentam QoS 1 e 2 e operação não bloqueante. O MicroPython oferece o umqtt.simple. O suporte a MQTT 5 é mais escasso em microcontroladores, e o TLS consome uma fatia relevante da RAM, então é preciso planejar os tamanhos de buffer. Um tutorial de ESP32 com MQTT usando PubSubClient e WiFiClientSecure mostra um sketch completo pronto para TLS.

Uma forma rápida de ver que as duas placas se comportam de maneira idêntica na rede é apontá-las para o mesmo broker e observar a partir do seu notebook:

# Acompanhe tudo o que seus dispositivos publicam sob o seu próprio prefixo
mosquitto_sub -h broker.connectmq.com -p 1883 -i watcher-7f3a91 \
  -t 'connectmq/demo/7f3a91/#' -v

No Pi, um publish de uma linha confirma o caminho de rede:

mosquitto_pub -h broker.connectmq.com -p 1883 -i rpi-7f3a91 \
  -t 'connectmq/demo/7f3a91/rpi/status' -m 'online'

O servidor MQTT público em broker.connectmq.com é anônimo e pode ser lido por qualquer pessoa, então use um prefixo aleatório e nunca envie dados sensíveis; ele serve para testes e protótipos, não para dados de produção.

Custo além do preço da placa

O ESP32 é mais barato por unidade, mas o custo total vai além do chip. Um Pi precisa de fonte, cartão SD ou SSD e muitas vezes de um gabinete. Um ESP32 precisa de um regulador, possivelmente de bateria e circuito de carga, e de um invólucro. Do outro lado da balança, o tempo de engenharia costuma ser o maior custo em implantações pequenas, e Python em um Pi pode economizar dias de trabalho de firmware em instalações únicas. Para dezenas ou centenas de nós sensores idênticos, o menor custo unitário e o baixo consumo do ESP32 vencem com folga.

Quando escolher cada placa

Escolha um Raspberry Pi quando o dispositivo precisar:

  • Rodar vários serviços, como Node-RED, um banco de dados local e um dashboard.
  • Processar imagens de câmera, áudio ou modelos de machine learning.
  • Atuar como gateway para dispositivos USB, seriais, Modbus ou Bluetooth.
  • Ser desenvolvido e alterado rapidamente em Python ou Node.js.

Escolha um ESP32 quando o dispositivo precisar:

  • Funcionar com bateria ou coleta de energia.
  • Iniciar instantaneamente e sobreviver a quedas de energia sem cuidados.
  • Ser barato o suficiente para ser implantado em grande quantidade.
  • Fazer uma única tarefa: ler sensores, acionar saídas, publicar e assinar.

Usando os dois juntos

As arquiteturas mais robustas combinam os dois. Nós ESP32 ficam junto aos sensores e atuadores, publicando payloads JSON pequenos. Um ou mais Raspberry Pis assinam esses topics para executar lógica local, fluxos Node-RED, uma stack Grafana ou uma câmera. Nenhum dispositivo fala diretamente com o outro; ambos falam com um broker MQTT, o que os desacopla por completo. Você pode trocar um ESP32 por um Pi, ou o contrário, sem mexer no resto do sistema, desde que o contrato de topic e payload continue o mesmo.

Onde esse broker roda passa a importar assim que o projeto sai da sua bancada. Rodar o Mosquitto no próprio Pi serve para laboratório, mas transforma o Pi em ponto único de falha e deixa com você a gestão de TLS, autenticação e acesso remoto. Um broker MQTT gerenciado como o ConnectMQ dá às duas placas um endpoint TLS estável na porta 8883, credenciais geradas por dispositivo e um explorador de topics ao vivo para depurar o tráfego, sem redirecionamento de portas no roteador da sua casa ou da fábrica.

Para se aprofundar no lado do Pi, comece pelo tutorial de MQTT com Raspberry Pi e depois experimente um projeto prático como controlar uma placa de relés via MQTT. Se você também está avaliando microcontroladores menores, a comparação ESP32 vs Raspberry Pi Pico W cobre essa escolha.

Checklist de decisão

Responda a estas perguntas antes de comprar o hardware:

  1. Há energia da rede no local da instalação? Se não, escolha o ESP32.
  2. O dispositivo precisa de câmera, armazenamento local ou vários serviços? Se sim, escolha um Pi.
  3. Você vai implantar mais do que um punhado de nós idênticos? Prefira o ESP32.
  4. A velocidade de desenvolvimento importa mais que o custo unitário? Prefira o Pi.
  5. O dispositivo precisa sobreviver a quedas de energia frequentes sem manutenção? Prefira o ESP32 ou blinde o Pi.
  6. Você precisa de recursos do MQTT 5, como expiração de mensagens ou response topics, no próprio dispositivo? É mais fácil em um Pi.

Comece a usar o ConnectMQ

Seja qual for a placa escolhida, ela precisa de um broker que consiga alcançar de qualquer lugar. O ConnectMQ oferece um broker MQTT na nuvem com MQTT 3.1.1 e 5.0, TLS na porta 8883 e WebSocket seguro na 8084 para dashboards. Crie um broker Serverless gratuito sem cartão de crédito, copie o username, a senha e o client ID gerados para o seu script no Pi ou sketch no ESP32 e veja os dois dispositivos aparecerem no explorador de topics do portal. Quando precisar de mais conexões ou de QoS 2, você pode migrar para um plano Serverless (Paid) ou Dedicated sem alterar o código, e o guia de broker MQTT na nuvem explica os prós e contras.

Perguntas frequentes

O ESP32 é mais confiável que o Raspberry Pi?

Para tarefas simples de sensoriamento sem supervisão, geralmente sim, porque não tem sistema de arquivos para corromper e reinicia em menos de um segundo. Um Pi bem blindado, com boa fonte e serviço systemd, também é confiável, mas exige mais cuidado.

Um Raspberry Pi e um ESP32 podem usar o mesmo broker MQTT?

Sim. O MQTT é independente de plataforma, então os dois se conectam ao mesmo broker, publicam em topics combinados e nunca precisam saber um do outro.

Qual é melhor para sensores alimentados por bateria?

O ESP32, com ampla vantagem. O modo deep sleep permite publicar uma leitura e desligar entre as medições, algo que um Raspberry Pi não consegue fazer.

Devo rodar o broker MQTT no meu Raspberry Pi?

Funciona para aprender, mas amarra todos os dispositivos a um único cartão SD e a uma única rede doméstica. Um broker hospedado elimina esse ponto único de falha e oferece TLS e acesso remoto sem mudanças no roteador.

Artigos relacionados

Registro de Acessos Raspberry Pi RFID MQTT com o Leitor RC522

Ligue um leitor RFID RC522 a um Raspberry Pi, leia tags em Python, confira-as em uma lista de permissões local e publique cada tentativa de acesso como um evento MQTT que loggers, dashboards e ferramentas de alerta podem consumir.

8 min de leitura

Confiabilidade do Raspberry Pi: Rodando um Pi 24/7 como Gateway IoT

Um guia prático para manter um gateway MQTT com Raspberry Pi rodando por meses: desgaste do armazenamento, sistemas de arquivos somente leitura, alimentação, refrigeração, watchdogs de hardware e software e monitoramento remoto de saúde.

9 min de leitura

Pico W vs Pico 2 W para MQTT: Desempenho, Memória e TLS do RP2040 vs RP2350

O Pico 2 W mantém o formato e o chip Wi-Fi do Pico W, mas troca o RP2040 pelo RP2350, mais rápido. Esta comparação mostra o que isso significa para dispositivos MQTT: CPU, memória, TLS, recursos de segurança, suporte de software e qual placa comprar para cada projeto.

9 min de leitura

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.