Modul Kad SD antara muka untuk Pembalakan Data

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam catatan ini kita akan menghubungkan modul kad SD dengan arduino untuk log data. Kami akan melihat gambaran keseluruhan modul kad SD dan memahami konfigurasi pin dan komponen papan. Akhirnya kami akan membina litar untuk mencatat data suhu dan kelembapan ke kad SD.



Kad Digital Selamat

Kad SD atau kad Secure Digital adalah kelebihan untuk elektronik moden kerana ia menyediakan penyimpanan berkapasiti tinggi pada saiz minimum. Kami telah menggunakan kad SD untuk penyimpanan media di salah satu projek sebelumnya (pemain Mp3). Di sini kita akan menggunakannya untuk log data.

Pembalakan data adalah langkah asas untuk merakam kejadian masa lalu suatu kejadian. Contohnya: saintis dan penyelidik dapat mentafsirkan kenaikan suhu global.



Mereka sampai pada kesimpulan ini setelah memahami corak kenaikan suhu dengan melihat data beberapa dekad yang lalu. Merakam data mengenai kejadian semasa mungkin juga mendedahkan tentang kejadian masa depan.

Sejak arduino menjadi mikrokontroler yang hebat untuk membaca data sensor dan menyokong pelbagai protokol komunikasi untuk membaca sensor dan input output periferal, hubungan antara modul kad SD arduino dibuat sepotong kek.

Oleh kerana arduino tidak mempunyai storan selain ruang penyimpanan programnya sendiri, kami dapat menambahkan storan luaran menggunakan modul yang dijelaskan dalam artikel ini.

Sekarang mari kita lihat modul kad SD.

Imej modul kad SD:

Imej modul kad SD:

Bahagian bawah modul dan konfigurasi pin:

Bahagian bawah modul dan konfigurasi pin:

Terdapat enam pin dan menyokong protokol komunikasi SPI (antara muka periferal bersiri). Untuk Arduino UNO, pin komunikasi SPI adalah 13, 12, 11, dan 10. Untuk Arduino mega, pin SPI adalah 50, 51, 52 dan 53.

Projek yang dicadangkan digambarkan dengan Arduino UNO jika anda mempunyai model Arduino lain sila rujuk internet untuk pin SPI.

Modul ini terdiri daripada pemegang kad yang memegang kad SD di tempatnya. Pengatur 3.3V disediakan untuk menghadkan voltan ke kad SD kerana ia dirancang untuk berfungsi pada 3.3V dan bukan 5V.

Ia mempunyai litar bersepadu LVC125A di papan yang berubah tahap logik. Fungsi pergeseran tahap logik adalah untuk mengurangkan isyarat 5V dari arduino hingga 3.3V isyarat logik.

Sekarang yang menyimpulkan modul kad SD.

Dengan menggunakan modul kad SD kita dapat menyimpan segala data raja, di sini kita akan menyimpan data teks. Kami akan menyimpan data suhu dan kelembapan ke kad SD. Kami juga menggunakan modul jam masa nyata untuk mencatat waktu bersama dengan data sensor. Ia mencatat data setiap 30 saat.

Gambarajah skematik:

Modul Kad SD antara muka untuk Pembalakan Data

Modul RTC akan menjejaki masa dan mencatat tarikh dan masa ke kad SD.

LED ralat berkelip dengan cepat, jika kad SD gagal atau gagal dimulakan atau kad SD tidak hadir. Selebihnya masa LED mati.

CARA MENETAPKAN MASA KE RTC:

• Muat turun perpustakaan di bawah.
• Dengan persediaan perkakasan yang telah selesai, sambungkan arduino ke PC.
• Buka arduino IDE
• Pergi ke Fail> Contoh> DS1307RTC> SetTime.
• Muat naik kod dan RTC akan diselaraskan dengan masa komputer.
• Sekarang muat naik kod yang diberikan di bawah.

Sila muat turun pustaka arduino berikut sebelum memuat naik kodnya.

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

Suhu & kelembapan 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 litar dibenarkan memasukkan data untuk beberapa waktu, anda boleh mengeluarkan kad SD yang disambungkan ke komputer anda, akan ada fail TEXT.txt yang mana semua data suhu dan kelembapan direkodkan bersama dengan waktu dan tarikh, seperti yang ditunjukkan di bawah.

CATATAN: Idea di atas adalah contoh bagaimana antara muka dan merekod data. Penggunaan projek ini bergantung pada imaginasi anda, anda dapat merakam data sensor dalam bentuk apa pun.

Prototaip pengarang:

Prototaip untuk Modul Kad SD Antara Muka dengan Arduino




Sebelumnya: Sensor tanpa sentuh - Inframerah, Suhu / Kelembapan, Kapasitif, Cahaya Seterusnya: Cara Menghubungkan Sensor Fotodiod IR dalam Litar