- Knowledge is power
- The Future Of Possible
- Hibs and Ross County fans on final
- Tip of the day: That man again
- Hibs and Ross County fans on final
- Spieth in danger of missing cut
Tutorial Arduino kali ini adalah bagaimana cara membuat sebuah Proyek Arduino Datalogger Suhu dan Kelembapan dengan menyimpan data ke micro SD. data yang akan di simpan pada mikroSD pada umunya dalam sebuah sistem data logger adalah data waktu, suhu dan kelembapan. Jadi jangan kemana-kemana tetap baca sampai selesai tutorial kali ini ya.
Komponen-komponen yang diperlukan
Komponen-komponen yang dibutuhkan dalam membuat Proyek ini adalah sebagai berikut:
- Board Arduino, bisa Arduino Uno, Arduino Nano, Arduino Pro Mini.
- Modul DHT11 atau DH22
- Modul MicroSD
- Kabel Jumper
- Bread Board.
Library-library Arduino yang dibutuhkan
untuk memudahkan dalam mengakses beberapa modul seperti Modul Micro SD dan Module Sensor suhu dan kelembapan dimana pada proyek ini menggunakan sensor DHT11 atau juga bisa menggunakan DHT22. Berikut kami cantumkan library-library yang digunakan dalam proyek ini beserta link downloadnya yah.
- Library MicroSD
- Library Sensor Suhu & Kelembapan DHT11 atau DHT22
Skematik Arduino Data Logger Sensor Suhu dan Kelembapan dengan MicroSD

Source Code atau Contoh Program Arduino Data Logger Sensor Suhu dan Kelembapan dengan MicroSD
/*
* Rui Santos
* Lengkapi Detail Proyek http://randomnerdtutorials.com
*/
#termasuk
//untuk modul kartu SD
#termasuk
// untuk kartu SD
#termasuk
// untuk sensor DHT
#termasuk
// untuk RTC
//tentukan pin DHT
#define DHTPIN 2 // pin apa yang kita sambungkan
// hapus komentar pada tipe apa pun yang Anda gunakan
#definisikan DHTTYPE DHT11 // DHT 11
//#definisikan DHTTYPE DHT22 // DHT 22 (AM2302)
//#definisikan DHTTYPE DHT21 // DHT 21 (AM2301)
// inisialisasi sensor DHT untuk Arduino 16mhz normal
DHT dht(DHTPIN, DHTTYPE);
// ubah ini agar sesuai dengan pelindung atau modul SD Anda;
// Pelindung dan modul Arduino Ethernet: pin 4
// Pelindung dan modul SD log masuk data: pin 10
// Pelindung SD Sparkfun: pin 8
const int chipPilih = 4;
// Buat file untuk menyimpan data
File File saya;
// RTC
RTC_DS1307 rtc;
membatalkan penyiapan() {
//menginisialisasi sensor DHT
dht.begin();
//menginisialisasi monitor serial
Serial.mulai(9600);
// pengaturan untuk RTC
while(!Serial); // untuk Leonardo/Mikro/Nol
jika(!rtc.begin()) {
Serial.println("Tidak dapat menemukan RTC");
sementara (1);
}
kalau tidak {
// baris berikut menyetel RTC ke tanggal & waktu sketsa ini dikompilasi
rtc.menyesuaikan(DateTime(F(__DATE__), F(__TIME__)));
}
if(!rtc.sedang berjalan()) {
Serial.println("RTC TIDAK berjalan!");
}
// pengaturan untuk kartu SD
Serial.print("Menginisialisasi kartu SD...");
if(!SD.begin(chipSelect)) {
Serial.println("inisialisasi gagal!");
kembali;
}
Serial.println("inisialisasi selesai.");
//membuka file
myFile=SD.open("DATA.txt", FILE_WRITE);
// jika file dibuka dengan baik, tulis ke dalamnya:
jika (File Saya) {
Serial.println("File dibuka dengan baik");
// mencetak judul data kita
myFile.println("Tanggal,Waktu,Suhu ºC");
}
myFile.close();
}
batalkan pencatatanWaktu() {
DateTime sekarang = rtc.now();
myFile = SD.open("DATA.txt", FILE_WRITE);
jika (File Saya) {
myFile.print(sekarang.tahun(), DEC);
myFile.cetak('/');
myFile.print(sekarang.bulan(), DEC);
myFile.cetak('/');
myFile.print(sekarang.hari(), DEC);
myFile.cetak(',');
myFile.print(sekarang.jam(), DEC);
myFile.cetak(':');
myFile.print(sekarang.menit(), DEC);
myFile.cetak(':');
myFile.print(sekarang.kedua(), DEC);
myFile.cetak(",");
}
Serial.print(sekarang.tahun(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.println(sekarang.hari(), DES);
Serial.print(now.hour(), DEC);
Serial.cetak(':');
Serial.print(now.minute(), DEC);
Serial.cetak(':');
Serial.println(sekarang.kedua(), DEC);
myFile.close();
penundaan(1000);
}
batalkan loggingTemperature() {
// Membaca suhu atau kelembapan membutuhkan waktu sekitar 250 milidetik!
// Pembacaan sensor mungkin juga 'lama' hingga 2 detik (sensornya sangat lambat)
// Baca suhu dalam Celcius
float t = dht.readTemperature();
// Baca suhu sebagai Fahrenheit
//float f = dht.readTemperature(benar);
// Periksa apakah ada pembacaan yang gagal dan keluar lebih awal (untuk mencoba lagi).
if (isnan(t) /*|| isnan(f)*/) {
Serial.println("Gagal membaca dari sensor DHT!");
kembali;
}
//tujuan debugging
Serial.print("Suhu: ");
Serial.cetak(t);
Serial.println(" *C");
//Serial.cetak(f);
//Serial.println(" *F\t");
myFile = SD.open("DATA.txt", FILE_WRITE);
jika (File Saya) {
Serial.println("terbuka dengan sukses");
myFile.print(t);
myFile.println(",");
}
myFile.close();
}
lingkaran kosong() {
loggingWaktu();
loggingSuhu();
penundaan(5000);
}


