Schnittstelle SD-Kartenmodul für die Datenerfassung

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





In diesem Beitrag werden wir das SD-Kartenmodul mit Arduino für die Datenprotokollierung verbinden. Wir werden einen Überblick über das SD-Kartenmodul erhalten und dessen Pin-Konfigurationen und integrierte Komponenten verstehen. Schließlich werden wir eine Schaltung bauen, um die Temperatur- und Feuchtigkeitsdaten auf der SD-Karte zu protokollieren.



Sichere digitale Karte

SD-Karte oder Secure Digital-Karte ist ein Segen für moderne Elektronik, da sie Speicher mit hoher Kapazität bei minimaler Größe bietet. Wir haben die SD-Karte in einem der vorherigen Projekte (MP3-Player) als Medienspeicher verwendet. Hier werden wir es für die Datenprotokollierung verwenden.

Die Datenprotokollierung ist der grundlegende Schritt, um das vergangene Auftreten eines Vorfalls aufzuzeichnen. Zum Beispiel: Wissenschaftler und Forscher, die den Anstieg der globalen Temperatur interpretieren können.



Sie kamen zu diesem Schluss, nachdem sie das Muster der steigenden Temperatur anhand der Daten der letzten Jahrzehnte verstanden hatten. Das Aufzeichnen der Daten über den aktuellen Vorfall kann auch Aufschluss über das zukünftige Auftreten geben.

Da Arduino ein großartiger Mikrocontroller zum Lesen von Sensordaten ist und verschiedene Kommunikationsprotokolle zum Lesen der Sensoren und der Eingangs- / Ausgangsperipheriegeräte unterstützt, war die Verbindung zwischen dem SD-Kartenmodul Arduino ein Kinderspiel.

Da arduino keinen anderen Speicher als seinen eigenen Programmspeicherplatz hat, können wir mithilfe des in diesem Artikel beschriebenen Moduls einen externen Speicher hinzufügen.

Schauen wir uns nun das SD-Kartenmodul an.

Bild des SD-Kartenmoduls:

Bild des SD-Kartenmoduls:

Rückseite der Modul- und Pin-Konfiguration:

Rückseite der Modul- und Pin-Konfiguration:

Es gibt sechs Pins und es unterstützt das SPI-Kommunikationsprotokoll (Serial Peripheral Interface). Für Arduino UNO sind die SPI-Kommunikationspins 13, 12, 11 und 10. Für Arduino Mega sind die SPI-Pins 50, 51, 52 und 53.

Das vorgeschlagene Projekt wird mit Arduino UNO illustriert. Wenn Sie ein anderes Arduino-Modell haben, finden Sie im Internet die SPI-Pins.

Das Modul besteht aus einem Kartenhalter, der die SD-Karte an Ort und Stelle hält. Der 3,3-V-Regler begrenzt die Spannung an SD-Karten, da er für 3,3 V und nicht für 5 V ausgelegt ist.

Es hat eine integrierte LVC125A-Schaltung an Bord, die ein Logikpegelschieber ist. Die Funktion des Logikpegelschiebers besteht darin, 5-V-Signale von Arduino auf 3,3-V-Logiksignale zu reduzieren.

Damit ist das SD-Kartenmodul abgeschlossen.

Mit dem SD-Kartenmodul können wir jeden König von Daten speichern, hier werden wir Textdaten speichern. Wir speichern Temperatur- und Feuchtigkeitsdaten auf der SD-Karte. Wir verwenden auch ein Echtzeituhrmodul, um die Zeit zusammen mit den Sensordaten zu protokollieren. Es zeichnet die Daten alle 30 Sekunden auf.

Schematische Darstellung:

Schnittstelle SD-Kartenmodul für die Datenerfassung

Das RTC-Modul verfolgt die Uhrzeit und protokolliert Datum und Uhrzeit auf der SD-Karte.

Die Fehler-LED blinkt schnell, wenn die SD-Karte ausfällt oder nicht initialisiert werden kann oder die SD-Karte nicht vorhanden ist. Die restliche Zeit bleibt die LED aus.

SO STELLEN SIE DIE ZEIT AUF RTC EIN:

• Laden Sie die folgende Bibliothek herunter.
• Verbinden Sie das Arduino nach Abschluss der Hardware-Einrichtung mit dem PC.
• Öffnen Sie die Arduino IDE
• Gehen Sie zu Datei> Beispiele> DS1307RTC> SetTime.
• Laden Sie den Code hoch und RTC wird mit der Computerzeit synchronisiert.
• Laden Sie nun den unten angegebenen Code hoch.

Bitte laden Sie die folgende Arduino-Bibliothek herunter, bevor Sie den Code hochladen.

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

DHT11 Temp & Luftfeuchtigkeit: arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Programm:

//-----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()
}
}

// ----- Programm entwickelt von R.Girish ----- //

Sobald die Schaltung einige Zeit Daten protokollieren darf, können Sie die SD-Karte entfernen, die mit Ihrem Computer verbunden ist. Es wird eine TEXT.txt-Datei angezeigt, in der alle Temperatur- und Feuchtigkeitsdaten zusammen mit Uhrzeit und Datum aufgezeichnet werden (siehe unten).

HINWEIS: Die obige Idee ist ein Beispiel für die Schnittstelle und Aufzeichnung von Daten. Die Nutzung dieses Projekts hängt von Ihrer Vorstellungskraft ab. Sie können Sensordaten jeglicher Art aufzeichnen.

Prototyp des Autors:

Prototyp für Interfaced SD Card Module mit Arduino




Zurück: Kontaktlose Sensoren - Infrarot, Temperatur / Luftfeuchtigkeit, Kapazitiv, Licht Weiter: So schließen Sie einen IR-Fotodiodensensor an einen Stromkreis an