///////////////LCD///////////
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
///////////RTC////////////
#include <RTClib.h>
RTC_DS1307 rtc;
DateTime waktu;
#include <DHT.h>
#define DHTPIN 7
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE) ;
char buffer[20],buffer2[8];
/////////////memory card////////////////
#include <SD.h>
#define pin_cs 4
File fileku,root;
String Data;
void setup() {
Serial.begin(9600);
rtc.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Data Logger");
delay(1000);
lcd.clear();
sdcard_ini();
}
void loop() {
float RH = dht.readHumidity();
float suhu = dht.readTemperature();
lcd.print(F("12 "));
lcd.print(RH);
lcd.print(F("% 30 : "));
lcd.print(suhu);
lcd.println(F(" C"));
waktu = rtc.now();
sprintf(buffer,"%d:%d:%d",waktu.hour(),waktu.minute(),waktu.second());
lcd.setCursor(0,0);
lcd.print(buffer);
//tambahkan sensor DHT 22,
//tampilkan di LCD hasil pembacaan suhu dalam Celcius
// Tampilkan waktu dalam format jam : menit : detik
//Simpan waktu dan hasil pembacaan suhu setiap 2 menit dengan format
//tanggal/bulan/tahun jam:menit:detik suhu
//tampilkan isi file yang tersimpan setiap 30 menit
/*
NB : fungsi untuk membuat, mengisi dan membaca file telah disiapkan
*/
}
void isiFile(String NamaFile, String Data)
{
fileku = SD.open(NamaFile,FILE_WRITE);
if(fileku)
{
fileku.println(Data);
fileku.close();
}
else
{
lcd.setCursor(0,3);
lcd.print("Card Error");
while(1);
}
}
void bacaFile(String NamaFile)
{
fileku = SD.open(NamaFile);
if(fileku)
{
while(fileku.available())
{
Serial.write(fileku.read());
}
fileku.close();
}
else
{
lcd.setCursor(0,3);
lcd.print("Card Error");
while(1);
}
}
void cekIsiCard()
{
root = SD.open("/");
while(true){
File cekfile = root.openNextFile();
if(!cekfile)
{
break;
}
Serial.print(cekfile.name());
Serial.print(" ");
Serial.println(cekfile.size());
cekfile.close();
}
}
void buat_file(String NamaFile, String waktu, String header)
{
fileku = SD.open(NamaFile,FILE_WRITE);
if(fileku)
{
fileku.println("ini adalah isi " + NamaFile);
fileku.println("Mulai direkam pada " + waktu);
fileku.println(header);
fileku.close();
}
else
{
lcd.setCursor(0,3);
lcd.print("Card Error");
while(1);
}
}
void sdcard_ini()
{
if(!SD.begin(pin_cs))
{ lcd.setCursor(0,3);
lcd.print("Card Error");
while(1);
}
}