Hallo Warrior, pada pembahasan kali ini kita akan membahas salah satu modul clock, yaitu Modul RTC (Real Time Clock) DS3231. Modul ini kita akan coba setting dengan NodeMCU ESP8266, sehingga nantinya ESP8266 dapat membaca Waktu dan Tanggal Secara Realtime.
Contents
Introduction
Seperti yang kita ketahui, beberapa mikrokontroler tidak memiliki fungsi waktu secara realtime. Adapun fungsi waktu yang kita set akan melakukan reset kembali kedalam keadaan awal ketika mikrokontroler tersebut mati.
Dengan menggunakan Modul RTC, kita dapat mengatur waktu pada perangkat mikrokontroler kita seperti ESP8266, Raspberry dan Arduino secara realtime meskipun perangkat mikro kita matikan dayanya. Ketika dia dihidupkan kembali, waktu tidak akan mereset pada keadaan awal.
Jenis-jenis Modul RTC
Setelah melakukan pencarian di internet, ternyata modul RTC ini memiliki banyak jenisnya. Meskipun begitu fungsi dari modul ini tidak jauh berbeda satu sama lain, hanya saja berbeda pada library yang dipakai.
Berikut beberapa jenis modul RTC yang ada dipasaran :
- Modul RTC DS3231
- Modul RTC DS3232
- Modul RTC DS1302
- Modul RTC DS1307
Untuk tutorial percobaan yang ada pada artikel ini, kita akan menggunakan Modul RTC DS3231. Jadi kalian dapat sesuaikan modul yang akan kalian gunakan tersebut. Berikut merupakan gambar dari Modul berikut.

Praktek
Persiapan dan Bahan
Berikut merupakan beberapa perangkat yang perlu kita persiapkan pada percobaan ini :
- NodeMCU/ESP8266
- Modul RTC DS3231
Installasi Library
Sebelum kita memasukan program dari RTC tersebut, pertama kita harus menginstallkan librarynya terlebih dahulu. Buka Library Manager pada aplikasi Arduino IDE, lalu cari kata kunci rtclib hingga ditemukan seperti dibawah ini.

Setelah itu installkan library tersebut hingga muncul tulisan installed.
Rangkaian
Pada rangkaian dibawah ini tidak jauh berbeda dengan artikel sebelumnya, dimana kita memberikan dua contoh yaitu NodeMCU dan ESP-12F.


Sketch Program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#include <RTClib.h> #include <Wire.h> RTC_DS3231 rtc; char t[32]; void setup() { Serial.begin(115200); Wire.begin(5, 4); //Setting wire (5 untuk SDA dan 4 untuk SCL) rtc.begin(); rtc.adjust(DateTime(F(__DATE__),F(__TIME__))); //Setting Time // Kalian dapat menambahkan bagian dibawah ini untuk set manual jam // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); } void loop() { DateTime now = rtc.now(); //Menampilkan RTC pada variable now Serial.print("Tanggal : "); Serial.print(now.day()); //Menampilkan Tanggal Serial.print("/"); Serial.print(now.month()); //Menampilkan Bulan Serial.print("/"); Serial.print(now.year()); //Menampilkan Tahun Serial.print(" "); Serial.print("Jam : "); Serial.print(now.hour()); //Menampilkan Jam Serial.print(":"); Serial.print(now.minute()); //Menampilkan Menit Serial.print(":"); Serial.print(now.second()); //Menampilkan Detik Serial.println(); delay(1000); } |
Setelah program berhasil diupload, selanjutnya kita buka serial monitor untuk melihat hasilnya.
Hasil Percobaan
Berikut merupakan hasilnya apabila kita buka pada serial monitor :

Modul RTC DS3231 akan menampilkan waktu sekarang yang sedang terjadi selagi bateray yang terpasang pada modul tersebut masih aktif. Perlu diketahui baterai tersebut bisa bertahan sampai bertahun tahun, jadi kalian tidak perlu khawatir bateray akan habis besok lusa.
Kesimpulan
Dari hasil percobaan ini kita sudah dapat menampilkan hasil berupa tanggal dan waktu yang terjadi saat ini berkat modul RTC DS3231, ada banyak sekali modul RTC serupa, akan tetapi berbeda versi dan library saja. Secara fungsional mereka tetap sama.