תוכן עניינים:
- שלב 1: הפגנה
- שלב 2: הרכבה
- שלב 3: הרכבה - שולחן
- שלב 4: ספריית GFX של Adafruit
- שלב 5: ספריית Adafruit ST7735
- שלב 6: ספריית NTPClient
- שלב 7: ESP32_NTP.ino
- שלב 8: קבצים
וִידֵאוֹ: אל תבזבז את הזמן: השתמש ב- NTP !: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
הפוך את הזמן שלך לספור! זהו נושא שנדון בתדירות גבוהה בקרב המנויים שלי, ומאיזו סיבה? בשל העובדה הפשוטה והחיונית שכאשר אתה מבצע נתוני לוגים ולכל מה שקשור לאוטומציה, אתה צריך את הזמן הנכון! וישנן מספר דרכים למדידת זמן: שעון עם סוללה, RTC (שעון בזמן אמת), בין היתר. אבל זה שאני רוצה להראות לך היום (המודיע תאריך, יום בשבוע ושעה) הוא ה- NTP (Network Time Protocol), שהוא מקוון. בסרטון זה, אנו נאסוף את המידע על התאריך והשעה באופן מקוון ונציג את המידע בתצוגה.
שלב 1: הפגנה
שלב 2: הרכבה
שלב 3: הרכבה - שולחן
שלב 4: ספריית GFX של Adafruit
ב- IDE של Arduino, עבור אל סקיצה-> כלול ספרייה-> נהל ספריות …
התקן את ספריית AdFruit GFX
שלב 5: ספריית Adafruit ST7735
ב- IDE של Arduino, עבור אל סקיצה-> כלול ספרייה-> נהל ספריות …
התקן את Adafruit ST7735
שלב 6: ספריית NTPClient
עבור אל https://github.com/taranais/NTPClient והורד את ספריית NTPClient ששונתה על ידי taranais.
פתח את המקבץ והכנס את התיקייה ל- C: / Users / Documents / Arduino / libraries
שלב 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 #define DISPLAY_CS 13 // CS #define DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define 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 שניות; }; // Socket UDP que a lib utiliza for a recuperar dados sobre o horário WiFiUDP udp; // תגובה על השחזור של 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 = {"יום ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"}; // Objeto responsável pelo display Adafruit_ST7735 display = 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, // Não vamos passar nenhum param, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Numero do core}
SetupNTP
הגדרת voidNTP () {// הרשמה ללקוח NTP ntpClient.begin (); // עדכון Espera pelo primeiro מקוון Serial.println ("מחכה לעדכון ראשון"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); עיכוב (500); } Serial.println (); Serial.println ("העדכון הראשון הושלם"); }
משימה WifiConnection
// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void* param) {while (true) {// Se a WiFi não estect conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Delay de 100 ticks 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 ()); }
תצוגת Setup
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 (שקר); // Não pula linha automaticamente}
לוּלָאָה
void loop () {// Recupera os dados sobre a data e horário תאריך תאריך = getDate (); // הגדר מחדש את הסמן display.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); עיכוב (100); }
השג תאריך
תאריך getDate () {// שחזור הנתונים שלנו וההוראות של הלקוח 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
מוּמלָץ:
שעון RGB ללמד ילדים על הזמן: 4 שלבים
שעון RGB ללמד ילדים על הזמן: אתמול בערב עלה לי רעיון איך לעזור לילד שלי בן 5 לקבל תחושה של זמן. ברור שילדים מכוונים לאירועים יומיומיים כדי לקבל מושג מה עומד לקרות. אבל אירועים קודמים. הם בדרך כלל קצת בלאגן וכמעט לא בסדר. מאז שסיפרתי
556 הזמן מספק קלט לשעון ל -2 מונים של עשרות שנים שיניעו 20 נוריות LED: 6 שלבים
556 הזמן מספק כניסת שעון ל -2 מוני עשור שיניעו 20 נוריות LED: מדריך זה יראה כיצד טיימר 556 יספק כניסות לשעון ל -2 מוני עשור. מוני העשור יניעו 20 נוריות LED. הנורות יהבהבו ברצף של 10
הזמן לעובד שלך שימוש ב- SLabs-32: 6 שלבים
הזמן את העובד שלך באמצעות SLabs-32: במדריך זה, אנו הולכים ליצור מערכת ניהול/החוצה של עובדים חכמים המבוססת על nfc, אשר עוקבת אחר שעות העבודה של העובדים שלך. אנו מקבלים את המידע בזמן הנוכחי באמצעות NTP (פרוטוקול זמן רשת). ) עם מודול ה- Wi-Fi (Esp826
משחק עם הזמן: 6 שלבים
משחק עם הזמן: הרעיון הראשוני של הפרויקט הזה היה: להכין מתנה ליצור מעגל אלקטרוני מקורי להשתמש בחיוג טלפון ישן " steampunk " מראה חיצוני
הזמן עבר: 5 שלבים
Time Gone By: Time Gone By הוא שעון שמכריז על השעה שבה לוחצים עליו, מדבר בבני בן השנתיים אותו הקלטתי אומר את השעות, " רבע עד ", " חצי וחצי " ועוד מיותר לציין שהיותו כל כך צעיר שבקושי קיבל את המספרים