Բովանդակություն:
- Քայլ 1: rationուցադրություն
- Քայլ 2: Հավաքում
- Քայլ 3. Հավաքում - Աղյուսակ
- Քայլ 4: Adafruit GFX գրադարան
- Քայլ 5. Adafruit ST7735 գրադարան
- Քայլ 6: NTPClient Library
- Քայլ 7: ESP32_NTP.ino
- Քայլ 8: Ֆայլեր
Video: Մի վատնեք ձեր ժամանակը. Օգտագործեք NTP: 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Թող ձեր ժամանակը հաշվարկվի: Սա հաճախ քննարկվող թեմա է իմ բաժանորդների շրջանում, և ի՞նչ պատճառով: Այն պարզ և անփոխարինելի փաստի շնորհիվ, երբ դուք ստեղծում եք տվյալների ցուցիչ և այն ամենի համար, ինչը ներառում է ավտոմատացում, ձեզ հարկավոր է ճիշտ ժամանակ: Եվ ժամանակը չափելու մի քանի եղանակ կա ՝ մարտկոցով ժամացույց, ի թիվս այլոց ՝ RTC (իրական ժամանակի ժամացույց): Բայց այն, ինչ ես ուզում եմ ձեզ այսօր ցույց տալ (որը տեղեկացնում է ամսաթիվը, շաբաթվա օրը և ժամը) NTP- ն է (ցանցի ժամանակի արձանագրություն), որն առցանց է: Այս տեսանյութում մենք առցանց կվերցնենք ամսաթվի և ժամի տեղեկատվությունը և կցուցադրենք այն տեղեկատվությունը էկրանին:
Քայլ 1: rationուցադրություն
Քայլ 2: Հավաքում
Քայլ 3. Հավաքում - Աղյուսակ
Քայլ 4: Adafruit GFX գրադարան
Arduino IDE- ում գնացեք Sketch-> Include Library-> Manage Libraries…
Տեղադրեք Adafruit GFX գրադարանը
Քայլ 5. Adafruit ST7735 գրադարան
Arduino IDE- ում գնացեք Sketch-> Include Library-> Manage Libraries…
Տեղադրեք Adafruit ST7735
Քայլ 6: NTPClient Library
Գնացեք https://github.com/taranais/NTPClient և ներբեռնեք taranais- ով փոփոխված NTPClient գրադարանը:
Անջատեք և թղթապանակը տեղադրեք C: / Users / Documents / Arduino / գրադարաններում
Քայլ 7: ESP32_NTP.ino
Ներառում է և սահմանում
#ներառել #ներառել // 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 #սահմանել 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 վայրկյան; }; // Socket UDP- ն, որն օգտագործում է իր օգտագործումը, WiFiUDP udp- ի սարքի արագ վերականգնման համար; // Objecto 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 ցուցադրում = 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á შესრულություն «wifiConnectionTask», // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) Nullam, // 2ãnhum պարամետր,, // 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 թարմացում առցանց 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 հետաձգում 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 ()); }
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 (կեղծ); // Não pula linha automatamente}
Օղակ
void loop () {// Recupera os dados sobre a data e horário Ամսաթիվ ամսաթիվ = getDate (); // Վերագործարկիչ կամ կուրսորը 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 e 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: Ֆայլեր
Ներբեռնեք ֆայլերը
ԻՆՈ
Խորհուրդ ենք տալիս:
Օգտագործեք սեղմման կոճակներ ձեր Magicbit [Magicblocks] - ում ՝ 5 քայլ
Օգտագործեք սեղմման կոճակներ ձեր Magicbit- ում [Magicblocks]. Այս ձեռնարկը կսովորեցնի ձեզ օգտագործել Magicbit- ի սեղմիչ կոճակները `օգտագործելով Magicblocks: Մենք օգտագործում ենք magicbit- ը որպես զարգացման տախտակ այս նախագծում, որը հիմնված է ESP32- ի վրա: Հետևաբար, այս նախագծում կարող է օգտագործվել ցանկացած ESP32 տախտակ
Օգտագործեք ձեր հեռախոսը որպես երկրորդ մոնիտոր `5 քայլ
Օգտագործեք ձեր հեռախոսը որպես երկրորդ մոնիտոր. Մենք բոլորս ունեցել ենք տնից աշխատելու փորձ: Դա մեզ տալիս է աշխատանք կամ հանձնարարություններ ավարտելու շքեղություն մեր իսկ տան հարմարավետությունից: Այնուամենայնիվ, մենք բոլորս ցանկանում ենք ավարտել այս խնդիրները հնարավորինս արդյունավետ և արդյունավետ եղանակով, որպեսզի
Օգտագործեք ուժը և պատրաստեք ձեր սեփական լուսատուը (սայր). 9 քայլ (նկարներով)
Օգտագործեք ուժը և ստեղծեք ձեր սեփական լուսատու լուսափայլ. Հետևեք
Օգտագործեք ձեր Mac OSX- ը որպես անլար ադապտեր ձեր XBOX 360: 6 քայլերի համար
Օգտագործեք ձեր Mac OSX- ը որպես Wirelss ադապտեր ձեր XBOX 360 -ի համար. Ես այստեղ տեսա մեկ այլ ուղեցույց, թե ինչպես դա անել, բայց դա սարսափելի սխալ էր և այդքան բան դուրս թողեց, ուստի որոշեցի ինքս պատրաստել
Օգտագործեք ձեր iPhone- ի տվյալների կապը ձեր համակարգչում `6 քայլ
Օգտագործեք ձեր iPhone- ի տվյալների կապը ձեր համակարգչում. ՆՇՈՄ. IOS 3 -ի և 4 -ի դրությամբ կան այլ եղանակներ, նույնիսկ AT & T- ի միջոցով օրինական (չնայած դա լրացուցիչ ծախսեր է պահանջում): Այս մեթոդը, այնուամենայնիվ, գործում է, և միշտ կլինի (անկախ iOS- ի թարմացումներից), քանի դեռ կարող եք SSH- ը տեղադրել ձեր iPhone- ում: Ունեն