
Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49

Hai teman-teman dalam instruksi ini kami akan membangun jam internet yang akan mendapatkan waktu dari internet sehingga proyek ini tidak memerlukan RTC untuk dijalankan, itu hanya membutuhkan koneksi internet yang berfungsi
Dan untuk proyek ini Anda memerlukan esp8266 yang akan memiliki wifi untuk mendapatkan akses internet dan tampilan untuk menampilkan waktu di dalamnya dan esp8266 akan mengambil waktu dari internet menggunakan protokol NTP, ntp adalah singkatan dari protokol waktu jaringan, jadi pada dasarnya ada server ntp di web yang digunakan untuk menyinkronkan jam komputer dan kami akan menggunakan server tersebut untuk mendapatkan waktu dalam proyek kami.
Langkah 1: Hal-hal yang Anda Butuhkan



untuk proyek ini Anda akan membutuhkan hal-hal berikut:
Esp8266/nodemcu
ssd1306 lama 0.96"
Kabel jumper
Papan tempat memotong roti
Kabel USB
Langkah 2: Koneksi

Layar OLED 4-pin ini berkomunikasi dengan modul ESP8266 menggunakan protokol I2C, di bawah ini adalah diagram rangkaian dan tabel koneksi untuk menghubungkan pin OLED I2C dengan NodeMCU untuk menampilkan waktu Internet.
Langkah 3: Unduh Perpustakaan


Pastikan Anda mengunduh pustaka SD1306 di ide Arduino Anda seperti yang ditunjukkan pada gambar dan pastikan Anda juga memiliki pustaka Adafruit GFX, jika tidak maka instal kedua pustaka ini.
Di Arduino IDE Anda, buka pengelola Perpustakaan dan cari NTP dan cukup unduh pustaka klien NTP seperti yang saya unduh, lihat gambar untuk bantuan lebih lanjut.
Langkah 4: Apa itu NTP

NTP adalah salah satu Internet Protocol (IP) jaringan tertua untuk sinkronisasi jam antar jaringan komputer. Ini dirancang oleh David L. Mills dari University of Delaware pada tahun 1981. Protokol ini dapat digunakan untuk menyinkronkan banyak jaringan ke Coordinated Universal Time (UTC) dalam beberapa milidetik. UTC adalah standar waktu utama di mana dunia mengatur jam dan waktu. UTC tidak berubah dan bervariasi untuk lokasi geografis yang berbeda. NTP menggunakan UTC sebagai referensi waktu dan menyediakan waktu yang akurat dan tersinkronisasi di Internet.
NTP bekerja pada model client-server hierarkis. Model teratas memiliki jam referensi yang dikenal sebagai "stratum0" seperti jam atom, gelombang radio, GPS, GSM yang menerima waktu dari satelit. Server yang menerima waktu dari stratum0 disebut sebagai “stratum1” dan server yang menerima waktu dari stratum1 disebut “stratum2” dan seterusnya. Ini terus berlanjut dan akurasi waktu terus berkurang setelah setiap tahap. NTP secara otomatis memilih yang terbaik dari beberapa sumber waktu yang tersedia untuk disinkronkan yang menjadikannya protokol yang dapat toleran terhadap kesalahan. Jadi di sini, di proyek ini, kami mendapatkan waktu dari server NTP menggunakan ESP8266 NodeMCU dan menampilkannya di layar OLED. Jenis jam Internet yang sama ini dibuat dengan menggunakan ESP32 pada tutorial sebelumnya.
Langkah 5: Bagian Pengkodean

