Агуулгын хүснэгт:
- Алхам 1: Жагсаал
- Алхам 2: угсрах
- Алхам 3: Ассемблей - Хүснэгт
- Алхам 4: Adafruit GFX номын сан
- Алхам 5: Adafruit ST7735 номын сан
- Алхам 6: NTPClient номын сан
- Алхам 7: ESP32_NTP.ino
- Алхам 8: Файлууд
Видео: Цагаа дэмий үрэх хэрэггүй: NTP ашиглана уу: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Цагаа тоолоорой! Энэ бол миний захиалагчдын дунд байнга яригддаг сэдэв бөгөөд ямар шалтгаанаар? Өгөгдөл бүртгэгч хийх, автоматжуулалттай холбоотой бүх зүйлд танд зөв цаг хэрэгтэй гэсэн энгийн бөгөөд зайлшгүй шаардлагатай баримтаас шалтгаалан! Цаг хэмжих хэд хэдэн арга байдаг: зайтай цаг, RTC (Real Time Clock) болон бусад. Гэхдээ өнөөдөр би танд үзүүлэхийг хүсч байгаа зүйл бол (он сар өдөр, долоо хоногийн өдөр, цагийг мэдээлдэг) бол сүлжээнд байгаа NTP (Network Time Protocol) юм. Энэ видеон дээр бид онлайнаар огноо, цагийн мэдээллийг авч, мэдээллийг дэлгэц дээр харуулах болно.
Алхам 1: Жагсаал
Алхам 2: угсрах
Алхам 3: Ассемблей - Хүснэгт
Алхам 4: Adafruit GFX номын сан
Arduino IDE дээр Sketch-> Номын санг оруулах-> Номын санг удирдах хэсэгт очно уу.
Adafruit GFX номын санг суулгана уу
Алхам 5: Adafruit ST7735 номын сан
Arduino IDE дээр Sketch-> Номын санг оруулах-> Номын санг удирдах хэсэгт очно уу.
Adafruit ST7735 -ийг суулгана уу
Алхам 6: NTPClient номын сан
Https://github.com/taranais/NTPClient руу орж taranais өөрчилсөн NTPClient номын санг татаж авна уу.
Фолдерыг задалж C: / Users / Documents / Arduino / library -д оруулна уу
Алхам 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 #DISPLAY_MOSI 14 -ийг тодорхойлох // SDA #тодорхойлох DISPLAY_CLK 27 // SCK #тодорхойлох 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 Огноо {int dayOfWeek; int өдөр; int сар; int жил; int цаг; int минут; int секунд; }; // Socket UDP програм нь WiFiUDP програмыг ашиглах боломжтой болно; // NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL нь NTP цагийн бүсийн үйлчлүүлэгч*3600, // Хязгаарлагдмал цагийн хуваарьтай холбоотой). 60000); // Intervalo entre verificações online // Nomes dos dias da semana char* dayOfWeekNames = {"Ням гараг", "Даваа гариг", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба гариг"}; // Objeto Respável pelo дэлгэц Adafruit_ST7735 дэлгэц = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Тохируулах
void setup () {Serial.begin (115200); setupDisplay (); холбохWiFi (); NNTP тохиргоо (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL paramet, // não v2, // Prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
NNT тохируулах
void setupNTP () {// Хэрэглэгчийн 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 хачигыг хойшлуулах vTaskDelay (100); }}
Wi -Fi холбоно уу
хүчингүй connectWiFi () {Serial.println ("Холбогдож байна"); // 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 ()); }
Дэлгэцийг тохируулах
void setupDisplay () {display.initR (INITR_BLACKTAB); // Invisioniza o display display.setRotation (3); // Rotaciona display.setTextSize (2); // Тамано текст бичих дэлгэц.fillScreen (ST77XX_BLACK); // Preenche com a pret preta display.setCursor (0, 0); // Coloca o cursor no cameo 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 (); // Reseta o cursor display.setCursor (0, 0); // Exibe os dados display display байхгүй.printf (" %s / n / n %s / n / n %02d/ %02d/ %d / n / n %02d: %02d: %02d", WiFi. SSID ().c_str (), dayOfWeekNames [огноо. өдөрOfWeek], огноо. өдөр, огноо.сард, огноо.жил, огноо.цаг, огноо.минут, огноо.секунд); саатал (100); }
GetDate
Огноо 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
Зөвлөмж болгож буй:
Magicbit дээрээ дарах товчлууруудыг ашиглана уу [Magicblocks]: 5 алхам
Magicbit дээрээ түлхэх товчлууруудыг ашиглана уу [Magicblocks]: Энэхүү заавар нь Magicbit дээрх товчлууруудыг Magicblocks ашиглан ашиглахыг заах болно. Бид ESP32 дээр суурилсан энэхүү төсөлд magicbit -ийг хөгжлийн самбар болгон ашиглаж байна. Тиймээс энэ төсөлд ESP32 хөгжүүлэх самбарыг ашиглаж болно
Хэрэггүй хайрцаг: 3 алхам (зурагтай)
Ашиггүй хайрцаг: Төсөл: Хэрэггүй хайрцаг Огноо: 2020 оны 3 -р сар - 2020 оны 4 -р сар Би энэ төслийг хоёр шалтгаанаар хийхээр шийдсэн бөгөөд нэг нь одоо ажиллаж байгаа маш нарийн төвөгтэй төслийг зогсоох, хоёрдугаарт, энэ үеэр хийх ёстой зүйл юм. бүрэн түгжрэл бид
Хэрэггүй машины заавар: 21 алхам (зурагтай)
Ашиггүй машины заавар: Ашиггүй машин бол Марвин Минскийн "Ultimate Machine" -ийн хувилбар бөгөөд үндсэн зорилго нь өөрийгөө унтраах явдал юм. Үүнийг барьсны дараа хоёр унтраалга, мотороос бүрдсэн машин хэрхэн ажиллахгүй байгааг та гайхах болно
Бөгжний нарны тэмдгийн эвдрэл: Би үүнийг буруу хийсэн тул танд хэрэггүй: 11 алхам
Бөгжний нарны тэмдгийн эвдрэл: Би үүнийг буруу хийсэн тул танд хэрэггүй: Надад цагирган хаалганы хонх байна, энэ үнэхээр гайхалтай. Талархлын баярын бүх онлайн худалдаа явагдаж байх үед би Ring Stick-up камертай болсон. 50 доллар хямдарсан бөгөөд тэд надад энэхүү гоёмсог бөгжний нарны тэмдгийг ҮНЭГҮЙ илгээсэн (ердөө 49 долларын үнэтэй!). Би итгэлтэй байна
Хэрэггүй хайрцгаа сайжруулах: 5 алхам
Ашиггүй хайрцгаа сайжруулах: Энэхүү зааварчилгаа нь ашиггүй хайрцгаа хэрхэн хурдан сайжруулж болохыг харуулж байна, ингэснээр хайрцгийг идэвхжүүлэхийн тулд унтраалгыг асаасны дараа хуруугаа салгах цаг бага байна