Membuat NTP Clock 7 Segment 4 Digit Menggunakan Wemos D1 Mini ESP8266
Pada percobaan kali ini saya akan membuat tutorial bagaimana cara membuat Jam NTP 7 Segment Menggunakan Wemos D1 Mini ESP8266. 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 7 Segment
2. Wemos D1 Mini
3. Kabel USB
4. Kabel Jumper Secukupnya
1. Modul 7 Segment
2. Wemos D1 Mini
3. Kabel USB
4. Kabel Jumper Secukupnya
Setelah bahan lengkap silahkan dirangkai sesuai Skema rangkaian di bawah ini:
================================== SOURCE CODE ==================================
#include "NTPClient.h"
#include "ESP8266WiFi.h"
#include "WiFiUdp.h"
#define LATCH D4
#define CLK D3
#define DATA D2
byte digit[10]= {0xFD, 0x31, 0xDB, 0x7B, 0x37, 0x6F, 0xEF, 0x39, 0xFF, 0x7F};//1,5+dot
byte digit1[10]= {0xFC, 0x30, 0xDA, 0x7A, 0x36, 0x6E, 0xEE, 0x38, 0xFE, 0x7E};//1,5 Normal
const char *ssid = "xxxxxxxx"; //Wifi yang Kalian Gunakan
const char *password = "xxxxxxxx"; //Password Wifi yang Kalian Gunakan
const long utcOffsetInSeconds = 25200;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "asia.pool.ntp.org", utcOffsetInSeconds);
int hh, mm, ss;
void setup() {
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
Serial.print ( "." );
}
timeClient.begin();
pinMode(LATCH, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(DATA, OUTPUT);
}
void loop() {
timeClient.update();
hh = timeClient.getHours();
mm = timeClient.getMinutes();
ss = timeClient.getSeconds();
Serial.print(daysOfTheWeek[timeClient.getDay()]);
Serial.print(", ");
Serial.print(hh);
Serial.print(":");
Serial.print(mm);
Serial.print(":");
Serial.println(ss);
int m1,m2,h1,h2;
m1 = mm % 10/1;
m2 = mm % 100/10;
h1 = hh % 10/1;
h2 = hh % 100/10;
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLK, MSBFIRST, ~digit[m1]);
shiftOut(DATA, CLK, MSBFIRST, ~digit[m2]);
shiftOut(DATA, CLK, MSBFIRST, ~digit[h1]);
shiftOut(DATA, CLK, MSBFIRST, ~digit[h2]);
digitalWrite(LATCH, HIGH);
delay(500);
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLK, MSBFIRST, ~digit1[m1]);
shiftOut(DATA, CLK, MSBFIRST, ~digit1[m2]);
shiftOut(DATA, CLK, MSBFIRST, ~digit1[h1]);
shiftOut(DATA, CLK, MSBFIRST, ~digit1[h2]);
digitalWrite(LATCH, HIGH);
delay(500);
}
lalu Upload Program Tersebut Ke Wemos D1 Mini Dengan Kabel USB yang sudah disediakan.
Selamat Mencoba.!
Selamat Mencoba.!
1 comment
Hello, can you adapt the ds18b20 sensor to the circuit so that it shows the temperature, example 25.6C?
Post a Comment