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:
================================== 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.!
Selamat Mencoba.!
Dibawah ini merupakan contoh video yang sudah jadi.!
No comments
Post a Comment