Ejercicio No. 5 – Estación ambiental con registro de datos y visualización en pantalla OLED

En este ejercicio construiremos una estación de monitoreo ambiental completa capaz de medir múltiples variables del entorno, registrar los datos en una tarjeta microSD y visualizar la información en tiempo real en una pantalla OLED. El sistema está basado en un Arduino UNO R4 WiFi y combina sensores analógicos y digitales para obtener diferentes parámetros ambientales.

Este proyecto representa una evolución natural de los ejercicios anteriores: ahora no solo se miden y almacenan datos, sino que también se visualizan localmente, creando una interfaz directa entre el sistema embebido y el usuario.


Sensores y módulos utilizados

La estación ambiental integra varios sensores que permiten monitorear diferentes condiciones del entorno:

  • Sensor MQ135 para medir calidad del aire
  • Sensor MQ9 para detectar gases combustibles
  • Sensor de humedad del suelo
  • Sensor digital SI7021 para temperatura y humedad ambiental
  • Sensor de iluminación BH1750 para medir nivel de luz en lux

Además, el sistema utiliza dos módulos adicionales fundamentales:

  • Módulo de reloj en tiempo real DS3231 RTC Module para registrar fecha y hora exacta
  • Pantalla SSD1306 OLED Display para mostrar los datos en tiempo real

Finalmente, todos los datos se almacenan en una tarjeta microSD para análisis posterior.


¿Qué hace este ejercicio?

El sistema realiza las siguientes tareas principales:

  1. Inicializa sensores y módulos del sistema.
  2. Inicializa la pantalla OLED.
  3. Inicializa el reloj RTC.
  4. Inicializa la tarjeta microSD.
  5. Verifica si el archivo datos.csv ya existe.
  6. Si no existe, crea el archivo y escribe la cabecera.
  7. Cada 2 segundos:
    • Lee todos los sensores
    • Obtiene la fecha y hora actual
    • Muestra los datos en el monitor serial
    • Actualiza la pantalla OLED
    • Guarda los datos en el archivo CSV

De esta manera el sistema funciona como una estación de monitoreo ambiental autónoma.


Estructura del ejercicio

El código está organizado en diferentes bloques para facilitar su comprensión y mantenimiento.


1. Inclusión de librerías

En la primera sección del código se incluyen las librerías necesarias para:

  • Comunicación I2C
  • Comunicación SPI
  • Manejo de tarjeta microSD
  • Control del RTC
  • Lectura de sensores digitales
  • Manejo de la pantalla OLED

La pantalla utiliza las librerías gráficas de Adafruit, ampliamente usadas en proyectos de sistemas embebidos.


2. Configuración de la pantalla OLED

Se definen los parámetros de la pantalla:

  • Resolución: 128 × 64 píxeles
  • Pin de reset
  • Dirección I2C

Posteriormente se crea el objeto display que permitirá controlar la pantalla.

Durante el arranque del sistema se muestra un mensaje de bienvenida que confirma que el sistema se está inicializando.


3. Definición de pines

Los sensores analógicos se conectan a los siguientes pines:

  • A0 → MQ135
  • A1 → MQ9
  • A2 → Sensor de humedad del suelo

También se define el pin Chip Select para la tarjeta microSD.


4. Inicialización del sistema

En la función setup() el programa realiza las siguientes tareas:

  • Inicializa la comunicación Serial
  • Inicializa el bus I2C
  • Inicializa la pantalla OLED
  • Inicializa los sensores digitales
  • Inicializa el RTC
  • Inicializa la tarjeta microSD

Si el archivo datos.csv no existe, el sistema crea el archivo y escribe la cabecera:

Fecha,Hora,Aire,Gas,HumedadSuelo,Temperatura,Humedad,Luz

Esto permite que el archivo pueda abrirse fácilmente en herramientas de análisis de datos.


5. Lectura de sensores

En el bucle principal loop() se realiza la adquisición de datos:

Sensores analógicos

  • Calidad del aire
  • Gas
  • Humedad del suelo

Sensores digitales

  • Temperatura
  • Humedad ambiental
  • Iluminación

Además, el sistema obtiene la fecha y hora actual desde el RTC.


6. Visualización en monitor serial

Todos los datos se envían al monitor serial para permitir observar el funcionamiento del sistema en tiempo real.

Esto facilita:

  • Verificación de sensores
  • Depuración del sistema
  • Validación de datos

7. Visualización en pantalla OLED

La pantalla OLED muestra los valores principales del sistema:

  • Temperatura
  • Humedad ambiental
  • Iluminación
  • Humedad del suelo
  • Calidad del aire
  • Nivel de gas

Esto permite construir una interfaz local de monitoreo, algo muy común en sistemas embebidos industriales.


8. Registro de datos en microSD

Finalmente el sistema guarda cada medición en el archivo datos.csv.

Cada línea contiene:

Fecha,Hora,Aire,Gas,HumedadSuelo,Temperatura,Humedad,Luz

Ejemplo de registro generado:

2026-03-05,14:22:10,410,220,650,24.3,57.8,350

Este formato es compatible con herramientas como:

  • Excel
  • Python
  • MATLAB
  • Pandas
  • Sistemas de análisis de datos

Aplicaciones de este sistema

Este tipo de arquitectura es muy utilizada en proyectos reales de ingeniería:

  • Monitoreo de cultivos
  • Invernaderos inteligentes
  • Estaciones meteorológicas
  • Redes de sensores IoT
  • Sistemas de monitoreo ambiental urbano

Además, este tipo de proyectos son una excelente base para plataformas de agricultura inteligente.


Repositorio del ejercicio

Puedes descargar el código completo en el repositorio oficial del proyecto:

Repositorio Sys On Chip

En el repositorio encontrarás:

  • Código fuente completo
  • Ejercicios adicionales
  • Proyectos con Arduino, Raspberry Pi y FPGA
  • Material didáctico para aprendizaje de sistemas embebidos.

Prompt recomendado para generar este código

Si quieres generar este tipo de sistema utilizando inteligencia artificial, puedes utilizar un prompt como el siguiente:

Actúa como un ingeniero experto en sistemas embebidos.

Genera un programa para Arduino UNO R4 WiFi que implemente
una estación de monitoreo ambiental con:

- MQ135 (calidad del aire)
- MQ9 (gas)
- Sensor de humedad del suelo
- SI7021 (temperatura y humedad por I2C)
- BH1750 (sensor de luz por I2C)
- RTC DS3231 para fecha y hora
- Pantalla OLED SSD1306 para mostrar los datos
- Tarjeta microSD para registrar los datos en CSV

El sistema debe:

1. Inicializar todos los sensores
2. Mostrar datos en el monitor serial
3. Mostrar datos en la pantalla OLED
4. Guardar cada medición en un archivo datos.csv
5. Crear la cabecera si el archivo no existe
6. Registrar una medición cada 2 segundos

Utiliza variables en español y comentarios detallados.

Qué aprenderás en este ejercicio

Este ejercicio integra múltiples conceptos fundamentales en sistemas embebidos modernos:

  • Integración de sensores analógicos y digitales
  • Comunicación I2C y SPI
  • Uso de RTC para timestamp
  • Registro de datos en microSD
  • Manejo de pantallas OLED
  • Construcción de interfaces embebidas

Este tipo de arquitectura es la base de muchos sistemas reales utilizados en IoT, agricultura inteligente y monitoreo ambiental.


Si continúas ampliando este proyecto, el siguiente paso natural sería conectar la estación ambiental a internet para enviar los datos a la nube, transformándola en un verdadero sistema IoT distribuido.

Deja un comentario

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

Scroll al inicio