En este ejercicio ampliamos la estación ambiental desarrollada anteriormente incorporando un sistema de registro temporal de datos. El objetivo es aprender a integrar un reloj en tiempo real con una red de sensores para que cada medición quede asociada a una marca de tiempo (timestamp).
El sistema está basado en un Arduino UNO R4 WiFi y utiliza el módulo de reloj DS3231 RTC Module para obtener la fecha y hora exacta de cada medición. Además, se integran múltiples sensores ambientales: el sensor de calidad del aire MQ135, el sensor de gases MQ9, un higrómetro de suelo, el sensor digital de temperatura y humedad SI7021 y el sensor de iluminación BH1750.
Cada ciclo del programa realiza la lectura de todos los sensores, obtiene la fecha y hora actual desde el RTC y muestra en el monitor serial un registro completo de la medición, permitiendo observar cuándo fue tomada cada muestra. Este concepto es fundamental en sistemas de monitoreo ambiental, agricultura inteligente y plataformas IoT donde es necesario almacenar y analizar datos históricos.
Sensores utilizados en el sistema
El ejercicio integra sensores analógicos y digitales para construir una pequeña estación ambiental.
Sensor de temperatura y humedad – SI7021
Este sensor digital permite medir:
- Temperatura ambiente
- Humedad relativa
Se comunica mediante el bus I2C, lo que simplifica su conexión al microcontrolador.
Sensor de iluminación – BH1750
El BH1750 mide la intensidad luminosa en lux, lo que permite evaluar las condiciones de iluminación del entorno.
Aplicaciones comunes:
- Agricultura inteligente
- Sistemas domóticos
- Control de iluminación automática
Reloj en tiempo real – DS3231 RTC Module
Este módulo proporciona una referencia temporal precisa para el sistema. Gracias a su batería de respaldo, el reloj continúa funcionando incluso cuando el sistema se apaga.
Esto permite que cada lectura de sensores pueda registrarse con su fecha y hora exacta.
Arquitectura del sistema
El sistema combina tres subsistemas principales:
- Adquisición de sensores analógicos
- Sensores digitales I2C
- Sistema de referencia temporal
Los sensores analógicos (MQ135, MQ9 y humedad del suelo) se leen mediante el ADC del microcontrolador, mientras que los sensores digitales (SI7021 y BH1750) comparten el bus I2C junto con el módulo RTC.
Esta arquitectura es muy común en sistemas embebidos porque permite integrar múltiples dispositivos utilizando pocas líneas de comunicación.
Estructura del programa
El código está organizado en diferentes secciones para facilitar su comprensión.
1. Inclusión de librerías
El programa utiliza varias librerías especializadas:
Wire.hpara la comunicación I2CAdafruit_Si7021.hpara el sensor de temperatura y humedadBH1750.hpara el sensor de iluminaciónRTClib.hpara controlar el reloj en tiempo real
Estas librerías abstraen la comunicación de bajo nivel con los dispositivos.
2. Inicialización de sensores
Durante la función setup() el sistema realiza:
- Inicialización de la comunicación serial
- Inicialización del bus I2C
- Verificación de conexión de cada sensor
- Inicialización del módulo RTC
Si alguno de los dispositivos no responde, el sistema detiene su ejecución para evitar errores durante la operación.
3. Sincronización del reloj
Si el módulo RTC detecta que perdió alimentación, el programa ajusta automáticamente la fecha y hora utilizando el momento de compilación del programa.
Esto permite recuperar rápidamente el funcionamiento normal del sistema.
4. Lectura de sensores
En el bucle principal loop() se realiza la adquisición de datos de todos los sensores:
Sensores analógicos
- MQ135 – calidad del aire
- MQ9 – gases combustibles
- Higrómetro de suelo
Sensores digitales
- Temperatura ambiente
- Humedad relativa
- Nivel de iluminación
5. Generación del registro de datos
Después de leer todos los sensores, el sistema obtiene la fecha y hora actual desde el RTC.
La salida serial muestra un registro estructurado como el siguiente:
========= REGISTRO DE SENSORES =========
Fecha: 6 de Marzo de 2026 (Viernes) | Hora: 09:42:01
MQ135 - Calidad del aire: 415
MQ9 - Gas CO / GLP: 302
Humedad del suelo: 620
Temperatura ambiente (C): 23.5
Humedad ambiente (%): 58.2
Iluminacion (lux): 312.4
Este tipo de estructura es el primer paso para crear sistemas de registro de datos (data loggers).
Funcionamiento del ejercicio
Cada ciclo del programa ejecuta la siguiente secuencia:
- Obtener la fecha y hora desde el RTC
- Leer todos los sensores ambientales
- Asociar la medición con su timestamp
- Mostrar el registro completo en el monitor serial
El sistema repite este proceso cada dos segundos, generando una secuencia temporal de mediciones.
Repositorio del proyecto
El código completo de este ejercicio forma parte del repositorio educativo de SysOnChip.
Repositorio:
En el repositorio encontrarás:
- Código fuente completo
- Ejercicios progresivos de Arduino
- Ejemplos con Raspberry Pi
- Proyectos con FPGA
- Material educativo para sistemas embebidos
Prompt recomendado para generar este ejercicio con IA
Puedes utilizar el siguiente prompt para generar este programa con herramientas de inteligencia artificial:
Escribe un programa para Arduino UNO R4 WiFi que implemente una estación ambiental con registro temporal de datos.
Requisitos:
- Integrar sensores MQ135, MQ9 y un sensor de humedad del suelo mediante entradas analógicas
- Utilizar un sensor SI7021 para temperatura y humedad ambiente
- Utilizar un sensor BH1750 para medir iluminación
- Integrar un módulo RTC DS3231 mediante I2C
- Mostrar cada medición junto con la fecha y hora actual (timestamp)
- Actualizar las lecturas cada 2 segundos
- Mostrar la información en el monitor serial
- Incluir comentarios detallados en español
Este tipo de prompts permite generar código bien estructurado para proyectos educativos de sistemas embebidos.
Conclusión
La integración de sensores ambientales con un reloj en tiempo real permite transformar un sistema simple de adquisición de datos en una plataforma de monitoreo con registro histórico.
Este concepto es la base de numerosos sistemas modernos, entre ellos:
- Agricultura inteligente
- Redes de sensores ambientales
- Monitoreo industrial
- Sistemas IoT
