Introdução
Série: Automação de Cafeteira
Este é o Nível 2 da nossa série completa de automação de cafeteira.
Se você deseja dar o primeiro passo para transformar sua cafeteira tradicional em uma smart coffee controlada digitalmente, este guia é perfeito para você. Usando um ESP32, um módulo relé simples, e um sensor básico de temperatura (DS18B20), você terá o controle remoto do aquecimento da sua cafeteira via uma interface web simples, acompanhando também a temperatura da água em tempo real.
Este projeto simplificado é ideal para iniciantes que querem aprender eletrônica, programação e automação aos poucos, preparatório para sistemas mais robustos e avançados.
ATENÇÃO CRÍTICA - SEGURANÇA ELÉTRICA
Este projeto trabalha com eletricidade 220V que pode ser FATAL!
- Só implemente se tiver conhecimento básico de elétrica
- Use sempre disjuntor dedicado e aterramento
- Teste primeiro todo o circuito sem água
- Em caso de dúvida, procure um eletricista qualificado
- Nunca manipule circuito energizado
Materiais Necessários
Eletrônicos:
- ESP32 DevKit V1 – R$ 35-55
- Módulo relé 5V (1 canal) – R$ 18-30
- Sensor de temperatura DS18B20 – R$ 12-25
- Resistor de 4.7 kΩ (para o sensor) – R$ 2-5
- Protoboard e jumpers – R$ 15-25
- Fonte 5V USB (ou fonte chaveada 5V) – R$ 20-35
Instalação elétrica:
- Cafeteira simples com resistência elétrica
- Fios elétricos 2.5mm² para conexão do relé
- Caixa elétrica vedada – R$ 15-25
- Disjuntor 16A – R$ 25-40
- Fusível 10A + porta-fusível – R$ 15-25
Ferramentas:
Ferro de solda, multímetro, alicate, chaves
Custo total: R$ 160-290 (incluindo segurança elétrica)
⚠️ Importante: As marcas mencionadas neste tutorial são citadas apenas para fins educativos e informativos. Não possuímos qualquer parceria, vínculo comercial ou patrocínio com essas empresas.
Diagrama Elétrico Simplificado
+------------------+ +-------------------+ | | | | | ESP32 | | Módulo Relé | | | | | | GPIO13 ------- IN|----------| | | | | NO ----> Fio ligado à cafeteira (fase cortada) | GPIO17 --+---- Data | COM --- Fio vindo da tomada (fase) | | | | | | | +--- 4.7kΩ ------+ (pull-up resistor para DS18B20) | | | | +---- GND ----------- GND comum | | | 5V ------- 5V | (Para alimentação sensor e relé) | GND ------- GND | (Todos em comum) +------------------+ +-------------------+ ⚠CUIDADO: Cafeteira elétrica com fio FASE interrompido pelo relé (NO e COM) Fio NEUTRO vai direto para a cafeteira (SEM passar pelo relé) Terra/PE direto para a cafeteira (obrigatório)
Montagem e Configuração Passo a Passo
1. Preparação dos Materiais e Ferramentas
- Separe todos os componentes listados acima
- Certifique-se de que possui as ferramentas necessárias para realizar conexões e testes
- DESLIGUE o disjuntor antes de qualquer conexão elétrica
2. Montagem Elétrica - Parte Baixa Tensão (5V)
- Prepare os cabos com comprimento adequado, desencape as pontas
- Monte o circuito no protoboard conectando:
- Módulo relé ao GPIO 13 do ESP32 (pino IN), com alimentação 5V e GND comuns
- Sensor DS18B20 ao GPIO 17, com resistor de 4.7 kΩ entre Data e 5V (pull-up)
- Conecte todos os GNDs juntos para referência comum
3. Montagem Elétrica - Parte Alta Tensão (220V)
ATENÇÃO: Esta etapa é PERIGOSA! Se não tem experiência, contrate um eletricista!
Para o relé controlar a energia da cafeteira:
- DESLIGUE o disjuntor geral
- Corte APENAS o fio FASE da alimentação da cafeteira
- Conecte as pontas cortadas nos terminais NO (normal aberto) e COM (comum) do relé
- Fio NEUTRO vai direto para a cafeteira (não passa pelo relé)
- Fio TERRA/PE vai direto para a cafeteira (obrigatório)
- Use caixa isolante e fusível 10A na linha fase
- Instale disjuntor dedicado 16A
4. Configuração do Ambiente de Desenvolvimento
- Instale a Arduino IDE em seu computador
- Configure o suporte do ESP32 na IDE seguindo tutoriais oficiais
- Instale as bibliotecas necessárias: ESPAsyncWebServer, OneWire, DallasTemperature
5. Programação do ESP32
No código, altere os campos do WiFi para seu SSID e senha:
const char* ssid = "SEU_SSID"; const char* password = "SUA_SENHA";
- Compile e faça upload para o ESP32 via conexão USB
- Abra o Monitor Serial para visualizar o IP obtido após conexão WiFi
6. Testes e Uso
- Acesse o IP pelo navegador no seu smartphone ou computador conectado na mesma rede
- Na página, o botão liga/desliga controla o relé que aciona a resistência da cafeteira
- A temperatura da água aparece atualizada a cada 2 segundos na interface
7. Checklist de Segurança Final
- ✓ Disjuntor dedicado instalado
- ✓ Fusível de proteção funcionando
- ✓ Aterramento conectado
- ✓ Caixa elétrica vedada
- ✓ Não há fios expostos
- ✓ Teste sem água funcionou
- ✓ Multímetro confirmou voltagens
Código Completo do Projeto Simplificado
Ver código completo
#include <WiFi.h>
#include <ESPAsyncWebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Pinos do ESP32
#define RELAY_PIN 13
#define TEMP_PIN 17
// Credenciais WiFi - ALTERE AQUI
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
// Objetos sensor e servidor web
OneWire oneWire(TEMP_PIN);
DallasTemperature sensors(&oneWire);
AsyncWebServer server(80);
bool relayState = false;
float temperature = 0;
// Página HTML simples e responsiva
const char* htmlPage = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
<title>SmartCoffee Simples</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
font-family: Arial, sans-serif;
background: linear-gradient(135deg, #6B4423, #8B4513);
color: white;
text-align: center;
padding: 20px;
margin: 0;
}
.container {
max-width: 400px;
margin: 0 auto;
background: rgba(0,0,0,0.3);
padding: 30px;
border-radius: 15px;
}
h1 { margin-bottom: 30px; }
.temp-display {
font-size: 2em;
margin: 20px 0;
padding: 20px;
background: rgba(255,255,255,0.1);
border-radius: 10px;
}
.control-btn {
font-size: 1.2em;
padding: 15px 30px;
border: none;
border-radius: 10px;
background: linear-gradient(45deg, #4CAF50, #45a049);
color: white;
cursor: pointer;
transition: all 0.3s;
}
.control-btn:hover {
background: linear-gradient(45deg, #45a049, #3d8b40
</>);
}
.status {
margin-top: 20px;
padding: 10px;
border-radius: 5px;
background: rgba(255,255,255,0.1);
}
</style>
</head>
<body>
<div class="container">
<h1>☕ SmartCoffee Simples</h1>
<div class="temp-display">
Temperatura: <span id="temp">--</span> °C
</div>
<button class="control-btn" onclick="toggleRelay()">
<span id="btnText">Ligar Cafeteira</span>
</button>
<div class="status" id="status">
Status: <span id="relayStatus">Desligada</span>
</div>
</div>
<script>
let currentState = false;
function toggleRelay() {
fetch('/toggle')
.then(response => response.text())
.then(data => {
currentState = !currentState;
updateInterface();
});
}
function updateInterface() {
document.getElementById('btnText').textContent =
currentState ? 'Desligar Cafeteira' : 'Ligar Cafeteira';
document.getElementById('relayStatus').textContent =
currentState ? 'Ligada' : 'Desligada';
}
function updateTemp() {
fetch('/temp')
.then(response => response.json())
.then(data => {
if (data.temperature > -50) {
document.getElementById('temp').textContent =
data.temperature.toFixed(1);
} else {
document.getElementById('temp').textContent = 'Erro';
}
});
}
// Atualizar temperatura a cada 2 segundos
setInterval(updateTemp, 2000);
updateTemp();
</script>
</body>
</html>
)rawliteral";
void setup() {
Serial.begin(115200);
Serial.println("Iniciando SmartCoffee Simples...");
// Configurar pinos
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
// Inicializar sensor
sensors.begin();
// Conectar WiFi
WiFi.begin(ssid, password);
Serial.print("Conectando ao WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi Conectado!");
Serial.print("Acesse: http://");
Serial.println(WiFi.localIP());
// Configurar rotas do servidor web
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/html", htmlPage);
});
server.on("/toggle", HTTP_GET, [](AsyncWebServerRequest *request){
relayState = !relayState;
digitalWrite(RELAY_PIN, relayState ? HIGH : LOW);
Serial.println("Relé " + String(relayState ? "LIGADO" : "DESLIGADO"));
request->send(200, "text/plain", relayState ? "Ligado" : "Desligado");
});
server.on("/temp", HTTP_GET, [](AsyncWebServerRequest *request){
sensors.requestTemperatures();
temperature = sensors.getTempCByIndex(0);
String json = "{"temperature": " + String(temperature) + "}";
request->send(200, "application/json", json);
Serial.println("Temperatura: " + String(temperature) + "°C");
});
server.begin();
Serial.println("Servidor web iniciado!");
}
void loop() {
// Nenhuma ação necessária no loop principal
// O servidor web funciona de forma assíncrona
delay(1000);
}Solução de Problemas
Problema: ESP32 não conecta ao WiFi
- Verifique SSID e senha no código
- Confirme que está na rede 2.4GHz (ESP32 não suporta 5GHz)
- Reset do ESP32 e retry
Problema: Temperatura mostra -127°C
- Sensor DS18B20 desconectado
- Verifique resistor pull-up 4.7kΩ
- Confirme conexões: Data, 5V, GND
Problema: Relé não aciona
- Verifique alimentação 5V do relé
- Confirme GPIO13 está conectado ao pino IN
- Teste LED do relé (deve acender quando ativo)
Problema: Interface web não carrega
- Confirme IP no monitor serial
- Verifique se está na mesma rede WiFi
- Teste ping para o IP do ESP32
Análise de Custos
Comparação de investimento:
- Este projeto: R$ 160-290
- Cafeteira com timer básico: R$ 150-300
- Cafeteira programável comercial: R$ 400-800
- Sistema IoT comercial: R$ 1000-2500
Vantagens do DIY:
- Controle total via celular
- Monitoramento de temperatura
- Expandível para recursos avançados
- Aprendizado técnico valioso
- Custo muito menor
Evoluindo para o Sistema Profissional
Dominou este projeto básico? Próximo nível disponível:
🚀 Sistema ESP32 Avançado - Nível Profissional
Recursos Avançados:
- Múltiplos sensores: Fluxo de água, pressão, corrente
- Interface profissional: Dashboard com gráficos em tempo real
- Perfis automáticos: 4 tipos de café pré-programados
- Notificações push: Telegram, WhatsApp, email
Integrações Pro:
- Sistema de segurança: Proteções automáticas avançadas
- Casa inteligente: Integração MQTT, Alexa, Google Home
- Análise energética: Consumo e sustentabilidade
- Machine Learning: Otimização automática
Investimento: R$ 300-550 para sistema completo profissional
(80% mais barato que cafeteiras comerciais equivalentes)
Conclusão
Este projeto é o primeiro passo perfeito para entrar no mundo da automação residencial e IoT. Com investimento de R$ 160-290, você tem:
Resultados imediatos:
- Controle remoto total da cafeteira
- Monitoramento de temperatura em tempo real
- Interface web responsiva
- Base sólida para projetos avançados
Aprendizado técnico:
- Programação ESP32
- Eletrônica básica
- Desenvolvimento web
- Conceitos de IoT
Próximos passos:
- Teste por algumas semanas
- Documente melhorias desejadas
- Evolua para o sistema profissional
- Explore outros projetos IoT
Este guia foi pensado para que você possa iniciar com segurança e aprendizado gradual, aproveitando o poder do ESP32 para automatizar sua cafeteira sem gastar muito e com muita satisfação técnica.
📚 Progressão da Série Completa
Nível 2: ESP32 Básico
Você está aqui! ✓
CONCLUÍDOAproveite sua jornada de IoT DIY no mundo do café!