Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
Componentes y Suministros
| Arduino Due | ×1 |
Aplicaciones y Servicios en Línea
- Arduino IDE
Sobre el Proyecto
Introducción
¡Bienvenidos a otro tutorial! Soy Nick de educ8s.tv y hoy veremos cómo desarrollar este reloj en tiempo real y monitor de temperatura. ¡Empecemos!
Hace semanas probé esta pantalla TFT color 3.2" para Arduino con Mega y Due. Funciona bien y construí un proyecto simple: monitor temperatura y reloj en tiempo real. Arriba vemos fecha/hora actual, temperatura ahora, y abajo máximas/mínimas registradas. Diseñé una interfaz básica con formas simples. Todo funciona bien, proyecto fácil y útil. ¡Vamos a ver cómo!
Paso 1: Conseguir Todas las Piezas
- Arduino Due
- Pantalla TFT color 3.2"
- Módulo RTC DS3231
- Headers macho
- Cables
Coste total ~24$: ~14$ Arduino Due, ~8$ pantalla, ~2$ módulo RTC.
Paso 2: Módulo Reloj Tiempo Real DS3231
El DS3231 es un RTC de bajo coste, extremadamente preciso, I2C, con oscilador de cristal compensado por temperatura (TCXO) y cristal integrado. Incluye entrada batería y mantiene hora precisa años con consumo mínimo.
Mantiene segundos, minutos, horas, día, fecha, mes, año. Ajuste automático fin de mes (incluyendo años bisiestos). Formato 12/24h con AM/PM. Dos alarmas programables y salida onda cuadrada. Bus I2C bidireccional. Cuesta ~2$ con batería.
Lo usaremos para hora y lecturas de temperatura.
Paso 3: Pantalla TFT Color 3.2" (HX8357C o HX8357B)
Siempre quise pantalla grande para proyectos Arduino. Compré esta 3.2" para Mega/Due por precio tentador: <10$. Resolución 480x320, adaptador SD trasero (no usado aún). Tiene regulador 3.3V, funciona con lógica 5V y 3.3V.
Dos variantes: controlador HX8357C o HX8357B. La misma librería sirve para ambas.
Librería Pantalla: Tras descargar, editar User_Setup.h: comentar línea 13, descomentar línea 14 si tu pantalla usa HX8357C (como la mía).
Paso 4: Conectar Componentes
Uso Arduino Due (más rápido y memoria que Mega). Conectar RTC: 4 headers macho (2 potencia, 2 I2C). Doblar y conectar: 3.3V, GND, SDA, SCL del Due. Con cables hembra conectar módulo. Luego enchufar pantalla al Due (2 pines sobran, los dejo flotando). ¡Alimentar y funciona!
Paso 5: Código del Proyecto
Dos librerías: Display Library y DS3231 Library. Instalar y compila.
Primero, poner hora en RTC si no está puesta. En setRTCTime poner fecha/hora actual:
void setRTCTime() {
DateTime dt(2016, 4, 4, 13, 56, 30, 1); // Año, Mes, Día, Hora, Min, Seg, DíaSemana
rtc.setDateTime(dt);
}
Descomentar llamada en setup() y subir:
void setup() {
rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618);
delay(100); printUI(); setRTCTime();
}
Hora puesta. Ahora comentar la llamada y subir de nuevo:
void setup() {
rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618);
delay(100); printUI(); // setRTCTime();
}
Código simple: imprimir UI y mostrar fecha/hora/temperatura.
void loop() {
float temperature = rtc.getTemperature();
getAndPrintTime();
printTemperature(temperature);
if (temperature > maxTemperature) { maxTemperature = temperature; updateMaxTemperature(); }
if (temperature < minTemperature) { minTemperature = temperature; updateMinTemperature(); }
delay(1000);
}
Código completo descargable en paso. Última versión en web: educ8s.tv/arduino-real-time-clock-32/
Paso 6: Reflexiones Finales
Con pocas líneas y bajo coste construimos proyecto muy útil. Lo expandiré a estación meteorológica avanzada: más sensores, gráficos, WiFi. Arduino Due es ideal: rápido y mucha memoria. ¿Qué os parece? ¿Cómo queréis que evolucione? Comentarios abajo.
Código
Fragmentos de Código
void setup() {
rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618);
delay(100); printUI(); setRTCTime();
}
void setup() {
rtc.begin(); tft.init(); tft.setRotation(1); tft.fillScreen(0xC618);
delay(100); printUI(); // setRTCTime();
}
void loop() {
float temperature = rtc.getTemperature();
getAndPrintTime(); printTemperature(temperature);
if (temperature > maxTemperature) { maxTemperature = temperature; updateMaxTemperature(); }
if (temperature < minTemperature) { minTemperature = temperature; updateMinTemperature(); }
delay(1000);
}
Enlaces GitHub
- Librería TFT: github.com/Bodmer/TFT_HX8357_Due
- Librería DS3231: github.com/SodaqMoja/Sodaq_DS3231
Proceso de manufactura
- Construya Efectos de Audio Controlados por Sensores con el Kit Satellite CCRMA
- Construye un reloj en tiempo real con Arduino para horarios de oración islámica
- Reloj de Palabras de Precisión: Visualización del Tiempo en Palabras Minuto a Minuto
- Proyecto HMI Interactivo con Nextion, Arduino Mega y Múltiples Sensores
- Reloj Digital TM1637 con Configuración de Hora y Alarma - Prototipo Arduino Nano
- Construye un voltímetro DIY con Arduino y pantalla Nokia 5110 – Guía paso a paso
- Visualiza Temperatura, Humedad y Presión BME280 en Pantalla Táctil Nextion
- Control Preciso de Servo con Arduino y MPU6050 (SG90 / MG996R)
- Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
- Dominando reconocimiento y síntesis de voz en Arduino Due
- Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO