Isi kandungan:
- Langkah 1: Demonstrasi
- Langkah 2: Perhimpunan
- Langkah 3: Perhimpunan - Jadual
- Langkah 4: Adafruit GFX Library
- Langkah 5: Perpustakaan Adafruit ST7735
- Langkah 6: Perpustakaan Pelanggan NTP
- Langkah 7: ESP32_NTP.ino
- Langkah 8: Fail
Video: Jangan Buang Masa Anda: Gunakan NTP !: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Buat masa anda dikira! Ini adalah topik yang sering dibincangkan di kalangan pelanggan saya, dan atas sebab apa? Oleh kerana fakta ringkas dan sangat diperlukan bahawa apabila anda membuat pengecat data, dan untuk semua perkara yang melibatkan automasi, anda memerlukan masa yang tepat! Dan ada beberapa cara untuk mengukur masa: jam dengan bateri, RTC (Jam Waktu Sebenar), antara lain. Tetapi yang saya ingin tunjukkan hari ini (yang memberitahu tarikh, hari dalam seminggu, dan waktu) adalah NTP (Network Time Protocol), yang berada dalam talian. Dalam video ini, kami akan mendapatkan maklumat tarikh dan masa dalam talian, dan menunjukkan maklumat di paparan.
Langkah 1: Demonstrasi
Langkah 2: Perhimpunan
Langkah 3: Perhimpunan - Jadual
Langkah 4: Adafruit GFX Library
Dalam Arduino IDE, pergi ke Sketsa-> Sertakan Perpustakaan-> Urus Perpustakaan…
Pasang Adafruit GFX Library
Langkah 5: Perpustakaan Adafruit ST7735
Dalam Arduino IDE, pergi ke Sketsa-> Sertakan Perpustakaan-> Urus Perpustakaan…
Pasang Adafruit ST7735
Langkah 6: Perpustakaan Pelanggan NTP
Pergi ke https://github.com/taranais/NTPClient dan muat turun perpustakaan NTPClient yang diubahsuai taranais.
Buka zip dan masukkan folder di perpustakaan C: / Users / Documents / Arduino
Langkah 7: ESP32_NTP.ino
Merangkumi dan menentukan
#include #include // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Pinos do display #define DISPLAY_DC 12 // A0 #define DISPLAY_CS 13 // CS #tentukan DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define DISPLAY_RST 0 // Fuso Horário, no caso horário de verão de Brasília int timeZone = -2; // Struktur com os dados do dia e hora struct Tarikh {int dayOfWeek; int hari; int bulan; int tahun; jam int; minit int; sekejap int; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Objeto responsável por recuperar dados sobre horário NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL do servwer NTP timeZone * 3600, // Deslocamento do horário em relacão ao GMT 0 60000); // Intervalo entre verificações online // Nomes dos dias da semana char * dayOfWeekNames = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Paparkan paparan responsovel Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Persediaan
persediaan tidak sah () {Serial.begin (115200); persediaanDisplay (); sambungWiFi (); persediaanNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executada "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vamos pass, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
PersediaanNTP
batal setupNTP () {// Inicializa o client NTP ntpClient.begin (); // Kemas kini Espera pelo primeiro dalam talian Serial.println ("Menunggu kemas kini pertama"); sementara (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); kelewatan (500); } Bersiri.println (); Serial.println ("Kemas kini Pertama Selesai"); }
Tugas WifiConnection
// Tarefa que verifica se conexão caiu e tenta reconectarvoid wifiConnectionTask (void * param) {while (true) {// Lihat WiFi não está conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda konectarWiFi (); } // Delay de 100 ticks vTaskDelay (100); }}
Sambungkan Wi-Fi
batal connectWiFi () {Serial.println ("Menyambung"); // Troque pelo nome e senha da sua rede WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado sambil (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kelewatan (500); } Bersiri.println (); Serial.print ("Bersambung ke"); Serial.println (WiFi. SSID ()); }
PersediaanDisplay
batal setupDisplay () {display.initR (INITR_BLACKTAB); // Inicializa o display display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Coloca o kursor no começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (palsu); // Não pula linha automaticamente}
Gelung
gelung kosong () {// Recupera os dados sobre a data e horário Tarikh tarikh = getDate (); // Reset o kursor display.setCursor (0, 0); // Exibe os dados no display display.printf ("% s / n / n% s / n / n% 02d /% 02d /% d / n / n% 02d:% 02d:% 02d", WiFi. SSID ().c_str (), dayOfWeekNames [date.dayOfWeek], date.day, date.month, date.year, date.hours, date.minutes, date.seconds); kelewatan (100); }
Dapatkan Tarikh
Tarikh getDate () {// Recupera os dados de data e horário usando o client NTP char * strDate = (char *) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string for a struct Tarikh tarikh; sscanf (strDate, "% d-% d-% dT% d:% d:% dZ", & date.year, & date.month, & date.day, & date.hours, & date.minutes, & date.seconds); // Dia da semana de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); tarikh pemulangan; }
Langkah 8: Fail
Muat turun fail
INO
Disyorkan:
Memperbaiki Monitor Dengan Pembuat Roti: AKA Jangan Buang !: 5 Langkah (dengan Gambar)
Memperbaiki Monitor Dengan Pembuat Roti: AKA Don't Throw It !: Secara tempatan di Victoria, BC kita mempunyai seorang lelaki yang menggunakan peralatan IT yang dibuang tetapi boleh digunakan dan menyerahkannya semula kepada masyarakat secara percuma. Usahanya menjaga elektronik terpakai dari tempat pembuangan sampah dan membantu orang yang hebat. Saya mengambil
Jangan Beli Modul GSM, Gunakan Telefon Lama Anda !: 6 Langkah
Jangan Beli Modul GSM, Gunakan Telefon Lama Anda !: Jadi baru-baru ini saya telah melakukan banyak projek tanpa wayar, kebanyakannya berdasarkan modul Bluetooth tetapi sejak itu saya mahu meneruskan dan mula membuat SMS projek saya atau Panggilan telefon dikendalikan yang semudah itu dengan bantuan modul GSM
Jangan Buang Solder Jauh: 5 Langkah
Jangan Buang Solder Jauh: Simpan dan letakkan patung solder yang sejuk dengannya. Selamatkan semua petunjuk daripada mencemarkan alam sekitar. Ringkasnya, Go Green. Gambar menunjukkan hasil percubaan saya dalam melemparkan jongkong pateri: di dalam cetakan itu bertuliskan "petunjuk" tetapi sayangnya, s
Jangan Buang Telefon Kepala Buruk! Selesaikannya: 9 Langkah
Jangan Buang Telefon Kepala Buruk! Perbaiki Mereka: fon kepala saya hampir selalu pecah di tempat yang sama. alih-alih membuangnya dan mengeluarkan $ 10 atau $ 20 dolar untuk sepasang baru, saya membeli beberapa keping kecil dan membetulkan pasangan lama saya. ia tidak terlalu sukar jika anda mempunyai masa
Jangan Masukkan Pin Anda untuk Mel Suara Anda: 3 Langkah
Jangan Masukkan Pin Anda untuk Mel Suara Anda: Adakah anda bosan untuk memasukkan surat suara anda setiap kali anda memeriksa mel suara anda. Baiklah, jadi saya telah menemui muslihat untuk itu