Untuk meminta tanggal dan waktu, inisialisasi klien waktu dengan alamat server NTP. Untuk akurasi yang lebih baik, pilih alamat server NTP yang dekat dengan wilayah geografis Anda. Di sini kami menggunakan "pool.ntp.org" yang memberikan server dari seluruh dunia. Jika Anda ingin memilih server dari Asia, Anda dapat menggunakan "asia.pool.ntp.org". timeClient juga mengambil offset waktu UTC dalam milidetik dari zona waktu Anda. Misalnya, offset UTC untuk India adalah +5:30 jadi kami mengonversi offset ini dalam milidetik yang sama dengan 5*60*60+30*60 = 1800.
Daerah. Offset waktu UTC (jam dan menit). Offset waktu UTC (detik)
INDIA +5:30 1800
LONDON 0:00. 0
NEW YORK -5:00 -18000
Silakan salin kode berikut & masukkan wifi & kata sandi Anda di kode & Masukkan offset waktu di kode lalu unggah ke papan esp8266 Anda.:
#include "NTPClient.h"#include "ESP8266WiFi.h" // menyediakan rutin Wi-Fi spesifik ESP8266 yang kami panggil untuk terhubung ke jaringan #include "WiFiUdp.h" //menangani pengiriman dan penerimaan paket UDP
#include "SPI.h" // SPI untuk menghubungkan OLED dengan NodeMCu
#sertakan "Adafruit_GFX.h"
#sertakan "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // Lebar tampilan OLED, dalam piksel
#define SCREEN_HEIGHT 64 // Tinggi tampilan OLED, dalam piksel
#define OLED_RESET -1
Tampilan Adafruit_SSD1306(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
constchar *ssid = "wifissid Anda";
const char *password = "password wifi anda";
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days={"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};
String tanggal_waktu; // Anda dapat menentukan kumpulan server waktu dan offset (dalam detik, dapat // diubah nanti dengan setTimeOffset()). Selain itu, Anda dapat menentukan interval // pembaruan (dalam milidetik, dapat diubah menggunakan setUpdateInterval()).
batalkan pengaturan()
{
Serial.begin(115200);
WiFi.begin(ssid, kata sandi);
sementara (WiFi.status() != WL_CONNECTED)
{
penundaan (500);
Serial.print(".");
}
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("Alokasi SSD1306 gagal"));
untuk(;;); // Jangan lanjutkan, loop selamanya
}
tampilan.clearDisplay();
display.setTextSize(2); // Menggambar teks skala 2X
display.setTextColor(PUTIH);
display.setCursor(5, 2);
display.println("SELAMAT DATANG DI");
display.println(" dapat diinstruksikan");
display.println("Proyek");
tampilan.tampilan();
penundaan(3000);
waktuKlien.mulai();
}
lingkaran kosong()
{
timeClient.update();
tampilan.clearDisplay();
Serial.println(timeClient.getFormattedTime());
display.setTextSize(2); // Menggambar teks skala 2X
display.setTextColor(BIRU);
display.setCursor(0, 2);
int jj = timeClient.getHours();
int mm = timeClient.getMinutes();
int ss = timeClient.getSeconds();
jika (jj>12)
{
hh=j-12;
display.print(hh);
tampilan.print(":");
display.print(mm);
tampilan.print(":");
display.print(ss);
display.println("PM");
}
lain
{
display.print(hh);
tampilan.print(":");
display.print(mm);
tampilan.print(":");
display.print(ss);
display.println("AM");
}
int hari = timeClient.getDay();
display.println("'"+arr_days[hari]+"'");
date_time = timeClient.getFormattedDate();
int index_date = date_time.indexOf("T");
String tanggal = date_time.substring(0, index_date);
Serial.println(tanggal);
tampilan.println(tanggal);
tampilan.tampilan();
// Menampilkan teks awal }
Langkah 6: Mendapatkan Tanggal & Waktu

jika Anda menghubungkan semuanya dengan benar dan Mengunggah kode dengan benar juga maka Anda akan dapat melihat jam ntp Anda berjalan di layar oled seperti milik saya yang berjalan di layar oled. Silakan lihat gambar untuk output.
Direkomendasikan:
ESP8266 OLED - Dapatkan Waktu dan Tanggal Dari Internet: 8 Langkah

ESP8266 OLED - Dapatkan Waktu dan Tanggal Dari Internet: Dalam tutorial ini kita akan belajar cara mendapatkan tanggal dan waktu dari server NIST TIME menggunakan ESP8266 OLED dan Visuino,Tonton video demonstrasi
Dapatkan Waktu dan Tanggal Dari Internet - Tutorial: 9 Langkah

Dapatkan Waktu dan Tanggal Dari Internet - Tutorial: Dalam tutorial ini kita akan belajar cara mendapatkan tanggal dan waktu dari server NIST TIME menggunakan M5Stack StickC dan Visuino,Tonton video demonstrasi
Mendapatkan Waktu Dari Internet Menggunakan ESP8266 - Proyek Jam NTP Dengan ESP8266 Nodemcu: 5 Langkah

Mendapatkan Waktu Dari Internet Menggunakan ESP8266 | Proyek Jam NTP Dengan ESP8266 Nodemcu: Dalam tutorial ini kita akan melihat bagaimana mendapatkan waktu menggunakan ESP8266/nodemcu dengan Arduino IDE. Mendapatkan waktu sangat berguna dalam pencatatan data untuk menandai waktu pembacaan Anda. Jika proyek ESP8266 Anda memiliki akses ke Internet, Anda bisa mendapatkan waktu menggunakan Network T
Jam Jaringan ESP8266 Tanpa RTC - Nodemcu NTP Jam Tidak Ada RTC - PROYEK JAM INTERNET: 4 Langkah

Jam Jaringan ESP8266 Tanpa RTC | Nodemcu NTP Jam Tidak Ada RTC | INTERNET CLOCK PROJECT : Pada project ini akan dibuat project clock tanpa RTC, akan memakan waktu dari internet menggunakan wifi dan akan ditampilkan pada layar st7735
Mendorong Tanggal dan Waktu ke Aplikasi Blynk Menggunakan Wemos D1 Mini Pro: 10 Langkah

Mendorong Tanggal dan Waktu ke Aplikasi Blynk Menggunakan Wemos D1 Mini Pro: Kami akan menggunakan Wemos D1 Mini Pro untuk mendorong waktu & tanggal ke Aplikasi Blynk. Anda tidak perlu menghubungkan komponen apa pun ke Wemos D1 Mini Pro untuk aktivitas ini