Isi kandungan:
- Langkah 1: Perkara yang Anda Perlu
- Langkah 2: Sambungan
- Langkah 3: Muat turun Perpustakaan
- Langkah 4: Apa itu NTP
- Langkah 5: Bahagian Pengekodan
- Langkah 6: Mendapatkan Tarikh & Masa
Video: Jam Internet: Tarikh dan Masa Paparan Dengan OLED Menggunakan ESP8266 NodeMCU Dengan Protokol NTP: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Hai kawan-kawan dalam instruksional ini kita akan membina jam internet yang akan mendapat masa dari internet sehingga projek ini tidak memerlukan RTC untuk dijalankan, ia hanya memerlukan sambungan internet yang berfungsi
Dan untuk projek ini, anda memerlukan esp8266 yang akan mempunyai wifi untuk mendapatkan akses internet dan paparan untuk memaparkan waktu di dalamnya dan esp8266 akan mengambil masa dari internet menggunakan protokol NTP, ntp bermaksud protokol masa rangkaian, jadi pada dasarnya terdapat pelayan ntp di web yang digunakan untuk menyegerakkan jam komputer dan kami akan menggunakan pelayan tersebut untuk mendapatkan masa dalam projek kami.
Langkah 1: Perkara yang Anda Perlu
untuk projek ini, anda memerlukan perkara berikut:
Esp8266 / nodemcu
Oled ssd1306 0.96"
Wayar pelompat
Papan roti
Wayar USB
Langkah 2: Sambungan
Paparan OLED 4-pin ini berkomunikasi dengan modul ESP8266 menggunakan protokol I2C, di bawah adalah rajah litar dan jadual sambungan untuk menyambungkan pin OLED I2C dengan NodeMCU untuk memaparkan waktu Internet.
Langkah 3: Muat turun Perpustakaan
Pastikan anda memuat turun perpustakaan SD1306 dalam idea Arduino Anda seperti yang ditunjukkan dalam gambar dan pastikan anda juga Adafruit GFX library, jika tidak kemudian pasangkan kedua perpustakaan ini.
Dalam IDE Arduino anda, pergi ke pengurus Perpustakaan dan cari NTP dan muat turun pustaka pelanggan NTP seperti yang saya muat turun, rujuk gambar untuk bantuan lebih lanjut.
Langkah 4: Apa itu NTP
NTP adalah salah satu protokol Internet rangkaian tertua (IP) untuk menyegerakkan jam antara rangkaian komputer. Ia dirancang oleh David L. Mills dari University of Delaware pada tahun 1981. Protokol ini dapat digunakan untuk menyegerakkan banyak rangkaian ke Waktu Universal Terpadu (UTC) dalam beberapa milisaat. UTC adalah standard waktu utama di mana dunia mengatur jam dan waktu. UTC tidak berubah dan berbeza untuk lokasi geografi yang berbeza. NTP menggunakan UTC sebagai rujukan waktu dan memberikan masa yang tepat dan segerak di Internet.
NTP berfungsi pada model pelayan pelanggan hierarki. Model teratas mempunyai jam rujukan yang dikenal sebagai "stratum0" seperti jam atom, gelombang radio, GPS, GSM yang menerima masa dari satelit. Pelayan yang menerima masa dari stratum0 disebut sebagai "stratum1" dan pelayan yang menerima masa dari stratum1 disebut "stratum2" dan sebagainya. Ini berterusan dan ketepatan masa terus menurun selepas setiap peringkat. NTP secara automatik memilih yang terbaik dari beberapa sumber masa yang ada untuk diselaraskan yang menjadikannya protokol yang boleh bertolak ansur. Jadi di sini dalam projek ini, kami mendapat masa dari pelayan NTP menggunakan ESP8266 NodeMCU dan menunjukkannya pada paparan OLED. Jam Internet yang serupa ini dibina dengan menggunakan ESP32 dalam tutorial sebelumnya.
Langkah 5: Bahagian Pengekodan
Untuk meminta tarikh dan waktu, mulakan pelanggan waktu dengan alamat pelayan NTP. Untuk ketepatan yang lebih baik, pilih alamat pelayan NTP yang berdekatan dengan kawasan geografi anda. Di sini kita menggunakan "pool.ntp.org" yang memberikan pelayan dari seluruh dunia. Sekiranya anda ingin memilih pelayan dari Asia, anda boleh menggunakan "asia.pool.ntp.org". timeClient juga mengambil pengimbangan masa UTC dalam milisaat zon waktu anda. Contohnya, pengimbangan UTC untuk India ialah +5: 30 jadi kami menukar offset ini dalam milisaat yang sama dengan 5 * 60 * 60 + 30 * 60 = 19800.
Kawasan. Pengimbangan masa UTC (jam dan minit). Pengimbangan masa UTC (saat)
INDIA +5: 30 19800
LONDON 0:00. 0
NEW YORK -5: 00 -18000
Sila salin kod berikut & masukkan wifi & kata laluan anda dalam kod & Masukkan pengimbangan waktu dalam kod kemudian muat naik ke papan esp8266 anda.:
#include "NTPClient.h" #include "ESP8266WiFi.h" // menyediakan rutin Wi-Fi khusus ESP8266 yang kami panggil untuk menyambung ke rangkaian #masuk "WiFiUdp.h" // menangani pengiriman dan penerimaan pakej UDP
#termasuk "SPI.h" // SPI untuk menghubungkan OLED dengan NodeMCu
#sertakan "Adafruit_GFX.h"
#sertakan "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // Lebar paparan OLED, dalam piksel
#define SCREEN_HEIGHT 64 // Tinggi paparan OLED, dalam piksel
#tentukan OLED_RESET -1
Paparan Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
constchar * ssid = "yourwifissid";
const char * kata laluan = "yourwifipass";
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days = {"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"};
Date_time rentetan; // Anda boleh menentukan kumpulan pelayan masa dan offset (dalam beberapa saat, boleh // diubah kemudian dengan setTimeOffset ()). Anda juga boleh menentukan // selang kemas kini (dalam milisaat, boleh diubah menggunakan setUpdateInterval ()).
persediaan tidak sah ()
{
Serial.begin (115200);
WiFi.begin (ssid, kata laluan);
semasa (WiFi.status ()! = WL_CONNECTED)
{
kelewatan (500);
Cetakan bersiri (".");
}
jika (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("peruntukan SSD1306 gagal"));
untuk (;;); // Jangan teruskan, gelung selamanya
}
display.clearDisplay ();
display.setTextSize (2); // Lukis teks berskala 2X
display.setTextColor (PUTIH);
display.setCursor (5, 2);
display.println ("SELAMAT DATANG");
display.println ("instruksional");
display.println ("Projek");
paparan.display ();
kelewatan (3000);
timeClient.begin ();
}
gelung kosong ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // Lukis teks berskala 2X
display.setTextColor (BIRU);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
jika (jam> 12)
{
hh = hh-12;
display.print (hh);
display.print (":");
paparan.cetakan (mm);
display.print (":");
display.print (ss);
display.println ("PM");
}
yang lain
{
display.print (hh);
display.print (":");
paparan.cetakan (mm);
display.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");
Tali rentetan = date_time.substring (0, index_date);
Serial.println (tarikh);
display.println (tarikh);
paparan.display ();
// Tunjukkan teks awal}
Langkah 6: Mendapatkan Tarikh & Masa
jika anda menyambungkan semuanya dengan betul dan Memuat naik kod dengan betul juga, anda akan dapat melihat jam ntp anda berjalan pada paparan oled sebagai milik saya dalam berjalan di paparan oled. Sila rujuk gambar untuk output.
Disyorkan:
ESP8266 OLED - Dapatkan Masa dan Tarikh Dari Internet: 8 Langkah
ESP8266 OLED - Dapatkan Masa dan Tarikh Dari Internet: Dalam tutorial ini kita akan belajar bagaimana mendapatkan tarikh dan masa dari pelayan NIST TIME menggunakan ESP8266 OLED dan Visuino, Tonton video demonstrasi
Mendapatkan Masa Dari Internet Menggunakan ESP8266 - Projek Jam NTP Dengan ESP8266 Nodemcu: 5 Langkah
Mendapatkan Masa Dari Internet Menggunakan ESP8266 | Projek Jam NTP Dengan Nodemcu ESP8266: Dalam tutorial ini kita akan melihat bagaimana mendapatkan masa menggunakan ESP8266 / nodemcu dengan Arduino IDE. Mendapatkan masa sangat berguna dalam pencatatan data untuk menetapkan masa pembacaan anda. Sekiranya projek ESP8266 anda mempunyai akses ke Internet, anda boleh mendapatkan masa menggunakan Rangkaian
Jam Rangkaian ESP8266 Tanpa RTC - Jam NTP Nodemcu Tiada RTC - PROJEK JAM INTERNET: 4 Langkah
Jam Rangkaian ESP8266 Tanpa RTC | Jam NTP Nodemcu Tiada RTC | PROJEK JAM INTERNET: Dalam projek ini akan membuat projek jam tanpa RTC, akan memakan masa dari internet menggunakan wifi dan akan memaparkannya pada paparan st7735
Paparan Tarikh, Masa & Suhu Menggunakan XinaBox: 8 Langkah
Paparan Tarikh, Masa & Suhu Menggunakan XinaBox: Paparan OLED sejuk yang menunjukkan tarikh, waktu dan suhu dalam Celsius dan Fahrenheit menggunakan Xinabox xChips berdasarkan ESP8266
Unit Paparan Tarikh, Masa dan Suhu yang Comel: 3 Langkah
Unit Paparan Tarikh, Masa dan Suhu yang Comel: Hai rakan-rakan, Dalam arahan ini, saya akan menerangkan prosedur untuk membuat unit paparan suhu tarikh, masa dan semasa dengan menggunakan, Arduino pro mini, RTC dan paparan lapan digit tujuh segmen dalam unit yang sangat padat, yang merupakan