Daftar Isi:
- Langkah 1: Demonstrasi
- Langkah 2: Perakitan
- Langkah 3: Perakitan - Tabel
- Langkah 4: Adafruit GFX Library
- Langkah 5: Perpustakaan Adafruit ST7735
- Langkah 6: Perpustakaan NTPClient
- Langkah 7: ESP32_NTP.ino
- Langkah 8: File
Video: Jangan Buang Waktu Anda: Gunakan NTP!: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Hitung waktu Anda! Ini adalah topik yang sering dibahas di antara pelanggan saya, dan untuk alasan apa? Karena fakta sederhana dan tak tergantikan bahwa ketika Anda membuat datalogger, dan untuk semua yang melibatkan otomatisasi, Anda memerlukan waktu yang tepat! Dan ada beberapa cara untuk mengukur waktu: jam dengan baterai, RTC (Real Time Clock), antara lain. Tapi yang ingin saya tunjukkan hari ini (yang menginformasikan tanggal, hari dalam seminggu, dan waktu) adalah NTP (Network Time Protocol), yang sedang online. Dalam video ini, kami akan mengambil informasi tanggal dan waktu secara online, dan menampilkan informasi di layar.
Langkah 1: Demonstrasi
Langkah 2: Perakitan
Langkah 3: Perakitan - Tabel
Langkah 4: Adafruit GFX Library
Di Arduino IDE, buka Sketch->Include Library->Manage Libraries …
Instal Perpustakaan Adafruit GFX
Langkah 5: Perpustakaan Adafruit ST7735
Di Arduino IDE, buka Sketch->Include Library->Manage Libraries…
Instal Adafruit ST7735
Langkah 6: Perpustakaan NTPClient
Buka https://github.com/taranais/NTPClient dan unduh pustaka NTPClient yang dimodifikasi taranais.
Buka zip dan letakkan folder di C:\Users\Documents\Arduino\libraries
Langkah 7: ESP32_NTP.ino
Termasuk dan mendefinisikan
#include #include //Biblioteca NTPClient modificada #include //Socket UDP #include //Display #include //Display #include //Pino do display #define DISPLAY_DC 12 //A0 #define DISPLAY_CS 13 //CS #define DISPLAY_MOSI 14 //SDA #define DISPLAY_CLK 27 //SCK #define DISPLAY_RST 0 //Fuso Horário, tanpa batas waktu int timeZone = -2; //Struct com os dados do dia e hora struct Tanggal{ int dayOfWeek; hari int; int bulan; int tahun; int jam; int menit; int detik; }; //Socket UDP untuk 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); //Interval entre verificações online //Nomes dos dias da semana char* dayOfWeekNames = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"}; //Objeto respon pelo tampilan Adafruit_ST7735 display = Adafruit_ST7735(DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Mempersiapkan
void setup(){ Serial.begin(115200); setupTampilan(); sambungkan WiFi(); setupNTP(); //Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore(wifiConnectionTask, //Função que será executada "wifiConnectionTask", //Nome da tarefa 10000, //Tamanho da memoria disponível (em WORDs) NULL, //Não vamos passar 2, //prioridade NULL, //Não precisamos de referência para a tarefa 0); //Número lakukan inti }
SetupNTP
void setupNTP(){ //Inisialisasi klien NTP ntpClient.begin(); //Espera pelo primeiro update online Serial.println("Menunggu update pertama"); while(!ntpClient.update()) { Serial.print("."); ntpClient.forceUpdate(); penundaan (500); } Serial.println(); Serial.println("Pembaruan Pertama Selesai"); }
Tugas Koneksi Wifi
//Tarefa que verifica se a conexão caiu dan tenta reconectarvoid wifiConnectionTask(void* param) { while(true) { //Se a WiFi não está conectada if(WiFi.status() != WL_CONNECTED) { //Manda conectar connectWiFi(); } //Delay de 100 tick vTaskDelay(100); } }
Hubungkan WiFi
void connectWiFi(){ Serial.println("Menghubungkan"); //Troque pelo nome e senha da sua rede WiFi WiFi.begin("SSID", "12345678"); //Espera enquanto não estiver conectado while(WiFi.status() != WL_CONNECTED) { Serial.print("."); penundaan (500); } Serial.println(); Serial.print("Terhubung ke "); Serial.println(WiFi. SSID()); }
Tampilan Pengaturan
void setupDisplay(){ display.initR(INITR_BLACKTAB); //Inisialisasi tampilan display.setRotation(3); //Rotaciona display.setTextSize(2); //Tamanho melakukan texto display.fillScreen(ST77XX_BLACK); //Preenche com a cor preta display.setCursor(0, 0); //Coloca atau kursor tidak ada tampilan.setTextColor(ST77XX_WHITE, ST77XX_BLACK); //Texto branco com fundo preto display.setTextWrap(false); //No pula linha automaticamente }
Lingkaran
void loop(){ //Memulihkan data dan data terbaru Date date = getDate(); //Reset atau tampilan kursor.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); penundaan(100); }
DapatkanTanggal
Tanggal getDate(){ //Memulihkan data dan data terbaru dari klien NTP char* strDate = (char*)ntpClient.getFormattedDate().c_str(); //Passa os dados da string untuk struct Tanggal tanggal; sscanf(strTanggal, "%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(); tanggal pengembalian; }
Langkah 8: File
Unduh file
SAYA TIDAK
Direkomendasikan:
Memperbaiki Monitor Dengan Pembuat Roti: AKA Jangan Buang!: 5 Langkah (dengan Gambar)
Memperbaiki Monitor Dengan Pembuat Roti: AKA Don't Throw It Out!: Secara lokal di Victoria, BC kami memiliki seorang pria yang mengambil peralatan IT yang dibuang tetapi dapat digunakan dan menyerahkannya kembali ke komunitas secara gratis. Upayanya menjaga barang elektronik bekas dari tempat pembuangan sampah dan membantu orang keluar adalah hal yang luar biasa. Saya mengambil sebuah
Jangan Beli Modul GSM, Gunakan Ponsel Lama Anda!: 6 Langkah
Jangan Beli Modul GSM, Gunakan Ponsel Lama Anda!: Jadi baru-baru ini saya telah melakukan banyak proyek nirkabel, sebagian besar berbasis di sekitar modul Bluetooth tetapi sejak itu saya ingin melanjutkan dan mulai membuat proyek saya SMS atau Panggilan telepon dikendalikan yang hampir sama mudahnya dengan bantuan modul GSM
Jangan Buang Solder: 5 Langkah
Jangan Buang Solder: Simpan, dan lemparkan patung solder keren dengannya. Selamatkan semua timbal dari pencemaran lingkungan. Singkatnya, Go Green. Gambar menunjukkan hasil percobaan saya dalam casting ingot solder: di dalam cetakan tertulis "instructables" tapi sayangnya, s
Jangan Buang Telepon Kepala Buruk! Perbaiki Mereka.: 9 Langkah
Jangan Buang Telepon Kepala Buruk! Perbaiki Mereka.: headphone saya hampir selalu rusak di tempat yang sama. alih-alih membuangnya dan mengeluarkan $ 10 atau $ 20 untuk sepasang baru, saya membeli beberapa potong kecil dan memperbaiki pasangan lama saya. itu tidak terlalu sulit jika Anda punya waktu
Jangan Pernah Masukkan Pin Anda untuk Pesan Suara Anda: 3 Langkah
Jangan Pernah Memasukkan Pin Anda untuk Pesan Suara Anda: Apakah Anda lelah karena harus memasukkan pesan suara Anda setiap kali Anda memeriksa pesan suara Anda. Yah saya jadi saya telah menemukan trik untuk itu