Antarmuka Modul Kartu SD untuk Pencatatan Data

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam posting ini kita akan menghubungkan modul kartu SD dengan arduino untuk pencatatan data. Kita akan melihat gambaran umum modul kartu SD dan memahami konfigurasi pin dan komponen papannya. Akhirnya kita akan membangun sirkuit untuk mencatat data suhu dan kelembaban ke kartu SD.



Kartu Digital Aman

Kartu SD atau kartu Secure Digital adalah keuntungan bagi elektronik modern karena menyediakan penyimpanan berkapasitas tinggi dengan ukuran minimal. Kami telah menggunakan kartu SD untuk penyimpanan media di salah satu proyek sebelumnya (pemutar Mp3). Di sini kita akan menggunakannya untuk pencatatan data.

Pencatatan data adalah langkah mendasar untuk mencatat kejadian masa lalu dari suatu insiden. Misalnya: ilmuwan dan peneliti mampu menginterpretasikan kenaikan suhu global.



Mereka sampai pada kesimpulan ini setelah memahami pola kenaikan suhu dengan melihat data beberapa dekade terakhir. Pencatatan data tentang kejadian saat ini juga dapat mengungkapkan kejadian yang akan datang.

Karena Arduino menjadi mikrokontroler yang hebat untuk membaca data sensor dan mendukung berbagai protokol komunikasi untuk membaca sensor dan input periferal input, koneksi antara modul kartu SD Arduino membuat sepotong kue.

Karena Arduino tidak memiliki penyimpanan apa pun selain ruang penyimpanan programnya sendiri, kami dapat menambahkan penyimpanan eksternal menggunakan modul yang dijelaskan dalam artikel ini.

Sekarang mari kita lihat modul kartu SD.

Gambar modul kartu SD:

Gambar modul kartu SD:

Sisi lain dari modul dan konfigurasi pin:

Sisi lain dari modul dan konfigurasi pin:

Ada enam pin dan mendukung protokol komunikasi SPI (serial peripheral interface). Untuk Arduino UNO pin komunikasi SPI adalah 13, 12, 11, dan 10. Untuk Arduino mega pin SPI adalah 50, 51, 52 dan 53.

Proyek yang diusulkan diilustrasikan dengan Arduino UNO jika Anda memiliki model Arduino lain, silakan merujuk internet untuk pin SPI.

Modul ini terdiri dari dudukan kartu yang menahan kartu SD di tempatnya. Regulator 3.3V disediakan untuk membatasi voltase ke kartu SD karena dirancang untuk berfungsi pada 3.3V dan bukan 5V.

Ini memiliki sirkuit terintegrasi LVC125A di papan yang merupakan shifter level logika. Fungsi pemindah level logika adalah untuk mereduksi sinyal 5V dari arduino menjadi sinyal logika 3,3V.

Sekarang selesai modul kartu SD.

Menggunakan modul kartu SD kita dapat menyimpan semua raja data, di sini kita akan menyimpan data teks. Kami akan menyimpan data suhu dan kelembaban ke kartu SD. Kami juga menggunakan modul jam waktu nyata untuk mencatat waktu bersama dengan data sensor. Ini mencatat data setiap 30 detik.

Diagram skematik:

Antarmuka Modul Kartu SD untuk Pencatatan Data

Modul RTC akan melacak waktu dan mencatat tanggal dan waktu ke kartu SD.

LED kesalahan berkedip cepat, jika kartu SD gagal atau gagal untuk menginisialisasi atau kartu SD tidak ada. Sisa waktu LED tetap mati.

CARA MENGATUR WAKTU KE RTC:

• Unduh perpustakaan di bawah ini.
• Dengan pengaturan perangkat keras yang lengkap, hubungkan arduino ke PC.
• Buka arduino IDE
• Buka File> Contoh> DS1307RTC> SetTime.
• Unggah kode dan RTC akan disinkronkan dengan waktu komputer.
• Sekarang unggah kode yang diberikan di bawah ini.

Silakan unduh pustaka arduino berikut sebelum mengunggah kode.

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

Suhu & kelembaban DHT11: arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Program:

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

// ----- Program yang dikembangkan oleh R.Girish ----- //

Setelah sirkuit diijinkan untuk mencatat data untuk beberapa waktu, Anda dapat mencabut kartu SD yang terhubung ke komputer Anda, akan ada file TEXT.txt yang semua data suhu dan kelembaban dicatat bersama dengan waktu dan tanggal, seperti yang ditunjukkan di bawah ini.

CATATAN: Ide di atas adalah contoh bagaimana antarmuka dan merekam data. Pemanfaatan proyek ini bergantung pada imajinasi Anda, Anda dapat merekam data sensor dalam bentuk apa pun.

Prototipe penulis:

Prototipe untuk Interfaced SD Card Module dengan Arduino




Sepasang: Sensor Tanpa Kontak - Inframerah, Temperarture / Kelembaban, Kapasitif, Cahaya Berikutnya: Cara Menghubungkan Sensor Fotodioda IR di Sirkuit