Jam Digital dengan Modul Real Time Clock RTC pengaturan via Wifi

By | November 1, 2023
Print Friendly, PDF & Email
612 Views

Modul Jam Digital atau sering disebut dengan Real Time Clock banyak diaplikasikan untuk mendukung proyek lain seperti data logger, ataupun hanya sekedar penunjuk waktu saja. RTC DS1307 yang digunakan menggunakan komunikasi I2C agar hemat PIN.

Selama ini Pengaturan/setting bisa dilakukan secara manual yaitu ketika upload kode Baca Juga Jam Digital dengan Relay Time Clock RTC DS1307, namun hal ini tidak praktis! Apalagi menggunakan modul bluetooth menjadi ribet! Kita akali menggunakan Wifi saja! tentu kita butuh mikrokontroler yaitu NodeMCU serta koding berbasis web server ajax.  Keunggulan Jam Digital dengan Modul RTC pengaturan via Wifi yaitu kita bebas membuat tampilan berbasis CSS+HTML+ Java script! serta tidak butuh alat / modul tambahan lagi lho! Kalian bisa baca Membuat Relay Berbasis Webserver berbasis Ajax dengan NodeMCU

RTC DS1307 module adalah chip RTC yang memungkinkan penggunaannya dalam berbagai aplikasi yang memerlukan pengukuran waktu dan tanggal secara real-time. RTC DS1307 memiliki fitur-fitur seperti deteksi daya rendah, konsumsi daya rendah, dan memori SRAM 56-byte yang dapat diakses oleh mikrokontroler.

Modul RTC DS1307

 

Sedangkan Display nya menggunakan LCD 2×16 I2C biar hemat pin juga. baca Display LCD 2×16 character untuk mikrokontroler

Modul LCD 16 x 2 interface I2C

 

Update / Setting Jam RTC berbasis Web Server NodeMCU

Saat ini dipasaran banyak menjual alat penunjuk waktu sholat yang bisa dikendalikan lewat ponsel via bluetooth. Nah kali ini kita akan menggunakan komunikasi wireless juga berbasis WiFi dengan NodeMCU. Biasanya pengaturan RTC menggunakan jam di laptop maka nanti juga demikian, hanya saja akan diakses via browser di sisi client untuk pengaturannya.

Wiring nya sebagai berikut semuanya dirangkai secara pararel saja

See also  Pengertian dan Penggunaan Modul SPI: Meningkatkan Efisiensi Komunikasi Antar-Perangkat
Pin NodeMCU Amica LCD 2 x 16 Modul RTC DS1307
Vin (5 volt) VCC VCC
Ground Grnd Grnd
D1 SCL SCL
D2 SDA SDA

Library RTC dan LCD 2 x 16 interface I2C

Untuk library yang digunakan, bisa kalian download

Berikut tampilan web disisi client ketika diakses

Tampilan Pengaturan berbasis Web

jadi Jam Digital dengan Modul RTC pengaturan via Wifi sangat mudah sekali ketika gunakan, hanya bermodalkan Wifi, kita bisa mengatur dengan mudah.

Kode Header.h

Nanti kita akan pisahkan header.h yang berisi kode html untuk bisa diakses di client. Kode HTML dibawah berikut ini akan tampil jika kalian telah login atau telah mendaftar

Existing Users Log In




Enter Captcha Here :

   

Kode Arduino/NodeMCU jam_RTC_wifi.ino nya

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

#include <ESP8266WiFi.h>
#include "index.h" //Our HTML webpage contents
#include <ESP8266WebServer.h>


LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc;
char namaHari[7][12] = {"Mingg", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"};

const char *ssid_AP = "clock"; //menjadi hotspot AP acces point
const char *password_AP = "12345678";


ESP8266WebServer server(80); //Server on port 80
String webpage = MAIN_page; //Read HTML contents




#define LED 2 // untuk lampu LED

void handleRoot() {
 String s = MAIN_page; //Read HTML contents
 server.send(200, "text/html", s); //Send web page
}


void handleForm() {
  server.send(200, "text/html","sukses"); //Send web page 
  String tahun = server.arg("tahun"); 
  String bulan = server.arg("bulan");
  String hari = server.arg("tanggal");

  String jam = server.arg("jam");
  String menit = server.arg("menit");
  String detik = server.arg("detik");
  //https://www.ardumotive.com/ds1307_rtc-en.html

  rtc.adjust(DateTime(tahun.toInt(),
                      bulan.toInt(),
                      hari.toInt(),
                      jam.toInt(),
                      menit.toInt(),
                      detik.toInt())); 
  rtc.begin();
  
  
}



void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN, OUTPUT); 
  Serial.begin(9600);

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid_AP, password_AP);   // Membuat Access Point



  Wire.begin();  
  if (! rtc.begin()) {
    Serial.println("RTC TIDAK TERBACA");
    //while (1);

  }
  //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//update secara manual pakai komputer
  //rtc.adjust(DateTime(2016, 11, 19, 19, 45, 0)); 
  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//update rtc dari waktu komputer
  }
  
  rtc.begin();
  
  //lcd.begin();  
  lcd.init();
  lcd.home();
  lcd.backlight();

  server.on("/",handleRoot);
  server.on("/action_page", handleForm); //form action is handled here
  server.begin();

}

void loop() {
  server.handleClient();
  DateTime now = rtc.now();
  Serial.print(namaHari[now.dayOfTheWeek()]);  
  Serial.print(',');    
  Serial.print(now.day(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.year(), DEC);
  Serial.print(" ");   
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
  
  
  lcd.clear();
  String tanggalsekarang = String(namaHari[now.dayOfTheWeek()])+", "+String(now.day())+"/"+String(now.month())+"/"+String(now.year());
  String jamsekarang = String(now.hour())+":"+String(now.minute())+":"+String(now.second());
  lcd.setCursor(0, 0);
  lcd.print(tanggalsekarang);
  lcd.setCursor(0, 1);
  lcd.print(jamsekarang);

  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  

}

Setelah kita upload dan aktifkan ponsel/komputer untuk terhubung ke Hotspot dengan alamat diatas, kita buka browser dengan alamat http://192.168.4.1

Demo Jam Digital dengan Modul Real Time Clock RTC pengaturan via Wifi

 

See also  Update Firmware NodeMCU ESP8266 menggunakan esptool.py

Leave a Reply