Mục lục:
- Bước 1: Trình diễn
- Bước 2: Lắp ráp
- Bước 3: Lắp ráp - Bảng
- Bước 4: Thư viện Adafruit GFX
- Bước 5: Thư viện Adafruit ST7735
- Bước 6: Thư viện NTPClient
- Bước 7: ESP32_NTP.ino
- Bước 8: Tập tin
Video: Đừng lãng phí thời gian của bạn: Sử dụng NTP!: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Làm cho thời gian của bạn có giá trị! Đây là một chủ đề được thảo luận thường xuyên giữa những người đăng ký của tôi, và vì lý do gì? Do một thực tế đơn giản và tất yếu là khi bạn tạo một datalogger và cho mọi thứ liên quan đến tự động hóa, bạn cần có thời gian chính xác! Và có một số cách để đo thời gian: đồng hồ có pin, RTC (Đồng hồ thời gian thực), trong số những cách khác. Nhưng cái mà tôi muốn cho bạn xem hôm nay (thông báo ngày, thứ trong tuần và giờ) là NTP (Network Time Protocol), trực tuyến. Trong video này, chúng tôi sẽ truy xuất thông tin ngày và giờ trực tuyến và hiển thị thông tin trên màn hình.
Bước 1: Trình diễn
Bước 2: Lắp ráp
Bước 3: Lắp ráp - Bảng
Bước 4: Thư viện Adafruit GFX
Trong Arduino IDE, đi tới Sketch-> Bao gồm Thư viện-> Quản lý Thư viện…
Cài đặt Thư viện GFX Adafruit
Bước 5: Thư viện Adafruit ST7735
Trong Arduino IDE, đi tới Sketch-> Bao gồm Thư viện-> Quản lý Thư viện…
Cài đặt Adafruit ST7735
Bước 6: Thư viện NTPClient
Truy cập https://github.com/taranais/NTPClient và tải xuống thư viện NTPClient đã được sửa đổi taranais.
Giải nén và đưa thư mục vào thư viện C: / Users / Documents / Arduino
Bước 7: ESP32_NTP.ino
Bao gồm và xác định
#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, không có caso horário de verão de Brasília int timeZone = -2; // Struct com os dados do dia e hora struct Date {int dayOfWeek; int ngày; int tháng; int năm; int giờ; int phút; int giây; }; // Socket UDP que a lib useiza para recuperar dados sobre o horário WiFiUDP udp; // Objeto responseável bởi 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 trực tuyến // Nomes dos dias da semana char * dayOfWeekNames = {"Chủ nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy"}; // Objeto responseável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Cài đặt
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executive "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vamos passar nenhum parametro 2, // prioridade NULL, // Não Preisamos de referenceência para a tarefa 0); // Número do core}
SetupNTP
void setupNTP () {// Inicializa o client NTP ntpClient.begin (); // Cập nhật Espera pelo primeiro trực tuyến Serial.println ("Đang chờ bản cập nhật đầu tiên"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); chậm trễ (500); } Serial.println (); Serial.println ("Hoàn thành bản cập nhật đầu tiên"); }
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 (); } // Delay de 100 ve vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Đang kết nối"); // Troque pelo nome e senha da sua red WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); chậm trễ (500); } Serial.println (); Serial.print ("Đã kết nối với"); 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 con trỏ không começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto cámco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Vòng
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Đặt lại con trỏ display.setCursor (0, 0); // Exibe os dados không có màn hình 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); chậm trễ (100); }
Hẹn gặp
Date 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 para a 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 de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); ngày trở lại; }
Bước 8: Tập tin
Tải xuống các tệp
NS
Đề xuất:
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã thực hiện đúng cách: 8 bước (có hình ảnh)
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã hoàn thành đúng cách: Sau 1 năm hoạt động thành công trên 2 địa điểm khác nhau, tôi đang chia sẻ kế hoạch dự án trạm thời tiết sử dụng năng lượng mặt trời của mình và giải thích cách nó phát triển thành một hệ thống thực sự có thể tồn tại trong thời gian dài thời kỳ từ năng lượng mặt trời. Nếu bạn theo dõi
Lập phương thời gian - Tiện ích theo dõi thời gian Arduino: 6 bước
Time Cube - Arduino Time Tracking Gadget: Tôi muốn đề xuất cho bạn một dự án arduino đơn giản nhưng thực sự hữu ích để theo dõi các sự kiện thời gian bằng cách lật một số tiện ích khối thông minh. Lật nó sang " Làm việc " > " Tìm hiểu " > " Việc nhà " > " Phần còn lại " bên và nó sẽ tính
Tăng dung lượng (thời gian chạy) của pin máy tính xách tay của bạn.: 6 bước
Tăng dung lượng (thời gian chạy) của pin máy tính xách tay của bạn: Pin máy tính xách tay của bạn đã hết chưa? Có phải thời gian chạy không đủ dài để giúp bạn vượt qua cả ngày? Bạn có mang theo một trong những bộ pin bên ngoài khổng lồ đó không? Hướng dẫn này nhằm chỉ ra cách người ta có thể thay thế các tế bào li-ion / li-poly đã chết của máy tính xách tay batte
Biến Máy tính Đồ thị TI thành Máy đo khoảng thời gian và tạo video tua nhanh thời gian: 7 bước (có hình ảnh)
Biến Máy tính Đồ thị TI thành Máy đo khoảng thời gian và tạo video tua nhanh thời gian: Tôi luôn muốn tạo video tua nhanh thời gian, nhưng tôi không có máy ảnh tích hợp tính năng đồng hồ đo khoảng cách. Thực tế, tôi không nghĩ nhiều lắm. máy ảnh đi kèm với một tính năng như vậy (đặc biệt không phải máy ảnh SLR). Vậy bạn muốn làm gì nếu bạn muốn
Twitchy, Người bạn lãng phí điện tử của bạn: 11 bước (có hình ảnh)
Twitchy, Người bạn lãng phí điện tử của bạn: Anh ấy sạch sẽ hơn một con chuột hamster, và có cá tính hơn hầu hết các loài bò sát, và thông minh hơn nhiều so với con chó này mà tôi từng nuôi. Thêm vào đó, anh ấy được làm từ rác và rất thú vị khi xây dựng. Dân số loài người có thể (và được cho là nên được) chia thành