فهرست مطالب:

وقت خود را هدر ندهید: از NTP استفاده کنید!: 8 مرحله
وقت خود را هدر ندهید: از NTP استفاده کنید!: 8 مرحله

تصویری: وقت خود را هدر ندهید: از NTP استفاده کنید!: 8 مرحله

تصویری: وقت خود را هدر ندهید: از NTP استفاده کنید!: 8 مرحله
تصویری: How to control DC motors using ESP32 and L298N over WiFi 2024, جولای
Anonim
Image
Image

زمان خود را حساب کنید! این موضوعی است که اغلب در میان مشترکین من مورد بحث قرار می گیرد و به چه دلیلی؟ با توجه به این واقعیت ساده و ضروری که هنگام تهیه دیتاگرامر و برای همه چیز شامل اتوماسیون ، به زمان صحیح نیاز دارید! و روشهای مختلفی برای اندازه گیری زمان وجود دارد: ساعت با باتری ، RTC (ساعت زمان واقعی) ، و سایر روشها. اما چیزی که امروز می خواهم به شما نشان دهم (که تاریخ ، روز هفته و زمان را اطلاع می دهد) NTP (پروتکل زمان شبکه) است که آنلاین است. در این ویدیو ، اطلاعات تاریخ و زمان را به صورت آنلاین بازیابی کرده و اطلاعات را روی صفحه نمایش می دهیم.

مرحله 1: تظاهرات

مونتاژ
مونتاژ

مرحله 2: مونتاژ

مرحله 3: مونتاژ - جدول

مونتاژ - جدول
مونتاژ - جدول

مرحله 4: کتابخانه Adafruit GFX

کتابخانه Adafruit GFX
کتابخانه Adafruit GFX

در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…

Adafruit GFX Library را نصب کنید

مرحله 5: کتابخانه Adafruit ST7735

کتابخانه Adafruit ST7735
کتابخانه Adafruit ST7735

در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…

Adafruit ST7735 را نصب کنید

مرحله 6: کتابخانه NTPClient

کتابخانه NTPClient
کتابخانه NTPClient

به https://github.com/taranais/NTPClient بروید و کتابخانه NTPClient اصلاح شده با taranais را بارگیری کنید.

فایل را از حالت فشرده خارج کرده و در کتابخانه های C: / Users / Documents / Arduino / قرار دهید

مرحله 7: ESP32_NTP.ino

شامل و تعریف می شود

#include #include // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Pinos do display #define DISPLAY_DC 12 // A0 #تعریف DISPLAY_CS 13 // CS #تعریف DISPLAY_MOSI 14 // SDA #تعریف DISPLAY_CLK 27 // SCK #تعریف DISPLAY_RST 0 // Fuso Horário، no caso horário de verão de Brasília int timeZone = -2؛ // Struct com os dados do dia e hora struct تاریخ {int dayOfWeek؛ روز int ؛ ماه int ؛ سال int ؛ ساعات int ؛ دقیقه int ؛ ثانیه int ؛ }؛ // سوکت UDP با استفاده از این برنامه می توانید از WiFiUDP udp استفاده کنید. // Objeto responsável for 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 display = 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، // Função que será exeada "wifiConnectionTask"، // Nome da tarefa 10000، // Tamanho da memória disponível (em WORDs) NULlum parametre، // 2، ، // prioridade NULL ، // Não precisamos de referência para a tarefa 0)؛ // Número do core}

SetupNTP

void setupNTP () {// Inicializa یا client NTP ntpClient.begin ()؛ // Espera pelo primeiro online update Serial.println ("در انتظار اولین به روزرسانی") ؛ while (! 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) {// Se a WiFi não está conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi ()؛ } // تاخیر 100 تیک vTaskDelay (100)؛ }}

ConnectWiFi

void connectWiFi () {Serial.println ("اتصال") ؛ // 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 (".")؛ تأخیر (500) ؛ } Serial.println ()؛ Serial.print ("متصل به") ؛ Serial.println (WiFi. SSID ()) ؛ }

SetupDisplay

void 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 cursor no começo display.setTextColor (ST77XX_WHITE ، ST77XX_BLACK) ؛ // Texto branco com fundo preto display.setTextWrap (false) ؛ // Não pula linha automatamente}

حلقه

void loop () {// Recupera os dados sobre a data e horário تاریخ تاریخ = getDate ()؛ // Reseta o cursor display.setCursor (0 ، 0) ؛ // Exibe os dados no 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 () {// Recupera os dados de data and horário usando or 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: فایل ها

فایلها را بارگیری کنید

من نه

PDF

توصیه شده: