Data Logger Suhu Kelembaban dengan Arduino UNO
Pada postingan sebelumya “Menulis dan membaca microSD Card dg Arduino” kita telah membuat proyek Arduino untuk akses memori microSD Card. Proses penyimpanan (tulis) data maupun pembacaan data sudah berhasil dibuat, walaupun data berupa simulasi saja. Sebagai media penyimpan data dipakai microSD Card karena memori EEPROM Arduino yang terbatas. Kali ini kita lanjutkan dengan menambahkan sebuah sensor suhu kelembaban yaitu DHT22 (saudara kandung DHT11) menjadi aplikasi “Data logger suhu kelembaban Arduino”.
Data logger biasanya orang menyebutnya. Data logger sendiri diartikan sebagai sebuah alat elektronik yang dipakai untuk mencatat data dari waktu ke waktu yang terintegrasi dengan sensor serta instrumen lain. Sebagai inputnya adalah sensor suhu kelembaban DHT22 dan sebagai media penyimpan data dipakai microSD Card dengan modul interface-nya.
Baik kita langsung membuat data logger suhu kelembaban dengan Arduino UNO. Siapkan komponennya :
- Arduino UNO
- MicroSD Card
- Modul MicroSD Card
- Push button
- Sensor suhu kelembaban DHT22
- Breadboard
- Kabel konektor
Masukkan SD Card (micro SD) ke slot micro SD di modul.
Setelah semua hardware siap, selanjutnya buat rangkaian untuk menulis dan membaca data micro SD dengan Arduino UNO seperti berikut ini :
Koneksi modul micro SD dengan Arduino :
Koneksi sensor DH22 dengan Arduino :
Push button dihubungkan dengan pin 6 Arduino dan ground, fungsinya untuk tombol perintah ‘baca’ data di microSD. Selanjutnya kita buat program untuk menulis dan membaca SD Card dengan Arduino UNO. Buka program Arduino IDE kemudian tulis code berikut :
/************************************* * Data Logger Suhu Kelembaban dg Arduino * Input : Sensor DHT22 * Memori : microSD * www.ardutech.com * ***********************************/ #include <SPI.h> #include <SD.h> #include <DHT.h> //library DHT #define DHTPIN 7 //pin DATA konek ke pin 7 Arduino #define DHTTYPE DHT22 //tipe sensor DHT11 DHT dht(DHTPIN, DHTTYPE); //set sensor + koneksi pin float humi, temp; File myFile; int i,j,k; void setup() { Serial.begin(9600); pinMode(10, OUTPUT); pinMode(6,INPUT_PULLUP); delay(1000); if (!SD.begin(10)) { Serial.println(" SD card Gagal! "); delay(2000); while(1); } Serial.println("SD card Berhasil "); delay(2000); } //==================================== void loop() { i++; if(i>10){ humi = dht.readHumidity();//baca kelembaban temp = dht.readTemperature();//baca suhu if (isnan(humi) || isnan(temp)) { //jika tidak ada hasil Serial.println("DHT11 tidak terbaca... !"); return; } else{//jika ada hasilnya Serial.print("Suhu="); //kirim serial "Suhu" Serial.print(temp); //kirim serial nilai suhu Serial.println("C"); //kirim serial "C" Celcius Serial.print("Humi="); //kirim serial "Humi" Serial.print(humi); //kirim serial nilai kelembaban Serial.println("%RH"); //kirim serial "%RH" k++; writeSD(); } i=0; } //------------------------------ for(j=0;j<10;j++){ if(digitalRead(6)==LOW){ readSD(); while(1); } delay(100); } } //============================ void writeSD(){ //===================Simpan data ke sd Card myFile = SD.open("data1.txt", FILE_WRITE); if (myFile) { Serial.print("Simpan data ke :"); Serial.println(k); myFile.print("Data ke-"); myFile.println(k); myFile.print("H="); myFile.print(humi); myFile.print(", T="); myFile.println(temp); myFile.close(); delay(2000); Serial.println(" Berhasil... "); } else { Serial.println("error buka file"); Serial.println(" data1.txt"); } delay(1000); } void readSD(){ //====================baca isi file data1.txt myFile = SD.open("data1.txt"); if (myFile){ Serial.println("Data Logger Suhu Kelembaban :"); while (myFile.available()) { Serial.write(myFile.read()); } myFile.close(); } else{ Serial.println("buka file data1.txt Error!!"); } }
Library akses microSD (SD) silakan download disini. Jika yang dipakai sensor DHT11 juga bisa, hanya perlu mengganti programnya :
#define DHTTYPE DHT22
Diganti menjadi :
#define DHTTYPE DHT11
Simpan kemudian Upload. Untuk melihat hasilnya kita perlu Serial Monitornya Arduino IDE. Dari menu Tools – Serial Monitor kemudian seting baudrate pada 9600. Jika sukses maka akan tampil :
Selanjutnya setiap sekitar 14 detik, akan dilakukan penyimpanan data suhu kelembaban ke microSD. Pada Serial Monitor akan tampial :
Delay penyimpanan dapat anda atur sendiri atau jika ingin lebih sempurna, dapat anda tambahkan RTC (Real Time Clock). Tekan tombol untuk perintah membaca SD Card dan menampilkan hasilnya di Serial Monitor :
Tampilan masih berupa data ‘mentah’, jika ingin lebih menarik dapat dibuat grafik. Alhamdulillah akhirnya selesai juga proyek membuat data logger suhu kelembaban dengan Arduino UNO dan sensor DHT22.
Ok, semoga bermanfaat.
Ardutech – “Sahabat Inovasi Anda”