Ejercicio No. 3 – Registro temporal de sensores con Arduino y RTC

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:

  1. Adquisición de sensores analógicos
  2. Sensores digitales I2C
  3. 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.h para la comunicación I2C
  • Adafruit_Si7021.h para el sensor de temperatura y humedad
  • BH1750.h para el sensor de iluminación
  • RTClib.h para 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:

  1. Obtener la fecha y hora desde el RTC
  2. Leer todos los sensores ambientales
  3. Asociar la medición con su timestamp
  4. 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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio