Projetos de circuito eletrônicoProjetos de engenharia do ArduinoMódulo de interface de cartão SD para registro de dados

Módulo de interface de cartão SD para registro de dados

Relacionados

Neste post vamos fazer a interface do módulo do cartão SD com o arduino para registro de dados. Veremos a visão geral do módulo do cartão SD e entenderemos suas configurações de pinos e componentes integrados. Finalmente estaremos construindo um circuito para registrar os dados de temperatura e umidade no cartão SD.

Cartão Digital Seguro

O cartão SD ou cartão Secure Digital é uma benção para a eletrônica moderna, pois fornece armazenamento de alta capacidade em tamanho mínimo. Usamos o cartão SD para armazenamento de mídia em um dos projetos anteriores (MP3 player). Aqui vamos usá-lo para registro de dados.

O registro de dados é a etapa fundamental para registrar a ocorrência anterior de um incidente. Por exemplo: cientistas e pesquisadores capazes de interpretar o aumento da temperatura global.

Eles chegaram a essa conclusão depois de entender o padrão de aumento da temperatura, analisando os dados das últimas décadas. O registro dos dados sobre o incidente atual também pode revelar sobre a ocorrência futura.

Como o arduino é um ótimo microcontrolador para leitura de dados do sensor e suporta vários protocolos de comunicação para ler os sensores e periféricos de entrada e saída, a conexão entre o módulo do cartão SD arduino foi fácil.

Como o arduino não possui nenhum armazenamento além do próprio espaço de armazenamento do programa, podemos adicionar um armazenamento externo usando o módulo descrito neste artigo.

Agora vamos dar uma olhada no módulo do cartão SD.

Imagem do módulo do cartão SD:

IMAGEM DO MÓDULO DO CARTÃO SD:

Flipside do módulo e configuração dos pinos:

FLIPSIDE DO MÓDULO E CONFIGURAÇÃO DOS PINOS:

Existem seis pinos e suporta o protocolo de comunicação SPI (interface periférica serial). Para Arduino UNO os pinos de comunicação SPI são 13, 12, 11 e 10. Para Arduino mega os pinos SPI são 50, 51, 52 e 53.

O projeto proposto é ilustrado com Arduino UNO se você tiver algum outro modelo de Arduino favor consultar internet para os pinos SPI.

O módulo consiste em um suporte de cartão que mantém o cartão SD no lugar. O regulador de 3,3 V é fornecido para limitar a tensão dos cartões SD, pois foi projetado para funcionar em 3,3 V e não em 5 V.

Possui circuito integrado LVC125A a bordo, que é um shifter de nível lógico. A função do deslocador de nível lógico é reduzir os sinais de 5V do arduino para os sinais lógicos de 3,3V.

Agora isso conclui o módulo do cartão SD.

Usando o módulo de cartão SD, podemos armazenar qualquer tipo de dados, aqui vamos armazenar dados de texto. Estaremos armazenando dados de temperatura e umidade no cartão SD. Também estamos utilizando o módulo de relógio em tempo real para registrar a hora junto com os dados do sensor. Ele registra os dados a cada 30 segundos.

Diagrama esquemático:

MÓDULO DE INTERFACE DE CARTÃO SD PARA REGISTRO DE DADOS

O módulo RTC acompanhará a hora e registrará a data e a hora no cartão SD.

O LED de erro pisca rapidamente se o cartão SD falhar ou não inicializar ou se o cartão SD não estiver presente. O resto do tempo o LED fica desligado.

COMO AJUSTAR O TEMPO PARA O RTC:

• Baixe a biblioteca abaixo.
• Com a configuração de hardware concluída, conecte o arduino ao PC.
• Abra o IDE do arduino
• Vá para Arquivo> Exemplos>DS1307RTC> SetTime.
• Carregue o código e o RTC será sincronizado com a hora do computador.
• Agora carregue o código abaixo.

Faça o download da seguinte biblioteca do arduino antes de fazer o upload do código.

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

Temperatura e umidade DHT11: arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Programa:

