ዝርዝር ሁኔታ:

ጊዜዎን አያባክኑ - NTP ን ይጠቀሙ !: 8 ደረጃዎች
ጊዜዎን አያባክኑ - NTP ን ይጠቀሙ !: 8 ደረጃዎች

ቪዲዮ: ጊዜዎን አያባክኑ - NTP ን ይጠቀሙ !: 8 ደረጃዎች

ቪዲዮ: ጊዜዎን አያባክኑ - NTP ን ይጠቀሙ !: 8 ደረጃዎች
ቪዲዮ: ጊዜዎን አያባክኑ! ጊዜዎን እያባከኑ ነው ማለት ህይወቶን እያባከኑ ነው ማለት ነው። 2024, ሀምሌ
Anonim
Image
Image

ጊዜዎን ይቆጥሩ! ይህ በደንበኞቼ መካከል በተደጋጋሚ የሚነገር ርዕስ ነው ፣ እና በምን ምክንያት? በቀላል እና አስፈላጊ ባልሆነ እውነታ ምክንያት የውሂብ መዝጋቢ ሲያደርጉ እና አውቶማቲክን ለሚመለከቱት ሁሉ ትክክለኛውን ጊዜ ያስፈልግዎታል! እና ጊዜን ለመለካት በርካታ መንገዶች አሉ -ሰዓት በባትሪ ፣ RTC (የእውነተኛ ሰዓት ሰዓት) ፣ ከሌሎች ጋር። ግን ዛሬ ላሳይዎት የምፈልገው (ቀንን ፣ የሳምንቱን ቀን እና ጊዜን ያሳውቃል) በመስመር ላይ ያለው NTP (የአውታረ መረብ ጊዜ ፕሮቶኮል) ነው። በዚህ ቪዲዮ ውስጥ የቀን እና የሰዓት መረጃን በመስመር ላይ እናመጣለን ፣ እና በማሳያው ላይ ያለውን መረጃ እናሳያለን።

ደረጃ 1 - ሰልፍ

ስብሰባ
ስብሰባ

ደረጃ 2 - ስብሰባ

ደረጃ 3 - ስብሰባ - ሠንጠረዥ

ስብሰባ - ሠንጠረዥ
ስብሰባ - ሠንጠረዥ

ደረጃ 4: Adafruit GFX ቤተ -መጽሐፍት

Adafruit GFX ቤተ -መጽሐፍት
Adafruit GFX ቤተ -መጽሐፍት

በአርዱዲኖ አይዲኢ ውስጥ ወደ Sketch-> ቤተ-መጽሐፍትን አካትት-> ቤተ-መጽሐፍቶችን ያቀናብሩ…

Adafruit GFX ቤተ -መጽሐፍትን ይጫኑ

ደረጃ 5: Adafruit ST7735 ቤተ -መጽሐፍት

Adafruit ST7735 ቤተ -መጽሐፍት
Adafruit ST7735 ቤተ -መጽሐፍት

በ Arduino IDE ውስጥ ወደ Sketch-> ቤተ-መጽሐፍትን አካትት-> ቤተ-መጽሐፍቶችን ያቀናብሩ…

Adafruit ST7735 ን ይጫኑ

ደረጃ 6: NTPClient Library

NTPClient ቤተ -መጽሐፍት
NTPClient ቤተ -መጽሐፍት

ወደ https://github.com/taranais/NTPClient ይሂዱ እና ታራናይስ የተቀየረውን የ NTPClient ቤተ-መጽሐፍትን ያውርዱ።

ይንቀሉ እና አቃፊውን በ C: / Users / ሰነዶች / Arduino / libraries ውስጥ ያስቀምጡ

ደረጃ 7: ESP32_NTP.ino

ያካትታል እና ይገልጻል

#ያካትቱ #ያካትቱ // Biblioteca NTPClient modificada #ያካትቱ // የሶኬት ዩዲፒ #አካታች // ማሳያ #አካትት /ማሳያ #ያካትቱ // ፒኖዎች ያሳዩ #ገላጭ DISPLAY_DC 12 // A0 #ገላጭ ማሳያ /CSS 13 // CS #ገላጭ DISPLAY_MOSI 14 // SDA #ገላጭ DISPLAY_CLK 27 // SCK #define DISPLAY_RST 0 // Fuso Horário, no caso horário de verão de Brasília int timeZone = -2; // St com com dad dados do dia e hora struct ቀን {int dayOfWeek; int ቀን; int ወር; በዓመት ውስጥ; int ሰዓታት ውስጥ; int ደቂቃዎች; 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 = {"እሁድ" ፣ "ሰኞ" ፣ "ማክሰኞ" ፣ "ረቡዕ" ፣ "ሐሙስ" ፣ "አርብ" ፣ "ቅዳሜ"}; // Objeto responsável pelo display Adafruit_ST7735 ማሳያ = Adafruit_ST7735 (DISPLAY_CS ፣ DISPLAY_DC ፣ DISPLAY_MOSI ፣ DISPLAY_CLK ፣ DISPLAY_RST) ፤

አዘገጃጀት

ባዶነት ማዋቀር () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // 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, pass Não vam, // prioridade NULL ፣ // Não precisamos de referência para a tarefa 0); // ኑሜሮ ዶ ኮር}

SetupNTP

ባዶነት ማዋቀርNTP () {// Inicializa o client NTP ntpClient.begin (); // Espera pelo primeiro ዝመናን በመስመር ላይ Serial.println (“የመጀመሪያውን ዝመና በመጠበቅ ላይ”); ሳለ (! ntpClient.update ()) {Serial.print (".")); ntpClient.forceUpdate (); መዘግየት (500); } Serial.println (); Serial.println ("የመጀመሪያው ዝማኔ ተጠናቋል"); }

WifiConnectionTask

// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void* param) {while (true) {// ዋይፋይ não está conectada ከሆነ (WiFi.status ()! = WL_CONNECTED) {// ማንዳ ኮንቴክታር ዋይፋይ (); } // መዘግየት ደ 100 መዥገሮች vTaskDelay (100); }}

ConnectWiFi

ባዶነት connectWiFi () {Serial.println («ማገናኘት»); // Troque pelo nome e senha da sua rede WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado ሳለ (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); መዘግየት (500); } Serial.println (); Serial.print ("ተገናኝቷል"); Serial.println (WiFi. SSID ()); }

SetupDisplay

ባዶነት ማዋቀር ማሳያ () {display.initR (INITR_BLACKTAB) ፤ // Inicializa o ማሳያ ማሳያ.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // ኮሎካ ወይም ጠቋሚው ምንም começo display.setTextColor (ST77XX_WHITE ፣ ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (ሐሰተኛ); // Não pula linha automaticamente}

ሉፕ

ባዶነት loop () {// Recupera os dados sobre a data e horário ቀን ቀን = getDate (); // ዳግም ማስነሻ ወይም ጠቋሚ ማሳያ። // Exibe os dados ምንም ማሳያ 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 () {// Recupera os dados de data e horário usando o client NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a struct ቀን ቀን; 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 - ፋይሎች

ፋይሎቹን ያውርዱ

INO

ፒዲኤፍ

የሚመከር: