Sistema simples de data logger com memória I2C e RTC usando Arduino

Sistema de registro de datos simple con memoria I2C y RTC usando Arduino

Las industrias manufactureras o de procesamiento, como la textil, química, farmacéutica y otras, tienen muchos procesos continuos que requieren monitoreo y mantenimiento de registros de diferentes parámetros físicos como temperatura, humedad, pH, humedad, caudal, viscosidad, etc. se muestran y almacenan continuamente en computadoras centrales. Las industrias modernas cuentan con sistemas DCS y SCADA para monitorear, almacenar y controlar estos parámetros. Con la última tecnología, Industria 4.0 con tecnología IoT, estos parámetros son monitorizados y almacenados en la nube.

Los parámetros físicos se detectan mediante transductores (sensores) y su valor se convierte a digital. Este valor digitalizado luego se almacena en la memoria de la computadora (disco duro) o en el chip de memoria semiconductor. Para mantener un registro de datos preciso, el valor del sensor se almacena con una marca de tiempo (el valor de la cantidad física detectada por el sensor en una hora y fecha específicas (es decir, temperatura: 45 ó C Hora: 16:05 :10, Fecha: 11 /23/2022). Este registro se muestra en un monitor de computadora o cualquier otro dispositivo de visualización en cualquier momento y cuando sea necesario.

Este proyecto demuestra un sistema simple en el que utilicé un sensor de temperatura y almacené lecturas de temperatura en un chip de memoria en serie. También utiliza un reloj en tiempo real (RTC) para mantener registros de las lecturas de temperatura con hora y fecha, y también se comunica con una computadora para mostrar este registro en un monitor.

El sistema utiliza una placa microcontroladora Arduino con memoria IIC 24C32 y un módulo DS1307 con chip RTC.

Diagrama de bloques del sistema
Los componentes principales del sistema son un sensor de temperatura, un chip RTC DS1307, una memoria serie IIC 24C32, una placa microcontroladora Arduino y una computadora.

Sensor de temperatura: detecta la temperatura y proporciona voltaje de salida analógico por cambio de temperatura.

Chip DS1307 RTC: tiene un calendario de 100 años de 2000 a 2100 y proporciona hora y fecha precisas con el día. Se utiliza para proporcionar hora y fecha con lectura del sensor para almacenar registros correctamente.

Memoria serie IIC 24C32 : utilizada para almacenar (registrar) datos (valor del sensor – lecturas de temperatura) con hora y fecha

Placa Arduino NANO: el componente principal del sistema. Dispone de un microcontrolador ATMega328 de 8 bits con 32 KB de FLASH y realiza las siguientes tareas:

  • Lee la temperatura del sensor y la convierte a un valor digital.
  • Lee la hora y la fecha del chip RTC
  • Escriba el valor del sensor con hora y fecha en la memoria serie cada cinco segundos.
  • Muestra las lecturas almacenadas del sensor, la hora y la fecha en el monitor serie de la computadora.

Computadora: Se utiliza para monitorear las lecturas de temperatura y mostrar los registros de temperatura almacenados con hora y fecha.

Antes de pasar al diagrama esquemático, su funcionamiento y operación, recopilemos primero los elementos necesarios.

Objetos requeridos
Módulo sensor de temperatura analógico y digital.

Memoria IIC y módulo RTC DS1307

placa arduino nano

Diagrama esquemático

Descripción
La figura muestra que el sistema completo se construye utilizando solo tres componentes (o módulos): módulo de sensor de temperatura, memoria IIC, módulo RTC y nano placa Arduino.

  • El módulo del sensor de temperatura tiene cuatro pines de interfaz. (1) +V, (2) G, (3) A0 y (4) D0. El pin +V está conectado al pin de salida +5V de la placa Arduino. El pin G está conectado a la tierra común del circuito. El pin de salida analógica A0 está conectado al pin de entrada analógica A0 de la placa Arduino. El pin de salida digital D0 no se utiliza aquí.
  • La memoria IIC y el módulo RTC tienen muchos pines de interfaz, de los cuales sólo se utilizan cuatro. (10 Vcc, (2) Gnd, (3) SDA y (4) SCL. El pin Vcc está conectado al pin de salida de +5 V de la placa Arduino y el pin Gnd está conectado a la tierra común del circuito. Los pines SDA y SCL están conectados a los pines I2C A4 y A5 en la placa Arduino, respectivamente
  • La placa Arduino se comunica mediante un cable de datos USB con el sistema informático principal. Los datos del sensor se monitorean en un monitor en serie.
  • La placa Arduino y los módulos reciben alimentación de +5 V desde la computadora principal a través de un cable USB.

Aquí hay una foto de la disposición del circuito.

Trabajo y operación
El módulo consta de un comparador con potenciómetro. El sensor de temperatura es un termistor NTC; su resistencia cambia con un cambio de temperatura. El cambio de resistencia se convierte en una salida de voltaje analógica. Este voltaje de salida analógica está disponible en el pin A0. Por lo tanto, el módulo proporciona un voltaje de producción analógico a medida que cambia la temperatura.

Este voltaje analógico recibe entrada al ADC interno del microcontrolador Arduino, que lee este voltaje analógico y lo convierte en un valor digital. Luego, Arduino lee la marca de tiempo en el formato HH:MM:SS, DD/MM/AAAA del chip RTC DS1307 a través de los pines IIC SDA y SCL. Luego almacena el valor digital de la lectura del sensor en la memoria del IIC 24C32 con hora y fecha.

El Arduino continúa leyendo el valor del sensor y lo almacena en la memoria con la hora y la fecha cada segundo. Este proceso se repite hasta que la memoria de 32 KB esté llena. Después de eso, los datos del sensor se sobrescriben desde la primera ubicación de la memoria.

Para leer los datos almacenados en cualquier momento en la memoria, es necesario enviar el comando “r” desde el monitor serial (computadora) al Arduino a través de comunicación serial. Cuando Arduino recibe este comando, lee todos los datos almacenados en la memoria y los muestra en el monitor serie como un valor de temperatura en una fecha y hora determinada.

Aquí hay una imagen de la salida en la pantalla del monitor serie.


Programa de software
El programa está escrito en Arduino IDE y compilado y cargado en el Flash interno del microcontrolador Arduino ATMega328. El programa utiliza la biblioteca de cables integrada de Arduino “wire.h” y la biblioteca RTC “RTCLib.h” en el programa. Las funciones de la biblioteca "wire" se utilizan para escribir y leer datos de la memoria serie IIC.

Aquí está el enlace del vídeo de YouTube para este artículo.

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.