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

Registro de Dados com Arduino

O registro de dados é uma prática essencial em diversas aplicações de engenharia e ciência, permitindo a coleta e análise de informações ao longo do tempo. No contexto do Arduino, registrar dados pode ser útil para monitoramento ambiental, controle de processos industriais, e projetos de automação residencial. Este artigo abordará como configurar um sistema de registro de dados utilizando um Arduino e um cartão SD, permitindo a armazenagem de informações para análise posterior.

Project: Neste projeto, vamos criar um sistema de registro de dados que monitora a temperatura e a umidade do ambiente utilizando um sensor DHT11. Os dados coletados serão armazenados em um cartão SD para análise posterior. O objetivo é demonstrar como integrar sensores e módulos de armazenamento com o Arduino para criar um sistema de coleta de dados eficiente.

Componentes List:

  • 1 x Arduino Uno
  • 1 x Sensor de temperatura e umidade DHT11
  • 1 x Módulo de cartão SD
  • 1 x Protoboard
  • 1 x Resistor de 10k ohms
  • Cabos jumpers

Examples:

#include <SPI.h>
#include <SD.h>
#include <DHT.h>

// Define o pino do sensor DHT11
#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

// Define o pino do módulo SD
const int chipSelect = 4;

void setup() {
  // Inicializa a comunicação serial
  Serial.begin(9600);
  Serial.println("Inicializando...");

  // Inicializa o sensor DHT11
  dht.begin();

  // Inicializa o módulo SD
  if (!SD.begin(chipSelect)) {
    Serial.println("Falha ao inicializar o cartão SD!");
    return;
  }
  Serial.println("Cartão SD inicializado.");

  // Cria ou abre o arquivo de dados
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // Se o arquivo foi aberto com sucesso, escreve o cabeçalho
  if (dataFile) {
    dataFile.println("Temperatura,Umidade");
    dataFile.close();
  } else {
    Serial.println("Erro ao abrir o arquivo datalog.txt");
  }
}

void loop() {
  // Espera 2 segundos entre as leituras
  delay(2000);

  // Lê a temperatura e a umidade do sensor DHT11
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Verifica se a leitura falhou
  if (isnan(h) || isnan(t)) {
    Serial.println("Falha ao ler do sensor DHT11!");
    return;
  }

  // Abre o arquivo de dados para adicionar uma nova linha
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // Se o arquivo foi aberto com sucesso, escreve os dados
  if (dataFile) {
    dataFile.print(t);
    dataFile.print(",");
    dataFile.println(h);
    dataFile.close();
    // Também imprime os dados no monitor serial
    Serial.print("Temperatura: ");
    Serial.print(t);
    Serial.print(" *C, Umidade: ");
    Serial.print(h);
    Serial.println(" %");
  } else {
    Serial.println("Erro ao abrir o arquivo datalog.txt");
  }
}

Explicação do código:

  1. Inclusão de Bibliotecas: As bibliotecas SPI.h, SD.h, e DHT.h são incluídas para lidar com a comunicação SPI, o módulo SD e o sensor DHT11, respectivamente.
  2. Definições de Pinos: O pino do sensor DHT11 é definido como 2, e o pino do módulo SD como 4.
  3. Configuração Inicial: No setup(), inicializamos a comunicação serial, o sensor DHT11 e o módulo SD. Também criamos ou abrimos o arquivo datalog.txt e escrevemos um cabeçalho.
  4. Loop Principal: No loop(), lemos a temperatura e a umidade do sensor DHT11 a cada 2 segundos. Se a leitura for bem-sucedida, os dados são escritos no arquivo datalog.txt e também impressos no monitor serial.

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.