fbpx

Tutorial Akses Data Real Time Clock DS3231 Menggunakan NodeMcu

Real Time ClockDS3231 adalah rangkaian elektronik yang berfungsi untuk menyediakan data waktu dan tanggal dengan tingkat presisi / akurasi tinggi dan diintegrasikan dengan serial EEPROM AT24C32 untuk keperluan penyimpanan data lainnya. Selain itu, dalam cip DS3231 juga sudah terdapat sensor suhu / temperatur dengan akurasi ±3º C. Saat ini Real Time Clock DS3231 hadir dalam bentuk modul seperti terlihat pada gambar di bawah ini

Modul RTC DS3231 memiliki 6 pin yaitu 32K, SQW, SCL, SDA, VCC, dan GND. Namun dalam penggunaannya hanya perlu 4 pin saja yaitu VCC, GND, SCL, dan SDA. Untuk lebih memahami cara mengakses data dari RTC DS3231 marilah buat percobaan sederhana namun sebelum itu persiapkan:

Alat dan Bahan DS3231 – NodeMCU

  1. NodeMcu Lolin
  2. Modul RTC DS3231
  3. LCD 16×2 (dengan modul I2C)
  4. Protoboard
  5. Kabel jumper male-female secukupnya

Buatlah rangkaian seperti pada gambar di bawah ini

  • VCC dihubungkan dengan VU NodeMcu.
  • GND dihubungkan dengan GND NodeMcu.
  • SDA dihubungkan dengan pin D2 NodeMcu
  • SCL dihubungkan dengan pin D1 NodeMcu

Source Code DS3231-NodeMCU

Selanjutnya buka IDE Arduino Anda dan copy-kan contoh program RTC DS3231-NodeMCU berikut ini:

#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>

RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};
LiquidCrystal_I2C lcd(0x3F, 16,2);

void setup () {
  Serial.begin(9600);
  lcd.init();
  lcd.begin(16,2);
  lcd.backlight();
  delay(3000);
  if (! rtc.begin()) {
    Serial.println("RTC tidak terbaca");
    while (1);
  }
  if (rtc.lostPower()) {
    //atur waktu sesuai waktu pada komputer
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    //atur waktu secara manual
    // January 21, 2019 jam 10:30:00
    // rtc.adjust(DateTime(2019, 1, 25, 10, 30, 0));
  }
}

void loop () {
  DateTime now = rtc.now();
  Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);//hari
  Serial.print(", ");
  Serial.print(now.day(), DEC); //tanggal
  Serial.print('/');
  Serial.print(now.month(), DEC); //bulan
  Serial.print('/');
  Serial.print(now.year(), DEC); //tahun
  Serial.print(' ');
  Serial.print(now.hour(), DEC); //jam
  Serial.print(':');
  Serial.print(now.minute(), DEC); //tanggal
  Serial.print(':');
  Serial.print(now.second(), DEC); //detik
  Serial.println();

  //Instruksi untuk Menampilkan Data RTC pada LCD

  lcd.setCursor(0,0);
  lcd.print("Tgl: ");
  lcd.setCursor(4,0);
  lcd.print(now.day(), DEC);
  lcd.setCursor(6,0);
  lcd.print("/");
  lcd.setCursor(7,0);
  lcd.print(now.month(), DEC);
  lcd.setCursor(9,0);
  lcd.print("/");
  lcd.setCursor(10,0);
  lcd.print(now.year(), DEC);

  lcd.setCursor(0,1);
  lcd.print("Jam: ");
  lcd.setCursor(4,1);
  lcd.print(now.hour(), DEC);
  lcd.setCursor(6,1);
  lcd.print(":");
  lcd.setCursor(7,1);
  lcd.print(now.minute(), DEC);
  lcd.setCursor(9,1);
  lcd.print(":");
  lcd.setCursor(10,1);
  lcd.print(now.second(), DEC);
  delay(1000);
}

Sebelum upload program di atas pastikan Anda telah menginstall library DS3231. Untuk menginstal library tersebut tinggal klik sketch, include library, manage libraries. Kemudian ketik DS3231 seperti terlihat pada gambar di bawah. Selain itu Anda juga harus perhatikan instruksi no 23 – 24.

Jika anda baru saja membeli RTC DS3231 maka Anda perlu mengaktifkan intstruksi di atas untuk mengatur data waktu dan tanggal. Untuk mengaktifkan instruksi di atas caranya sangat mudah anda hanya perlu menghapus tanda komentar (“//”) seperti terlihat di bawah ini. Namun jika Anda pernah menggunakan RTC sebelumnya maka Anda tidak perlu melakukan pengaturan seperti di bawah ini.

rtc.adjust(DateTime(2022, 2, 24, 10, 30, 0));

Upload sketch (program di atas) dengan menekan tombol upload atau melalui tombol keyboard CTRL+U, pastikan pengaturan board pada NodeMCU 1.0 (ESP-12E Module) serta pastikan port telah sesuai seperti yang tertera pada Device Manager di Control Panel Windows Anda. Kabel USB antara laptop dan NodeMcu tetap terpasang. Setelah program selesai diunggah perhatikan Data tanggal dan waktu yang ditampilkan pada LCD 16×2.

Jika LCD 16×2 yang Anda gunakan telah menampilkan data seperti yang terlihat pada Gambar di atas, selamat Anda telah berhasil mengakses data RTC DS3231 serta menampilkannya pada LCD 16×2. Silahkan dikembangkan untuk aplikasi yang lebih kompleks

About the Author