Mengambil Data Suhu dari RTC DS3231/DS3232 dengan Arduino

Sekali merengkuh dayung, dua tiga pulau terlampaui. Mungkin itu peribahasa yang tepat untuk RTC tipe DS3231/DS3232, karena selain memiliki fitur utama sebagai penyedia waktu presisi, RTC ini ternyata juga memiliki sensor suhu yang dapat diambil outputnya. Namun, yang perlu Anda ketahui data suhu di RTC DS3231/DS3232 hanya akan update setiap 64 detik sekali sesuai dengan sampling rate-nya. Tapi lumayanlah, setidaknya sekitar 1 menit sekali Anda akan mendapatkan data suhu yang dapat manfaatkan untuk berbagai kebutuhan.

Cara mengambil data suhu dari RTC DS3231/DS3232 dengan Arduino sangat mudah sekali. Anda hanya perlu mendeklarasikan library ‘DS3232RTC.h’ (dapat Anda unduh disini), dan memanggil salah satu function-nya yaitu :

RTC.temperature();

Jika Anda lihat di datasheet library ini di halaman ini, function di atas akan mengembalikan sebuah nilai suhu yang dikalikan 4. Dengan demikian Anda harus membagi hasil pemanggilan function RTC.temperature() dengan nilai 4 supaya menunjukkan nilai suhu sesungguhnya. Sintaks Arduinonya adalah sebagai berikut :

float c = RTC.temperature()/4.;

[alert-announce]Catatan : library DS3232RTC.h di atas tidak dapat berdiri sendiri, dan harus menyertakan library ‘induk’-nya yaitu library ‘Time’ (silahkan download dulu disini). Untuk menambahkan library ke IDE Arduino dapat dibaca caranya disini[/alert-announce]

Berikutnya, tinggal Anda tampilkan saja di jendela Serial Monitor seperti biasa untuk memonitor suhu yang terbaca :

 Serial.print("Suhu = ");
 Serial.print(c);
 Serial.println(" C ");

Berikut ini adalah sketch selengkapnya, silahkan copy paste sketch berikut di IDE Arduino Anda :

#include <DS3232RTC.h>
#include <Time.h> 
#include <Wire.h>

void setup() {
Serial.begin(9600);
setSyncProvider(RTC.get);
if (timeStatus() != timeSet) Serial.println("RTC fail");
else Serial.println("RTC sync"); 
}

void loop() {
static time_t tLast;
time_t t;
t = now();
if (t != tLast) {
tLast = t;

Serial.print(hour());
Serial.print(":"); 
Serial.print(minute());
Serial.print(":");
Serial.print(second());
Serial.print(" ");
Serial.print(day());
Serial.print("/");
Serial.print(month());
Serial.print("/");
Serial.print(year()); 
Serial.print(" - "); 
float c = RTC.temperature()/4.;
Serial.print("Suhu = "); 
Serial.print(c);
Serial.println(" C "); 
}

}

Upload sketch Arduino di atas, dan lihatlah hasilnya di jendela Serial Monitor. Seharusnya tampilannya adalah sebagai berikut :

mengambil data suhu dari RTC DS3231 DS3232

Ohya, untuk prototipe rangkaian dapat Anda lihat pada artikel sebelumnya, “5 Menit Handling RTC DS3231/DS3232 dengan Arduino

Cukup mudah, bukan? Dengan memanfaatkan sensor temperature internal pada RTC DS3231/DS3232 Anda dapat memperoleh data suhu secara instan tanpa menambah sensor. Dengan demikian dapat menghemat budget dan jalur PCB. Semoga bermanfaat …..

0 0 votes
Article Rating
Tags:,

Leave a Reply

13 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
jebronk

gan mau nanya gmna cara untuk ngambil data sensor selama 5 detik dari RTC

Tia

Mas mau tanya kalo pake bahasa C ada ga cntohnya. Makasi

eva.art

supaya data tidak reset saat listrik padam bagaimana mas?

rizal

mas,klw kita mau baca tgl suatu tegangan mulai memback up beban dan kapan mulai stop gmn caranya ?

Jime

Mas, biar waktunya tidak reset saat tidak ada listrik ?

Mugio

Kalo library ini apakah compatible dng versi DS3231 original?

13
0
Would love your thoughts, please comment.x
()
x