Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A gravação de dados é uma tarefa fundamental em diversos projetos de eletrônica e automação, permitindo o armazenamento de informações para análises posteriores. No contexto do Arduino, a gravação de dados pode ser utilizada para monitoramento ambiental, registro de eventos, entre outros. Este artigo abordará a gravação de dados utilizando um Arduino e um módulo de cartão SD, explicando passo a passo como implementar essa funcionalidade.
Project: Neste projeto, iremos criar um sistema de gravação de dados de temperatura e umidade utilizando um sensor DHT11, um Arduino, e um módulo de cartão SD. O objetivo é registrar as leituras do sensor em intervalos regulares e armazenar esses dados em um arquivo no cartão SD. Este sistema pode ser utilizado em aplicações de monitoramento ambiental, onde é necessário registrar as condições climáticas ao longo do tempo.
Components List:
Examples:
#include <SPI.h>
#include <SD.h>
#include <DHT.h>
// Define os pinos
#define DHTPIN 2 // Pino onde o sensor DHT11 está conectado
#define DHTTYPE DHT11 // Definindo o tipo de sensor DHT
// Inicializa o sensor DHT
DHT dht(DHTPIN, DHTTYPE);
// Define o pino CS do módulo SD
const int chipSelect = 10;
void setup() {
// Inicializa a comunicação serial
Serial.begin(9600);
Serial.println("Inicializando...");
// Inicializa o sensor DHT
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);
// Verifica se o arquivo foi aberto corretamente
if (dataFile) {
dataFile.println("Iniciando gravação de dados");
dataFile.close();
} else {
Serial.println("Erro ao abrir o arquivo datalog.txt");
}
}
void loop() {
// Lê a temperatura e umidade do sensor DHT11
float h = dht.readHumidity();
float t = dht.readTemperature();
// Verifica se as leituras são válidas
if (isnan(h) || isnan(t)) {
Serial.println("Falha ao ler do sensor DHT!");
return;
}
// Abre o arquivo de dados
File dataFile = SD.open("datalog.txt", FILE_WRITE);
// Se o arquivo estiver disponível, escreve os dados
if (dataFile) {
dataFile.print("Umidade: ");
dataFile.print(h);
dataFile.print(" %\t");
dataFile.print("Temperatura: ");
dataFile.print(t);
dataFile.println(" *C");
// Fecha o arquivo
dataFile.close();
} else {
// Se o arquivo não puder ser aberto, exibe uma mensagem de erro
Serial.println("Erro ao abrir o arquivo datalog.txt");
}
// Aguarda 2 segundos antes de fazer a próxima leitura
delay(2000);
}
Explicação do Código:
SPI.h
, SD.h
, e DHT.h
são incluídas para permitir a comunicação com o módulo SD e o sensor DHT11.setup()
, a comunicação serial é inicializada, o sensor DHT11 é iniciado e o cartão SD é inicializado. Um arquivo de dados é criado ou aberto para escrita.loop()
, a temperatura e umidade são lidas do sensor DHT11. Se as leituras forem válidas, os dados são escritos no arquivo datalog.txt
no cartão SD. O loop se repete a cada 2 segundos.