สารบัญ:
- ขั้นตอนที่ 1: การสาธิต
- ขั้นตอนที่ 2: การประกอบ
- ขั้นตอนที่ 3: การประกอบ - Table
- ขั้นตอนที่ 4: ห้องสมุด Adafruit GFX
- ขั้นตอนที่ 5: ห้องสมุด Adafruit ST7735
- ขั้นตอนที่ 6: ห้องสมุด NTPClient
- ขั้นตอนที่ 7: ESP32_NTP.ino
- ขั้นตอนที่ 8: ไฟล์
วีดีโอ: อย่าเสียเวลา: ใช้ NTP!: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ทำให้เวลาของคุณมีค่า! นี่เป็นหัวข้อที่มีการพูดคุยกันบ่อยในหมู่สมาชิกของฉัน และด้วยเหตุผลอะไร? เนื่องจากข้อเท็จจริงที่เรียบง่ายและขาดไม่ได้ที่ว่าเมื่อคุณสร้างดาต้าล็อกเกอร์ และสำหรับทุกอย่างที่เกี่ยวข้องกับระบบอัตโนมัติ คุณต้องใช้เวลาที่ถูกต้อง! และมีหลายวิธีในการวัดเวลา: นาฬิกาพร้อมแบตเตอรี่, RTC (Real Time Clock) เป็นต้น แต่สิ่งที่ฉันต้องการแสดงให้คุณเห็นในวันนี้ (ซึ่งแจ้งวันที่ วันในสัปดาห์ และเวลา) คือ NTP (Network Time Protocol) ซึ่งออนไลน์อยู่ ในวิดีโอนี้ เราจะเรียกข้อมูลวันที่และเวลาทางออนไลน์ และแสดงข้อมูลบนหน้าจอ
ขั้นตอนที่ 1: การสาธิต
ขั้นตอนที่ 2: การประกอบ
ขั้นตอนที่ 3: การประกอบ - Table
ขั้นตอนที่ 4: ห้องสมุด Adafruit GFX
ใน Arduino IDE ให้ไปที่ Sketch->Include Library->Manage Libraries …
ติดตั้ง Adafruit GFX Library
ขั้นตอนที่ 5: ห้องสมุด Adafruit ST7735
ใน Arduino IDE ให้ไปที่ Sketch->Include Library->Manage Libraries …
ติดตั้ง Adafruit ST7735
ขั้นตอนที่ 6: ห้องสมุด NTPClient
ไปที่ https://github.com/taranais/NTPClient และดาวน์โหลด taranais-modified NTPClient library
เปิดเครื่องรูดและใส่โฟลเดอร์ใน C:\Users\Documents\Arduino\libraries
ขั้นตอนที่ 7: ESP32_NTP.ino
รวมและกำหนด
#include #include //Biblioteca NTPClient modificada #include //Socket UDP #include //Display #include //Display #include // Pinos ทำ 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 ไม่มี caso horário de verão de Brasília int timeZone = -2; //โครงสร้าง com os dados ทำ dia e hora struct วันที่ { int dayOfWeek; วัน int; เดือน int; ปี int; ชั่วโมง int; int นาที; int วินาที; }; //Socket UDP เรียกใช้ lib utiliza para recuperar dados sobre o horário WiFiUDP udp; //Objeto responsável por recuperar dados sobre horário 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(); เชื่อมต่อ WiFi(); ตั้งค่าNTP(); //Cria uma nova tarefa ไม่มีคอร์ 0 xTaskCreatePinnedToCore(wifiConnectionTask, //Função que será executada "wifiConnectionTask", //Nome da tarefa 10000, //Tamanho da memória disponível (em WORDs) NULL, //Nãon vamos passar, //prioridade NULL, //Não precisamos de referência สำหรับ tarefa 0); //ตัวเลขหลัก }
ตั้งค่าNTP
ถือเป็นโมฆะ setupNTP(){ //Inicializa o 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 ขีด vTaskDelay(100); } }
เชื่อมต่อ WiFi
เป็นโมฆะ 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 () { display.initR (INITR_BLACKTAB); //Inicializa o แสดง display.setRotation(3); //Rotaciona display.setTextSize(2); //Tamanho ทำ texto display.fillScreen(ST77XX_BLACK); //Preenche com และ preta display.setCursor(0, 0); //Coloca o เคอร์เซอร์ไม่มี começo display.setTextColor(ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (เท็จ); //หนาว ปูลา ลินฮา ออโตเมติค }
ห่วง
วงเป็นโมฆะ () { //Recupera os dados sobre a data e horário Date date = getDate (); //รีเซ็ตเคอร์เซอร์หรือ 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(){ //Recupera os dados de data e horário usando o client NTP char* strDate = (char*)ntpClient.getFormattedDate().c_str(); //Passa os dados da string สำหรับ struct Date date; sscanf(strDate, "%d-%d-%dT%d:%d:%dZ", &date.year, &date.month, &date.day, &date.hours, &date.minutes, &date.seconds); //Dia da semana จาก 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay(); วันที่กลับ; }
ขั้นตอนที่ 8: ไฟล์
ดาวน์โหลดไฟล์
ฉันไม่
ไฟล์ PDF
แนะนำ:
[2020] ใช้ Micro:bits สองตัว (x2) เพื่อควบคุมรถ RC: 6 ขั้นตอน (พร้อมรูปภาพ)
[2020] การใช้ Micro:bits (x2) สองอันเพื่อควบคุมรถ RC: หากคุณมี micro:bits (x2) สองตัว คุณเคยคิดที่จะใช้พวกมันเพื่อควบคุมรถ RC จากระยะไกลหรือไม่? คุณสามารถควบคุมรถ RC ได้โดยใช้ micro:bit ตัวหนึ่งเป็นตัวส่งสัญญาณ และอีกตัวหนึ่งเป็นตัวรับ เมื่อคุณใช้ตัวแก้ไข MakeCode เพื่อเข้ารหัส micro:b
ใช้ Ultrasonic Sensor กับ Magicbit [Magicblocks]: 5 ขั้นตอน
ใช้ Ultrasonic Sensor กับ Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Ultrasonic Sensor กับ Magicbit ของคุณโดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
ใช้ Buzzer บน Magicbit [Magicblocks]: 4 ขั้นตอน
ใช้ Buzzer บน Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Buzzer บน Magicbit โดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
ใช้ Fusion เพื่อสร้างเครื่องมือไม้นี้!: 4 ขั้นตอน
ใช้ Fusion เพื่อสร้างเครื่องมือที่ทำจากไม้!: นี่เป็นหนึ่งในโครงการที่ง่ายที่สุดที่ฉันทำโดยใช้ Fusion 360 เพื่อช่วยผู้เริ่มต้นใช้งานซอฟต์แวร์ มันแสดงฟังก์ชันพื้นฐานบางอย่างของซอฟต์แวร์และใช้เวลามากง่ายเกินไป ซอฟต์แวร์ที่จำเป็น: Fusion 360 โดย Autodesk ข้อกำหนดเบื้องต้น
RG 1/144 Unicorn Gundam ใช้ Arduino Nano และ Attiny85: 10 ขั้นตอน
RG 1/144 Unicorn Gundam ใช้ Arduino Nano และ Attiny85: ในที่สุด RG Unicorn Gundam ก็สำเร็จ โดยส่วนตัวแล้ว แนวความคิดและแนวความคิดมากมายได้แนะนำและพิสูจน์แล้ว แต่อย่างไรก็ตาม ผลลัพธ์ที่แท้จริงกลับไม่น่าพอใจนัก ทั้งนี้เป็นเพราะความเสถียรของโครงสร้างเพิ่มเติมในรุ่น 1/144 นั้นไม่ไ