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 :
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 …..
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
gan mau nanya gmna cara untuk ngambil data sensor selama 5 detik dari RTC
kalo menggunakan sensor suhu yg ada di RTC, datanya hanya akan update 1 menit sekali gan. Jadi kalaupun dr sisi Arduino mengambil data selama 5 detik, data suhu akan sama
Mas mau tanya kalo pake bahasa C ada ga cntohnya. Makasi
contoh di atas kan pake bhs C (C for arduino)
supaya data tidak reset saat listrik padam bagaimana mas?
data disimpan di eeprom
mas,klw kita mau baca tgl suatu tegangan mulai memback up beban dan kapan mulai stop gmn caranya ?
berarti butuh satu sensor tegangan (bisa dibaca di sini untuk sensor AC), kemudian butuh RTC seperti artikel di atas. Jika sensor berubah status (tegangan OFF), ambil data waktu dari RTC sebagai tanda mulai backup. Kalo sensor tegangan menunjukkan on, ambil data waktu lagi dari RTC yang menunjukkan waktu stop backup
Mas, biar waktunya tidak reset saat tidak ada listrik ?
baterai CR3032-nya udah soak itu mas, coba ganti baterenya dulu
Kalo library ini apakah compatible dng versi DS3231 original?
iya, kompatibel