Membuat Digital Clock NTP Menggunakan ESP-32 Wifi dengan Display Panel P5 RGB



 Pada percobaan kali ini saya akan membuat tutorial bagaimana cara membuat Jam NTP P5 Menggunakan Wemos ESP-32. Sebelum Lanjut saya akan menjelasakan apa itu NTP. Network Time Protocol (NTP) adalah sebuah protokol yang digunakan untuk pengsinkronan waktu di dalam sebuah jaringan bisa pada jaringan LAN (Local Area Network) maupun pada jaringan internet dan untuk sinkronisasi jam-jam sistem komputer di atas paket-switching, variabel-latency jaringan data. Proses sinkronisasi ini dilakukan didalam jalur komunikasi data yang biasanya menggunakan protokol komunikasi TCP/IP. Jadi Jam ini akan secara otomatis sinkron dengan server yang kita gunakan, jadi tidak membutuhkan modul RTC lagi sebagai penyinkron waktunya. Bagi Kalian Yang ingin Membuat atau mencoba percobaan kali ini kalian perlu menyiapkan bahan sebagai berikut: 

1. Modul P5 1 Buah
2. NodeMcu ESP-32 
3. Kabel USB 
4. Kabel Jumper Secukupnya
5. Power Supply 5V 5A 

Setelah bahan lengkap silahkan dirangkai sesuai Skema rangkaian di bawah ini:



Jika Rangkaian sudah selesai dirangkai, buatlah program seperti  di bawah ini:




================================== SOURCE CODE ==================================

#include "WiFi.h"
#include "RGBmatrixPanel.h"
#include "Adafruit_GFX.h"
#include "Fonts/FreeSansBold9pt7b.h"
#include "Fonts/BigNumber.h"
uint8_t rgbpins[] = { 19, 13, 18, 5, 12, 17 };
RGBmatrixPanel matrix(16, 14, 4, 27, 2, 26, 15, false, 64, rgbpins);

char ssid[] = "xxxxxxxx"; // Nama Wifi Anda
char pass[] = "xxxxxxxx"; // Password Wifi Anda

#define TZ (+7*60*60) //Timezone

void setup() {
  Serial.begin(115200);

  Serial.print("Attempting to connect to Network named: ");
  Serial.println(ssid);

  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(1000);
  }
  Serial.println("");
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  configTime(TZ, 0, "ntp.nict.jp", "ntp.jst.mfeed.ad.jp"); 

  matrix.begin();                      
}

void loop()
{
  if (WiFi.status() != WL_CONNECTED)
    ESP.restart();

  time_t t;
  static time_t last_t;
  struct tm *tm;
  static const char* const wd[7] = {"Minggu","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu"};

  t = time(NULL);
  if (last_t == t) return;
  last_t = t;
  tm = localtime(&t);
  matrix.fillScreen(0);

  matrix.setTextColor(matrix.Color333(15, 15, 0));
  matrix.setTextSize(2);
  matrix.setCursor(1, 0);
  //matrix.printf("00");
  matrix.printf("%02d", tm->tm_hour);
  matrix.drawCircle(25, 3, 1, matrix.Color333(15, 0, 0));
  matrix.drawCircle(25, 10, 1, matrix.Color333(15, 0, 0));
  matrix.drawCircle(25, 3, 0, matrix.Color333(0, 15, 0));
  matrix.drawCircle(25, 10, 0, matrix.Color333(0, 15, 0));
  matrix.setCursor(28, 0);
  //matrix.printf("00");
  matrix.printf("%02d",  tm->tm_min);
  matrix.setTextColor(matrix.Color333(0, 15, 15));
  matrix.setTextSize(1);
  matrix.setCursor(52, 7);
  matrix.printf("%02d", tm->tm_sec);

  matrix.setCursor(17, 16);
  matrix.setTextColor(tm->tm_wday == 0 ? matrix.Color333(15, 0, 0) :
                      tm->tm_wday == 6 ? matrix.Color333(0, 15, 15) :
                                         matrix.Color333(15, 0, 0));
  matrix.printf("%s", wd[tm->tm_wday]);

  matrix.setCursor(3, 24);
  matrix.setTextColor(matrix.Color333(15, 0, 15));
  matrix.printf("%02d-%02d-%04d-n", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);

}



lalu Upload Program Tersebut Ke NodeMcu ESP 32 Dengan Kabel USB yang sudah disediakan. Bagi Yang Belum Mempunyai Library Adafruit GFX  dan RGB Matrix Silahkan Download.

Selamat Mencoba.!

Dibawah ini merupakan contoh video yang sudah jadi.!


No comments

Dicky B_Mz. Powered by Blogger.