Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Almacenamiento de Datos con Arduino

En el mundo de la electrónica y la programación, el almacenamiento de datos es una tarea esencial para una variedad de aplicaciones, desde la recolección de datos de sensores hasta el registro de eventos en sistemas de automatización. Utilizar un Arduino para almacenar datos puede ser una solución eficiente y económica. Este artículo explorará cómo implementar almacenamiento de datos utilizando una tarjeta SD y un módulo RTC (Real Time Clock) para registrar datos con marcas de tiempo.

Project: En este proyecto, crearemos un sistema de registro de datos que almacena lecturas de temperatura y humedad en una tarjeta SD. Utilizaremos un sensor DHT11 para obtener las lecturas y un módulo RTC DS3231 para agregar marcas de tiempo precisas a cada registro. El objetivo es construir un sistema que pueda ser utilizado en aplicaciones como monitoreo ambiental, invernaderos, o cualquier otro entorno donde el registro de datos sea crucial.

Components List:

  • Arduino Uno (1)
  • Sensor de temperatura y humedad DHT11 (1)
  • Módulo RTC DS3231 (1)
  • Módulo de tarjeta SD (1)
  • Tarjeta SD (1)
  • Resistencias de 10k ohmios (2)
  • Protoboard y cables de conexión

Examples:

#include <SD.h>
#include <SPI.h>
#include <Wire.h>
#include "RTClib.h"
#include "DHT.h"

// Definiciones de pines
#define DHTPIN 2
#define DHTTYPE DHT11
#define CSPIN 10

// Inicialización de objetos
DHT dht(DHTPIN, DHTTYPE);
RTC_DS3231 rtc;
File dataFile;

void setup() {
  Serial.begin(9600);
  dht.begin();

  // Inicializar la tarjeta SD
  if (!SD.begin(CSPIN)) {
    Serial.println("Error al inicializar la tarjeta SD");
    return;
  }
  Serial.println("Tarjeta SD inicializada.");

  // Inicializar el RTC
  if (!rtc.begin()) {
    Serial.println("No se pudo encontrar RTC");
    while (1);
  }
  if (rtc.lostPower()) {
    Serial.println("RTC perdió energía, configurando la hora.");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  // Obtener la hora actual
  DateTime now = rtc.now();

  // Obtener las lecturas del sensor DHT11
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Verificar si las lecturas son válidas
  if (isnan(h) || isnan(t)) {
    Serial.println("Error al leer el sensor DHT11");
    return;
  }

  // Abrir el archivo en la tarjeta SD
  dataFile = SD.open("datalog.txt", FILE_WRITE);

  // Si el archivo está disponible, escribir los datos
  if (dataFile) {
    dataFile.print(now.timestamp(DateTime::TIMESTAMP_FULL));
    dataFile.print(", ");
    dataFile.print("Temperatura: ");
    dataFile.print(t);
    dataFile.print(" *C, ");
    dataFile.print("Humedad: ");
    dataFile.print(h);
    dataFile.println(" %");
    dataFile.close();
    Serial.println("Datos guardados.");
  } else {
    Serial.println("Error al abrir el archivo datalog.txt");
  }

  // Esperar 2 segundos antes de la siguiente lectura
  delay(2000);
}

Explicación del Código:

  1. Inclusión de Librerías: Se incluyen las librerías necesarias para manejar la tarjeta SD, el módulo RTC y el sensor DHT11.
  2. Definición de Pines: Se definen los pines utilizados para el sensor DHT11 y el módulo de tarjeta SD.
  3. Inicialización: En la función setup(), se inicializan el sensor DHT11, la tarjeta SD y el módulo RTC. Si alguno de estos fallos, se imprime un mensaje de error.
  4. Lectura y Almacenamiento de Datos: En la función loop(), se obtienen las lecturas de temperatura y humedad del sensor DHT11 y la hora actual del módulo RTC. Estos datos se escriben en un archivo en la tarjeta SD con un formato legible.
  5. Manejo de Errores: Se incluyen verificaciones para asegurarse de que las lecturas del sensor sean válidas y que el archivo en la tarjeta SD se pueda abrir correctamente.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.