Мазмұны:

Уақытты босқа өткізбеңіз: NTP қолданыңыз!: 8 қадам
Уақытты босқа өткізбеңіз: NTP қолданыңыз!: 8 қадам

Бейне: Уақытты босқа өткізбеңіз: NTP қолданыңыз!: 8 қадам

Бейне: Уақытты босқа өткізбеңіз: NTP қолданыңыз!: 8 қадам
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Қараша
Anonim
Image
Image

Уақытыңызды есептеңіз! Бұл менің жазылушыларым арасында жиі талқыланатын тақырып және неге? Қарапайым және қажетсіз фактінің арқасында, егер сіз деректерді есептегіш құрсаңыз және автоматтандырумен байланысты барлық нәрсе үшін сізге дұрыс уақыт қажет! Уақытты өлшеудің бірнеше әдісі бар: аккумуляторлы сағат, RTC (Real Time Clock) және басқалары. Бірақ мен бүгін сізге көрсеткім келетіні (ол күнді, аптаның күнін және уақытын көрсетеді) - желіде орналасқан NTP (Network Time Protocol). Бұл бейнеде біз желіде күн мен уақыт туралы ақпаратты аламыз және ақпаратты дисплейде көрсетеміз.

1 -қадам: демонстрация

Ассамблея
Ассамблея

2 -қадам: құрастыру

3 -қадам: Ассамблея - Кесте

Құрастыру - кесте
Құрастыру - кесте

4 -қадам: Adafruit GFX кітапханасы

Adafruit GFX кітапханасы
Adafruit GFX кітапханасы

Arduino IDE-де Sketch-> Кітапхананы қосу-> Кітапханаларды басқару бөліміне өтіңіз.

Adafruit GFX кітапханасын орнатыңыз

5 -қадам: Adafruit ST7735 кітапханасы

Adafruit ST7735 кітапханасы
Adafruit ST7735 кітапханасы

Arduino IDE-де Sketch-> Кітапхананы қосу-> Кітапханаларды басқару бөліміне өтіңіз.

Adafruit ST7735 орнатыңыз

6 -қадам: NTPClient кітапханасы

NTPClient кітапханасы
NTPClient кітапханасы

Https://github.com/taranais/NTPClient сайтына өтіп, taranais өзгертілген NTPClient кітапханасын жүктеңіз.

Ашыңыз және қалтаны C: / Users / Documents / Arduino / кітапханаларына қойыңыз

7 -қадам: ESP32_NTP.ino

Қосады және анықтайды

#include #include // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Pinos do display #deine DISPLAY_DC 12 // A0 #dineine DISPLAY_CS 13 // CS #DISPLAY_MOSI 14 анықтаңыз // SDA #dinefine DISPLAY_CLK 27 // SCK #disine DISPLAY_RST 0 // Fuso Horário, brasília de time de Zone = -2; // Құрылыстың негізі: {int dayOfWeek; int күні; int айы; int жылы; int сағаты; int минуттары; int секунд; }; // UDP ұялы байланысы WiFiUDP бағдарламасын жаңарту үшін қажет; // NTPClient ntpClient (udp, // socket udp «0.br.pool.ntp.org», // URL мекенжайы NTP уақыт белдеуінің*3600, // GMT 0 мекенжайлары) 60000); // Интернетте интерфейс онлайн режимінде // Nomes dos dias da semana char* dayOfWeekNames = {«Жексенбі», «Дүйсенбі», «Сейсенбі», «Сәрсенбі», «Бейсенбі», «Жұма», «Сенбі»}}; // Objeto Respável pelo дисплейі Adafruit_ST7735 дисплейі = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Орнату

void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); NTP орнату (); // Негізгі функция жоқ 0 xTaskCreatePinnedToCore (wifiConnectionTask, // «wifiConnectionTask» функциясы, // 10000 номері, // Таманхо да мемориация дисплейі (em WORDs) NULL параметрі, 2 параметрі жоқ, // Priorityade NULL, // Nareo precisamos de referência a tarife 0); // ядролық жұмыс}

NNT орнату

жарамсыз баптауNTP () {// NTP клиентінің ntpClient.begin (); // Espera pelo primeiro онлайн жаңарту Serial.println («Бірінші жаңартуды күтуде»); while (! ntpClient.update ()) {Serial.print («.»); ntpClient.forceUpdate (); кешіктіру (500); } Serial.println (); Serial.println («Бірінші жаңарту аяқталды»); }

WifiConnectionTask

// wifiConnectionTask (void* param) {уақытша (шындық) {// егер Wi -Fi байланысы бар болса (WiFi.status ()! WL_CONNECTED) {// байланыстарға қосылу Wi -Fi (); } // 100 кенені кешіктіру vTaskDelay (100); }}

Wi -Fi желісіне қосылу

жарамсыз connectWiFi () {Serial.println («Қосылу»); // WiFi WiFi.begin («SSID», «12345678»); // Espera enquanto não estiver conectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print («.»); кешіктіру (500); } Serial.println (); Serial.print («Қосылды»); Serial.println (WiFi. SSID ()); }

Орнату Дисплей

void setupDisplay () {display.initR (INITR_BLACKTAB); // Дисплейді көрсету.setRotation (3); // Rotaciona display.setTextSize (2); // Тамано мәтінді көрсету.fillScreen (ST77XX_BLACK); // Preenche com немесе preta display.setCursor (0, 0); // Coloca немесе меңзер келмегенде display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (жалған); // Não pula linha автоматтандырылған}

Цикл

void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Reseta o cursor display.setCursor (0, 0); // Exibe os dados 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); кешіктіру (100); }

GetDate

Күн getDate () {// Клиент NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Құрылыстың күнін анықтау; 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 (); қайтару күні; }

8 -қадам: файлдар

Файлдарды жүктеңіз

МЕН ЖОҚ

PDF

Ұсынылған: