• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP time.h изменить время

krivmst

New member
Всем привет!
Не получается изменить время, библиотека time.h
Делаю через компилятор Arduino, для ESp8266.
Получаю время так:
Код:
void timeSynch(int zone){
    // Настройка соединения с NTP сервером
    configTime(zone * 3600, 0, "pool.ntp.org", "ru.pool.ntp.org");
    int i = 0;
    while (!time(nullptr) && i < 10) {
      Serial.print(".");
      i++;
      delay(1000);
    }
 
}
Вывожу так:
Код:
String GetTime() {
 time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
 String Time = ""; // Строка для результатов времени
 Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
 int i = Time.indexOf(":"); //Ишем позицию первого символа :
 Time = Time.substring(i - 2, i + 6); // Выделяем из строки 2 символа перед символом : и 6 символов после
 return Time; // Возврашаем полученное время
}
А вот в ручную изменить полученное время не могу. Подскажите пожалуйста, как можно это сделать?
 

enjoynering

Well-known member
Зачем вы используете эту унылую копипасту time.h из прошлого века. Библиотека time.h хорошее решение для AVR где нет WiFi и встроенного RTC. У вас же ESP8266. Не надо повторять чужой кривой код. Включайте мозг.

В Arduino ESP8266 Core давно все есть тз коробки. Раз в час ESP8266 стучится на один из трех NTP серверов, получает точное время и корректирует встроенный в ESP8266 RTC. Все это делается 3-я строчками кода!!! И ни каких тебе DS1307, DS3231, GPS NMEA и time.h.

смотрите пример - Arduino/libraries/esp8266/examples/NTP-TZ-DST/NTP-TZ-DST.ino
исходный код функций для лучшего понимания - Arduino/cores/esp8266/time.cpp
 

krivmst

New member
проблема в том, что когда не может постучаться, надо в ручную поменять
 
Сверху Снизу