Съдържание:
- Стъпка 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 07:52
Направете вашето време да се брои! Това е често обсъждана тема сред абонатите ми и по каква причина? Поради простия и незаменим факт, че когато правите регистратор на данни и за всичко, свързано с автоматизация, имате нужда от правилното време! И има няколко начина за измерване на времето: часовник с батерия, RTC (часовник в реално време), между другото. Но този, който искам да ви покажа днес (който информира дата, ден от седмицата и час) е NTP (Network Time Protocol), който е онлайн. В това видео ще извлечем информацията за датата и часа онлайн и ще покажем информацията на дисплея.
Стъпка 1: Демонстрация
Стъпка 2: Монтаж
Стъпка 3: Сглобяване - Таблица
Стъпка 4: Библиотека на Adafruit GFX
В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …
Инсталирайте библиотеката Adafruit GFX
Стъпка 5: Библиотека Adafruit ST7735
В IDE на Arduino отидете на Sketch-> Include Library-> Manage Libraries …
Инсталирайте Adafruit ST7735
Стъпка 6: Библиотека NTPClient
Отидете на https://github.com/taranais/NTPClient и изтеглете модифицираната от taranais библиотека NTPClient.
Разархивирайте и поставете папката в библиотеките C: / Users / Documents / Arduino
Стъпка 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 #define DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define 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 Date {int dayOfWeek; int ден; int месец; int година; int часове; int минути; int секунди; }; // Socket UDP que a lib utilization para recuperar dados sobre or horário WiFiUDP udp; // Отговор на обекта от рекуператорите, които са на хоризонт 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);
Настройвам
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa без ядро 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executada "wifiConnectionTask", // Номе да tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vamos paramos, // приоритет NULL, // Não precisamos de referência para a tarefa 0); // Numero do core}
Настройка на NTP
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 is 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); }}
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); // Начало на дисплея display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Coloca или курсорът няма começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Цикъл
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Рестартиране или показване на курсора.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 () {// Рекуперация на данни за данни и използване на клиентски 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 (); дата на връщане; }
Стъпка 8: Файлове
Изтеглете файловете
АЗ НЕ
Препоръчано:
Направете „Направи си сам“Sonoff Smart Switch Използвайте приложението за Android: 11 стъпки
Направете „Направи си сам“Sonoff Smart Switch Използвайте приложение за Android: Какво е Sonoff? Sonoff е линия за интелигентни превключватели за Smart Home, разработена от ITEAD. Едно от най -гъвкавите и евтини устройства от тази линия са Sonoff Basic и Sonoff mini. Това са превключватели с Wi-Fi, базирани на страхотен чип, ESP8266/E
Използвайте бутони на вашия Magicbit [Magicblocks]: 5 стъпки
Използвайте бутони на вашия Magicbit [Magicblocks]: Този урок ще ви научи да използвате бутоните на вашия Magicbit с помощта на Magicblocks. Ние използваме magicbit като борда за разработка в този проект, който е базиран на ESP32. Следователно всяка платка за разработка на ESP32 може да се използва в този проект
Използвайте сензор за влажност на почвата с Magicbit [Magicblocks]: 5 стъпки
Използвайте сензор за влажност на почвата с Magicbit [Magicblocks]: Този урок ще ви научи да използвате сензора за влажност на почвата с вашия Magicbit с помощта на Magicblocks. Ние използваме magicbit като борда за разработка в този проект, който е базиран на ESP32. Следователно всяка платка за разработка на ESP32 може да се използва в този проект
Първи стъпки с FRDM-KL46Z (и Mbed Online IDE) Използвайте Windows 10: 6 стъпки
Първи стъпки с FRDM-KL46Z (и Mbed Online IDE) Използвайте Windows 10: Платките за разработка на Freedom (FRDM) са малки, с ниска мощност, рентабилни платформи за оценка и разработка, идеални за бързо прототипиране на приложения. Тези табла за оценка предлагат лесен за използване флаш програмист в режим на устройство за масово съхранение, virt
Показване на времето и времето на Arduino 3 в 1: 11 стъпки
Arduino 3-в-1 дисплей за времето и времето: Харесвам PIC микроконтролерите и харесвам програмирането на асемблер. Всъщност през последните няколко години публикувах около 40 проекта на моя уебсайт въз основа на тази комбинация. Наскоро поръчах някои части от един от любимите ми американски