Spisu treści:
- Krok 1: Demonstracja
- Krok 2: Montaż
- Krok 3: Montaż - Stół
- Krok 4: Biblioteka Adafruit GFX
- Krok 5: Biblioteka Adafruit ST7735
- Krok 6: Biblioteka NTPClient
- Krok 7: ESP32_NTP.ino
- Krok 8: Pliki
Wideo: Nie marnuj czasu: użyj NTP!: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Niech Twój czas się liczy! To temat często poruszany wśród moich subskrybentów i z jakiego powodu? Ze względu na prosty i nieodzowny fakt, że kiedy robisz rejestrator danych i na wszystko, co wiąże się z automatyzacją, potrzebujesz odpowiedniego czasu! A sposobów mierzenia czasu jest kilka: zegar z baterią, RTC (zegar czasu rzeczywistego), m.in. Ale ten, który chcę wam dzisiaj pokazać (który informuje o dacie, dniu tygodnia i godzinie), to NTP (Network Time Protocol), który jest dostępny online. W tym filmie pobierzemy informacje o dacie i godzinie online i pokażemy je na wyświetlaczu.
Krok 1: Demonstracja
Krok 2: Montaż
Krok 3: Montaż - Stół
Krok 4: Biblioteka Adafruit GFX
W Arduino IDE przejdź do Sketch->Include Library->Manage Libraries…
Zainstaluj bibliotekę Adafruit GFX
Krok 5: Biblioteka Adafruit ST7735
W Arduino IDE przejdź do Sketch->Include Library->Manage Libraries…
Zainstaluj Adafruit ST7735
Krok 6: Biblioteka NTPClient
Przejdź do https://github.com/taranais/NTPClient i pobierz zmodyfikowaną taranais bibliotekę NTPClient.
Rozpakuj i umieść folder w C:\Users\Documents\Arduino\libraries
Krok 7: ESP32_NTP.ino
Zawiera i definiuje
#include #include //Biblioteca NTPClient modificada #include //Socket UDP #include //Wyświetlanie #include //Wyświetlanie #include //Piny wyświetlają #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, brak zdarzenia losowego w Brasília int timeZone = -2; //Struct com os dados do dia e hora struct Date{ int dayOfWeek; dzień wewnętrzny; miesiąc mies.; międzynarodowy rok; międzynarodowe godziny; międzynarodowe minuty; int sekund; }; //Socket UDP służy do korzystania z biblioteki do odzyskiwania danych w sieci lub na całym świecie WiFiUDP udp; //Obiekt odpowiada na potrzeby odzyskiwania danych na całym świecie NTPClient ntpClient(udp, //socket udp "0.br.pool.ntp.org", //URL serwera NTP timeZone*3600, //Usuń położenie w dowolnym miejscu w GMT 0 60000); //Odstęp czasu na weryfikację online //Nomes dos dias da semana char* dayOfWeekNames = {"Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"}; //Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Ustawiać
void setup(){ Serial.begin(115200); konfiguracjaWyświetlacz(); połączWiFi(); konfiguracjaNTP(); //Cria uma nova tarefa bez rdzenia 0 xTaskCreatePinnedToCore(wifiConnectionTask, //Função que sera executada "wifiConnectionTask", //Nome tarefa 10000, //Tamanho for memória disponível (w WORDs) NULL, //Nul 2 vas, //prioridade NULL, //Não precisamos de referência para a tarefa 0); //Número do rdzenia }
KonfiguracjaNTP
void setupNTP(){ //Inicjalizacja klienta NTP ntpClient.begin(); //Espera pelo primeiro aktualizacja online Serial.println("Oczekiwanie na pierwszą aktualizację"); while(!ntpClient.update()) { Serial.print("."); ntpClient.forceUpdate(); opóźnienie (500); } Serial.println(); Serial.println("Pierwsza aktualizacja zakończona"); }
Zadanie połączenia Wi-Fi
//Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask(void* param) { while(true) { //Se a Wi-Fi nie jest połączone if(WiFi.status() != WL_CONNECTED) { //Połącz połączenie WiFi(); } //Opóźnienie 100 taktów vTaskDelay(100); } }
PołączWiFi
void connectWiFi(){ Serial.println("Łączenie"); //Należy podać nazwę i przywrócić Wi-Fi WiFi.begin("SSID", "12345678"); //Espera enquanto não estiver conectado while(WiFi.status() != WL_CONNECTED) { Serial.print("."); opóźnienie (500); } Serial.println(); Serial.print("Połączony z"); Serial.println(WiFi. SSID()); }
Ekran konfiguracji
void setupDisplay(){ display.initR(INITR_BLACKTAB); //Zainicjuj wyświetlanie display.setRotation(3); //Obrót display.setTextSize(2); //Tamanho robi texto display.fillScreen(ST77XX_BLACK); //Preenche com a cor preta display.setCursor(0, 0); //Coloca o kursor nie começo display.setTextColor(ST77XX_WHITE, ST77XX_BLACK); //Branco tekstowe z podstawowymi informacjami display.setTextWrap(false); //Não pula linha automatamente }
Pętla
void loop(){ //Recupera os dados sobre a data and horário Date date = getDate(); //Resetuj wyświetlanie kursora.setCursor(0, 0); //Exibe os dados brak wyświetlacza display.printf(" %s \n\n %s \n\n %02d/%02d/%d\n\n %02d:%02d:%02d", WiFi. SSID().c_str(), DayOfWeekNames[data.dayOfWeek], date.day, date.month, date.year, date.hours, date.minutes, date.seconds); opóźnienie (100); }
Pobierz datę
Data getDate(){ //Odzyskaj dane i dane na poziomie klienta NTP char* strDate = (char*)ntpClient.getFormattedDate().c_str(); //Passa os dados da string para a struct Data data; 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(); Data powrotu; }
Krok 8: Pliki
Pobierz pliki
JA NIE
Zalecana:
Pomiar czasu (zegar taśmy mierniczej): 5 kroków (ze zdjęciami)
Miarka czasu (zegar z taśmą mierniczą): W tym projekcie my (Alex Fiel i Anna Lynton) wzięliśmy narzędzie do codziennego mierzenia i zamieniliśmy je w zegar! Pierwotny plan zakładał zmotoryzowanie istniejącej taśmy mierniczej. Dokonując tego, zdecydowaliśmy, że łatwiej będzie stworzyć własną powłokę, do której będzie pasować
Pracuj z domowego rejestratora czasu za pomocą Raspberry Pi: 7 kroków
Rejestrator czasu pracy w domu przy użyciu Raspberry Pi: W ciągu ostatniego roku miałem okazję pracować w domu. W tym celu musiałem śledzić godziny, w których pracuję. Zaczynając od korzystania z arkusza kalkulacyjnego Excel i ręcznego wprowadzania godzin „włączenia” i „wyłączenia”, wkrótce okazało się, że jest to
Pobieranie czasu z Internetu za pomocą ESP8266 - Projekt zegara NTP z ESP8266 Nodemcu: 5 kroków
Pobieranie czasu z Internetu za pomocą ESP8266 | Projekt zegara NTP z ESP8266 Nodemcu: W tym samouczku zobaczymy, jak uzyskać czas za pomocą ESP8266/nodemcu z Arduino IDE. Uzyskanie czasu jest szczególnie przydatne w rejestrowaniu danych w celu oznaczenia czasu odczytów. Jeśli Twój projekt ESP8266 ma dostęp do Internetu, możesz uzyskać czas za pomocą Network T
Jak opublikować dane ESP32 ze znacznikiem czasu NTP w chmurze IoT: 5 kroków
Jak opublikować dane ESP32 ze znacznikiem czasu NTP w chmurze IoT: W wielu aplikacjach użytkownicy muszą wysyłać swoje dane wraz z lokalnym znacznikiem czasu wartości, które mają zostać wysłane w ładunku do chmury AskSensors IoT. Format znacznika czasu to czas UNIX Epoch: liczba milisekund, które upłynęły od stycznia
Jak ukryć pliki, których nie chcesz, aby inni widzieli i lub nie czytali.: 7 kroków
Jak ukryć pliki, których nie chcesz, aby inni widzieli i lub nie czytali.: Ta instrukcja pokazuje, jak zmienić format pliku, aby był bezużyteczny, chyba że wiesz, jakiego typu był pierwotnie. Na przykład zmiana mpeg (pliku filmowego) na txt/doc (tekst/dokument), aby nie można było go odtworzyć, nie mówiąc już o zobaczeniu informacji