Мазмуну:

Убактыңызды текке кетирбеңиз: NTPти колдонуңуз !: 8 кадам
Убактыңызды текке кетирбеңиз: NTPти колдонуңуз !: 8 кадам

Video: Убактыңызды текке кетирбеңиз: NTPти колдонуңуз !: 8 кадам

Video: Убактыңызды текке кетирбеңиз: NTPти колдонуңуз !: 8 кадам
Video: ДЕЙС БІРДІҢ СІЗГЕ 10 000 000 000 ДОЛЛАР БЕРГІСІ КЕЛЕДІ ДЕЙДІ, СІЗ ТЕЗ ШЫҒАСЫНЫЗ! 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 #define DISPLAY_CS 13 // CS #disfine DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define DISPLAY_RST 0 // Fuso Horário, no caso horário de verão de brãília int timeZone = -2; // Struct com os dados do dia e hora struct Date {int dayOfWeek; int күнү; int ай; int year; int hours; int мүнөт; int seconds; }; // Socket UDP колдонмосу WiFiUDP колдонмосун колдонуу менен; NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL 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 = {"Жекшемби", "Дүйшөмбү", "Шейшемби", "Шаршемби", "Бейшемби", "Жума", "Ишемби"}}; // Объекттин жооптору Alofruit_ST7735 дисплейи = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Жайгашуу

void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vare, // Priorityade NULL, // Тарифтер үчүн шарттар 0); // Número do core}

NNT орнотуу

жараксыз орнотууNTP () {// Кардар NTP ntpClient.begin (); // Эспера жаңыртуусу онлайн Serial.println ("Биринчи жаңыртуу күтүлүүдө"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); кечигүү (500); } Serial.println (); Serial.println ("Биринчи жаңыртуу аяктады"); }

WifiConnectionTask

// WifiConnectionTask (жараксыз* парам) {качан (чындык) {// Wi -Fi байланышын көрүү (WiFi.status ()! = WL_CONNECTED) {// Контектар туташууWiFi (); } // Кечиктирүү 100 кене vTaskDelay (100); }}

ConnectWiFi

жараксыз connectWiFi () {Serial.println ("Туташуу"); // Wi -Fi 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 ()); }

SetupDisplay

void setupDisplay () {display.initR (INITR_BLACKTAB); // Көрсөтүү Display.setRotation (3); // Rotaciona display.setTextSize (2); // Таманхо текст жазууну көрсөтөт.fillScreen (ST77XX_BLACK); // Алдын ала көрсөтүү Display.setCursor (0, 0); // Coloca же cursor comecho display.setTextColor жок (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (жалган); // Não pula linha автоматтык түрдө}

Loop

void loop () {// Recupera os dados sobre a data e horário Date Date = getDate (); // Reset o cursor display.setCursor (0, 0); // 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

Күн 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

Сунушталууда: