Оглавление:
- Шаг 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:52
Сделайте ваше время на счету! Эта тема часто обсуждается среди моих подписчиков, и по какой причине? Благодаря тому простому и обязательному факту, что при создании регистратора данных и для всего, что связано с автоматизацией, вам нужно точное время! И есть несколько способов измерения времени: часы с батареей, RTC (часы реального времени) и другие. Но тот, который я хочу показать вам сегодня (который сообщает дату, день недели и время), - это NTP (сетевой протокол времени), который находится в сети. В этом видео мы извлекаем информацию о дате и времени в Интернете и отображаем ее на дисплее.
Шаг 1: демонстрация
Шаг 2: Сборка
Шаг 3: Сборка - стол
Шаг 4: библиотека Adafruit GFX
В среде Arduino IDE перейдите в Sketch-> Include Library-> Manage Libraries…
Установить библиотеку Adafruit GFX
Шаг 5: библиотека Adafruit ST7735
В среде Arduino IDE перейдите в Sketch-> Include Library-> Manage Libraries…
Установите Adafruit ST7735
Шаг 6: библиотека NTPClient
Перейдите на https://github.com/taranais/NTPClient и загрузите библиотеку NTPClient, модифицированную таранаисом.
Разархивируйте и поместите папку в C: / Users / Documents / Arduino / libraries
Шаг 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 Date {int dayOfWeek; int день; int месяц; int год; int часы; int минут; int секунды; }; // Сокет UDP, который используется для восстановления данных и синхронизации WiFiUDP udp; // Objeto Response 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); // Интервал между проверками в Интернете // Номиналы до семаны char * dayOfWeekNames = {«Воскресенье», «Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота»}; // Задайте ответ на экран дисплея 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 no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executada "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vamumos passar nen, // Prioridade NULL, // Отсутствует указание ссылки для тарифа 0); // Número do core}
НастройкаNTP
void setupNTP () {// Инициализация клиента NTP ntpClient.begin (); // Espera pelo primeiro обновить онлайн Serial.println ("Ожидание первого обновления"); в то время как (! 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) {// Если Wi-Fi не подключен, if (WiFi.status ()! = WL_CONNECTED) {// Подключить подключение к Wi-Fi (); } // Задержка на 100 тиков vTaskDelay (100); }}
ПодключитьWiFi
void connectWiFi () {Serial.println ("Подключение"); // Выполнить поиск по Wi-Fi 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 display.setRotation (3); // Ротация display.setTextSize (2); // Таманхо делать текст display.fillScreen (ST77XX_BLACK); // Начнем с правильного отображения display.setCursor (0, 0); // Цвет курсора отсутствует display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Текстовый переводчик com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Петля
void loop () {// Восстановить данные и время записи Date date = getDate (); // Сброс курсора display.setCursor (0, 0); // Exibe os dados no display 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
Date 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); // Отслеживание от 0 до 6, отправка 0 или возврат даты.dayOfWeek = ntpClient.getDay (); Дата возврата; }
Шаг 8: файлы
Скачайте файлы
Я НЕТ
Рекомендуемые:
Используйте кнопки на вашем Magicbit [Magicblocks]: 5 шагов
Использование кнопок на Magicbit [Magicblocks]: это руководство научит вас использовать кнопки на Magicbit с помощью Magicblocks. Мы используем magicbit в качестве платы для разработки в этом проекте, основанном на ESP32. Поэтому в этом проекте можно использовать любую плату разработки ESP32
Используйте свой телефон в качестве второго монитора: 5 шагов
Используйте свой телефон в качестве второго монитора. У всех нас есть опыт работы из дома. Это дает нам возможность выполнять работу или другие задания, не выходя из дома. Однако мы все хотим выполнить эти задачи наиболее эффективным и продуктивным способом, чтобы
ИСПОЛЬЗУЙТЕ STONE HMI Создайте систему управления домом: 9 шагов
ИСПОЛЬЗУЙТЕ STONE HMI Создайте систему управления домом: Введение в проект В следующем руководстве показано, как использовать модуль сенсорного дисплея STONE STVC050WT-01 для создания простой системы управления бытовой техникой. STONE STVC050WT - 01 модуль поддержки сенсорного дисплея 5 дюймов, разрешение 480 * 272 на
Используйте силу и сделайте свой собственный световой меч (лезвие): 9 шагов (с изображениями)
Используйте силу и сделайте свой собственный световой меч (лезвие): эта инструкция предназначена специально для изготовления лезвия для светового меча Ben Solo Legacy, приобретенного в Диснейленде на окраине Галактики в Анахайме, Калифорния, однако аналогичные шаги могут быть предприняты для создания собственного лезвия для другого лазерный меч. Следуйте за
Используйте тачпад старого ноутбука для управления компьютером !: 11 шагов (с изображениями)
Повторно используйте тачпад старого ноутбука для управления компьютером! Сенсорные панели ноутбука PS / 2 являются одними из самых крутых устройств пользовательского интерфейса для использования с микроконтроллером. Жесты скольжения и касания пальцами могут сделать управление вещами довольно простым и увлекательным способом. В этом руководстве давайте объединим его с