//-----Program developed by R.Girish-----//
#include
#include
#include
#include
#include
#include
#define DHTxxPIN A0
const int cs = 10;
const int LED = 7;
dht DHT;
int ack;
int f;
File myFile;
void setup()
{
Serial.begin(9600);
pinMode(LED,OUTPUT);
if (!SD.begin(cs))
{
Serial.println("Card failed, or not present");
while(true)
{
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
}
Serial.println("Initialization done");
}
void loop()
{
myFile = SD.open("TEST.txt", FILE_WRITE);
if(myFile)
{
Serial.println("----------------------------------------------");
myFile.println("----------------------------------------------");
tmElements_t tm;
if(!RTC.read(tm))
{
goto A;
}
if (RTC.read(tm))
{
Serial.print("TIME:");
if(tm.Hour>12) //24Hrs to 12 Hrs conversion//
{
if(tm.Hour==13)
{
Serial.print("01");
myFile.print("01");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==14)
{
Serial.print("02");
myFile.print("02");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==15)
{
Serial.print("03");
myFile.print("03");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==16)
{
Serial.print("04");
myFile.print("04");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==17)
{
Serial.print("05");
myFile.print("05");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==18)
{
Serial.print("06");
myFile.print("06");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==19)
{
Serial.print("07");
myFile.print("07");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==20)
{
Serial.print("08");
myFile.print("08");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==21)
{
Serial.print("09");
myFile.print("09");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==22)
{
Serial.print("10");
myFile.print("10");
Serial.print(":");
myFile.print(":");
}
if(tm.Hour==23)
{
Serial.print("11");
myFile.print("11");
Serial.print(":");
myFile.print(":");
}
else
{
Serial.print(tm.Hour);
myFile.print(tm.Hour);
Serial.print(":");
myFile.print(":");
}
Serial.print(tm.Minute);
myFile.print(tm.Minute);
Serial.print(":");
myFile.print(":");
Serial.print(tm.Second);
myFile.print(tm.Second);
if(tm.Hour>=12)
{
Serial.print(" PM");
myFile.print( " PM");
}
if(tm.Hour<12)
{
Serial.print("AM");
myFile.print( " AM");
}
Serial.print(" DATE:");
myFile.print(" DATE:");
Serial.print(tm.Day);
myFile.print(tm.Day);
Serial.print("/");
myFile.print("/");
Serial.print(tm.Month);
myFile.print(tm.Month);
Serial.print("/");
myFile.print("/");
Serial.println(tmYearToCalendar(tm.Year));
myFile.println(tmYearToCalendar(tm.Year));
Serial.println("----------------------------------------------");
myFile.println("----------------------------------------------");
} else {
A:
if (RTC.chipPresent())
{
Serial.print("RTC stopped!!!");
myFile.print("RTC stopped!!!");
Serial.println(" Run SetTime code");
myFile.println(" Run SetTime code");
} else {
Serial.print("RTC Read error!");
myFile.print("RTC Read error!");
Serial.println(" Check circuitry!");
myFile.println(" Check circuitry!");
}
}
ack=0;
int chk = DHT.read11(DHTxxPIN);
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1;
break;
}
if(ack==0)
{
f=DHT.temperature*1.8+32;
Serial.print("Temperature(C) = ");
myFile.print("Temperature(°C) = ");
Serial.println(DHT.temperature);
myFile.println(DHT.temperature);
Serial.print("Temperature(F) = ");
myFile.print("Temperature(°F) = ");
Serial.print(f);
myFile.print(f);
Serial.print("n");
myFile.println(" ");
Serial.print("Humidity(%) = ");
myFile.print("Humidity(%) = ");
Serial.println(DHT.humidity);
myFile.println(DHT.humidity);
Serial.print("n");
myFile.println(" ");
}
if(ack==1)
{
Serial.println("NO DATA");
myFile.println("NO DATA");
}
for(int i=0; i<30; i++)
{
delay(1000);
}
}
myFile.close();
}
}

//—–Programa desenvolvido por R.Girish—–//

Uma vez que o circuito está autorizado a registrar dados por algum tempo, você pode remover o cartão SD conectado ao seu computador, haverá um arquivo TEXT.txt onde todos os dados de temperatura e umidade serão registrados juntamente com hora e data, conforme mostrado abaixo.

IMG 6243A2AFD6288

NOTA: A ideia acima é um exemplo de como fazer a interface e gravar dados. A utilização deste projeto depende de sua imaginação, você pode gravar dados de sensores de qualquer tipo.

Protótipo do autor:

PROTÓTIPO PARA MÓDULO DE CARTÃO SD INTERFACEADO COM ARDUINO

Hashtags: #Módulo #interface #cartão #para #registro #dados
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados

Relacionados