Cafetera inteligente con Arduino, control por Bluetooth y monitorización de temperatura
Componentes y suministros
| Componente | Descripción | Cantidad |
|---|---|---|
| Arduino Nano R3 | 1 | |
| Módulo Bluetooth HC-05 | 1 | |
| Sensor de temperatura DS18B20 1m (HARDWARIO) | 1 |
Aplicaciones y servicios en línea
- Serial Bluetooth Terminal (creado por Kai Morich)
- Arduino IDE
Sobre el proyecto
Introducción
Cafetera inteligente automática con gráfica, controlable por Bluetooth... ¡o simplemente carga agua fresca y el sistema arrancará automáticamente!
Todas las piezas son artesanales y todas las funciones son ideas propias.

También programé un "Modo Test", para que el controlador pueda usarse como medidor de temperatura multipropósito con sensor externo.

Desarrollado en Arduino Nano / Uno, usa pantalla ST7920, adaptador Bluetooth HC-05, sensor de temperatura Dallas DS18B20, relé para controlar la resistencia calefactora, botón con LEDs, zumbador y un contador de década CD4017BE que controla la barra de LEDs.
Cómo empezar
- Arranque automático: en modo espera, el sistema mide cíclicamente la temperatura en segundo plano. Cargar agua fresca provoca una caída de temperatura, y el sistema arranca. Esta función se puede activar/desactivar enviando "auto" desde el smartphone, y el ajuste se guarda en la memoria EEPROM.
- Pulsar botón: para iniciar/interrumpir la preparación de café, o salir del Modo Test.
- Enviar mensaje "start" desde el smartphone, o "stop".
Vídeo
Muestra todas las formas de funcionamiento.
Galería de fotos
Cómo se hizo, cómo es... ¡solo haz clic/toca abajo!





...y muchas más fotos del proceso de construcción.
Análisis único durante la preparación del café
Tras 60 segundos desde el inicio, el MCU compara los valores de temperatura inicial y actual para sacar conclusiones basadas solo en temperatura y tiempo transcurrido:
- "Olvidaste el agua." - (la temperatura subió demasiado)
- "Café para dos." - (menos agua - mayor elevación de temperatura)
- "Café para seis." - (más agua - menor elevación de temperatura)
- "¡Error en la resistencia calefactora!" - (no hay elevación significativa de temperatura)
Además, la detección de error de sensor funciona continuamente mientras la cafetera está encendida.

Como se ve, seis dosis de agua requirieron más tiempo para alcanzar la misma temperatura que la dosis pequeña alcanzó antes.
Arrancar sin agua resulta en temperatura muy alta, pero la línea plana indica temperatura invariable, por tanto error de resistencia.
Cambio de unidad de medida
La unidad de medida se puede cambiar enviando "c" o "f" desde el smartphone, incluso durante la preparación, y no deja marca en la gráfica.

Los valores iniciales y previos almacenados se convierten mediante una función programada, usada para estadísticas y análisis. Este ajuste también se guarda en EEPROM.
Elementos dinámicos en pantalla
Si la pantalla se llena, la gráfica comienza a desplazarse a la izquierda. Según el valor medido, algunos elementos de pantalla pueden estar en su camino. Para evitar colisiones, sus posiciones son dinámicas.
Estas seis pequeñas imágenes animadas muestran lo programado:

Fue un pasatiempo muy agradable:

Modo Test
Al crear todo esto, surgió la idea: ¿por qué no usar la gráfica para otros propósitos?

Así que programé el Modo Test; solo conecta un sensor de temperatura externo y el sistema puede usarse como medidor multipropósito con gráfica.

En este modo, los valores extremos de la gráfica son -20°C (-4°F) y +128°C (+262°F).
Enviando números desde el smartphone entre 1 y 999999 se aceptarán como intervalo de medición en segundos, por lo que el ancho de la gráfica estará entre 128 segundos y 11.57 días.
Comunicación Bluetooth
Acepta comandos y envía informes, detecta si un smartphone se conecta o desconecta.

Los mensajes enviados son azules y los mensajes de respuesta/informe son verdes, enviados por la cafetera.
Control de LEDs
Un contador de década CD4027BE controla la barra de LEDs, recibe CLK del MCU en cada medición de temperatura y aumenta la posición. Si inicia un nuevo proceso de preparación o el Modo Test, el ATmega 328P envía una señal RST para establecer la posición por defecto.

El botón tiene un LED bicolor de solo dos pines, así que mi solución simple y curiosa se ve en el código:
- Verde fijo: espera o café listo, resistencia apagada
- Rojo fijo: preparación en curso, resistencia encendida
- Rojo/Verde alternados: Modo Test
- Rojo parpadeante: error ocurrido (sensor, resistencia, o sin agua)
Código
Smart Coffee Maker - Ősi Gyula (Arduino)
El código completo es extenso; se incluye la versión completa en el archivo original. Puntos clave:
- Librerías: U8glib, OneWire, DallasTemperature, elapsedMillis, SoftwareSerial, EEPROM
- Control de pantalla ST7920, sensor DS18B20, relé, Bluetooth HC-05
- Gráfica de temperatura dinámica, autostart por detección de agua fría
- Análisis a los 60 segundos: detecta si hay agua, cantidad, error de resistencia
- Cambio de unidad °C/°F en caliente con conversión de valores históricos
- Modo Test con rango -20°C a +128°C e intervalo configurable
- Comandos Bluetooth: Auto, Reboot, Start, Stop, Test, C/F, intervalo numérico
- Control de barra LED mediante CD4017BE y LED bicolor en botón
Código completo disponible en el repositorio original.
Esquemáticos

Proceso de manufactura
- Sistema de control de acceso integrado con QR, RFID y verificación de temperatura
- Registrador de Temperatura y Humedad con Arduino, DHT11 y Ethernet Shield
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Zapatillas Inteligentes Autoajustables con Cosecha de Energía Integrada
- Visualiza Temperatura, Humedad y Presión BME280 en Pantalla Táctil Nextion
- Control Preciso de Servo con Arduino y MPU6050 (SG90 / MG996R)
- Electrodomésticos activados por voz: Control Bluetooth con Google Assistant
- Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
- Leer Temperatura y Humedad con DHT11 en Blynk – Tutorial Paso a Paso con Arduino
- Brazo Robótico Inteligente Controlado por Arduino: Tutorial DIY Fácil
- Dominando reconocimiento y síntesis de voz en Arduino Due