В этом занятии нам не потребуется собирать схемы. Достаточно подсоединить микроконтроллер NodeMCU v3 к USB-входу на компьютере. Используя WiFi-выход в Интернет, мы можем получать данные с NTP-сервера – сервера точного времени (Network Time Protocol – протокол точного времени). Это точное время мы выводим в мониторе порта.
В скетче, по полученным данным с NTP-сервера рассчитывают точное время в Москве. Если вы находитесь в другом часовом поясе, нужно изменить значение переменной
const long utcOffsetInSeconds = 10800;
на смещение в секундах для вашего местного времени.

// Получаем точное время с NTP-сервера

#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

// Замените на данные своей WiFi-сети
const char* ssid       = "**********";
const char* password   = "**********";

// Смещение в секундах для часового пояса Москвы
const long utcOffsetInSeconds = 10800;

char daysOfTheWeek[7][24] = {"Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"};
// char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

// Определение NTP-клиента для получения времени
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);

void setup()
{
  Serial.begin(9600);

  WiFi.begin(ssid, password);

  while ( WiFi.status() != WL_CONNECTED ) 
  {
    delay ( 500 );
    Serial.print ( "." );
  }

  Serial.println ( "Соединение установлено!" );
  timeClient.begin();
  delay(5000); // Задержка перед первым считыванием точного времени
}

void loop() 
{
  timeClient.update();

  Serial.print(daysOfTheWeek[timeClient.getDay()]);
  Serial.print(", ");
  Serial.print(timeClient.getHours());
  Serial.print(":");
  Serial.print(timeClient.getMinutes());
  Serial.print(":");
  Serial.println(timeClient.getSeconds());
  //Serial.println(timeClient.getFormattedTime());

  delay(10000);
}

Результат будет выведен в мониторе порта

При первом обращении к серверу точного времени могут получены неправильные данные. В дальнейшем, каждые 10 секунд в мониторе порта выводятся данные текущего времени.
Используются три библиотеки:

#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

Перед началом этого Урока, советуем повторить Основную информацию и запустить Ардуино IDE версии 1.8 или 2.х , которая была установлена по Инструкции