Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Chyba synchronizace času u ESP8266-1 *vyřešeno*
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: ne listopad 30 2025, 15:44    Předmět: Chyba synchronizace času u ESP8266-1 *vyřešeno* Citovat

Upoutal mě WiFi termostat a chtěl jsem to použít k ovládání kotle. Jenže to chodilo asi jen autorovi. Kompilace projde v pořádku, nahrání do ESP taky OK, na telefonu se naloguji, mohu tam měnit hodnoty, ale to je všechno. Čas neběží.
V sérivém monitoru vidím opakující se chybu a nevím co s tím. Zkoušel jsem různé knihovny, ale marně. Zkusil jsem i AI, ale ta mě do toho jen zamotala.
Mohl by mě někdo poradit, kde by mohla být chyba?
kód:
*wm:AutoConnect: SUCCESS
*wm:STA IP Address: 192.168.0.154
192.168.0.154
HTTP server started
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
3 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 
4 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
5 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
6 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
Time Sync error: Got NTP time: 15:22:35 30/11/2025
error
0
0
0:0:0
 
error
0
0
0:0:0
 
error
0
0
0:0:0

_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.


Naposledy upravil hafca dne čt prosinec 04 2025, 13:48, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
samec



Založen: Dec 19, 2017
Příspěvky: 5915

PříspěvekZaslal: ne listopad 30 2025, 17:03    Předmět: Citovat

Úžasné, keď robíš niečo a netušíš čo. Laughing

Zrejme sa to ESP pripája nejako??? na nejaký server???, alebo modul???, lebo ESP samé o sebe časostroj nemá. Nuž ale to už si vykonzultuj s autorom kódu, keď si lenivý sa naučiť programovať.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Valdano



Založen: Jan 01, 2023
Příspěvky: 2783
Bydliště: Česká Lípa

PříspěvekZaslal: ne listopad 30 2025, 17:18    Předmět: Citovat

Když chcete používat nějaký cizí projekt, který jste sám nenapsal tak je potřeba, abyste měl aspoň trochu přehled o tom jak co funguje, jinak se může stát, že vůbec nedokážete najít případný problém.

ESP nemá vlastní RTC čip, který by byl zálohovaný baterií tak jako to má běžně PC. Takže k tomu, aby v ESP fungoval čas musíte po každém zapnutí provést synchronizaci času. Pak teprve po úspěšném provedení synchronizace bude čas v ESP běžet, ale jen do vypnutí. Po zapnutí bude zase potřeba provést synchronizaci času. Synchronizace času se provádí prostřednictvím NTP serveru.

V programu thermostat.ino, který je na tom vámi odkazovaném webu jako příklad, se provádí synchronizace času vždy jednou po zapnutí ve funkci setup().

Problém je v tom, že v tom zdrojáku je definován odkaz na již nefunkční NTP server viz tento řádek

NTP.begin("fr.pool.ntp.org", 1, true);

Nahraďte ho odkazem na funkčním NTP server ntp.nic.cz viz níže.

NTP.begin("ntp.nic.cz", 1, true);

K provedení synchronizace musí být v době zapnutí toho ESP v rámci Wifi sítě, ke které se to ESP připojuje samozřejmě dostupný Internet, aby se ESP mohlo připojit na ten NTP server.

Další problém bude v tom, že ve zdrojáku thermostat.ino se ESP nepřipojuje na jinou Wifi s dostupným Internetem, ale sama vytváří vlastní izolovaný AP bod což znamená, že bude bez připojení k Internetu tj. i výše zmíněný funkční NTP server bude nedostupný.

Ve zdrojáku thermostat.ino jsou dvě varianty funkce connexion(). První, která je zakomentovaná /* */ je určena k připojení k existující Wifi síti tj. ta co obsahuje WiFi.begin(ssid, password);

Druhá varianta funkce connexion(), která je v tom zdrojáku skutečně použitá vytváří vlastní izolovaný AP bod viz wifiManager.setAPCallback.

Takže kromě té již výše uvedené úpravy v odkazu na NTP server musíte ještě navíc zakomentovat tu druhou variantu funkce connexion() a odkomentovat tu první s tím, že musíte v horní části zdrojáku nadefinovat ssid a password (tj. heslo)

const char* ssid = "??????";
const char* password = "??????";


pro přípojení k vaší lokální Wifi, ke které se bude ESP připojovat a která by měla mít dostupné připojení na Internet, aby se ESP mohlo připojit k tomu NTP serveru.

Pokud se chcete synchronizaci času přes Internet vyhnout tak si můžete k tomu ESP dokoupit třeba tento modul s RTC čipem a do programu si k tomu doplnit i obsluhu. Inspirovat se můžete podle tohoto návodu, který je k Arduinu tj. pro ESP si to budete muset upravit třeba podle tohoto návodu. Pak bude stačit osadit ten modul baterií, čas v modulu jednou nastavit a pak už se o čas nemusíte řadu let starat, protože chod času v době vypnutí udrží ta baterie.

Tu synchronizaci vůči NTP serveru si můžete v programu pozměnit na povel tak, aby jste mohl čas srovnat když se bude RTC čas po nějaké době už dost rozcházet s platným časem třeba za rok a nebo si namísto té synchronizace vůči NTP dodělejte do toho webového rozhraní ESP, přes které k tomu přistupujete, možnost ručního nastavení času. S ručním nastavením času byste se obešel bez Internetu i bez RTC, ale mělo by to tu nevýhodu, že byste v takovém případě musel po každém zapnutí ESP čas znovu ručně nastavit jinak by čas v ESP neběžel.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: ne listopad 30 2025, 20:32    Předmět: Citovat

ESP se připojí na WiFi a já jí vidím v telefonu. V té ESP jsou uložené 3 webové stránky na které se bez problému dostanu přes 192.168.4.1. Na výpisu z serial monitoru co jsem sem dal je vidět, že si čas načte. Takže není potřeba nic dalšího. Nefunguje jen ta synchronizace.


2 printscreeny.jpg
 Komentář:
 Velikost:  141.93 kB
 Zobrazeno:  3 krát

2 printscreeny.jpg



_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 497

PříspěvekZaslal: ne listopad 30 2025, 20:54    Předmět: Citovat

Koukal jsem do kódu a přijde mi, že ty hlášky "Time Sync error" a "Got NTP time" se nemůžou vypsat obě. Nedělal jsi tam nějaké změny?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: ne listopad 30 2025, 20:59    Předmět: Citovat

Ne, je to původní. Mám ještě jednu upravenou verzi, kde je čidlo teploty BMP280 a je to stejné.
_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 497

PříspěvekZaslal: ne listopad 30 2025, 21:06    Předmět: Citovat

Já tam našel tenhle kód:
kód:
  if (error) {
    Serial.print("Time Sync error: ");
    if (error == noResponse)
      Serial.println("NTP server not reachable");
    else if (error == invalidAddress)
      Serial.println("Invalid NTP server address");
    }
  else {
    Serial.print("Got NTP time: ");
    Serial.println(NTP.getTimeDateString(NTP.getLastNTPSync()));
  }
Máš ho tam taky tak? Přece nemůže udělat obojí, ne?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: ne listopad 30 2025, 21:18    Předmět: Citovat

Mám tam tohle
kód:
 
  NTP.begin("fr.pool.ntp.org", 1, true);
  NTP.setInterval(60);

  NTP.onNTPSyncEvent([](NTPSyncEvent_t error) {
  if (error) {
    Serial.print("Time Sync error: ");
    if (error == noResponse)
      Serial.println("NTP server not reachable");
    else if (error == invalidAddress)
      Serial.println("Invalid NTP server address");
    }
  else {
    Serial.print("Got NTP time: ");
    Serial.println(NTP.getTimeDateString(NTP.getLastNTPSync()));
  }
});

_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 497

PříspěvekZaslal: ne listopad 30 2025, 21:23    Předmět: Citovat

Hmm, to je ono. Je to divné. Tak se to možná volá dvakrát. Jednou s chybou, podruhé bez chyby.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: ne listopad 30 2025, 21:33    Předmět: Citovat

Na konci toho výpisu se volá refresh_planning, ale jestli je to tím jsem nezjistil.
kód:
void refresh_planning(){
   int c=0;
  for(int j=1;j<=7;j++){
    Serial.print(j);
    Serial.print(" ");
  for(int i=1;i<=24;i++){
   c++;
   planning[j-1][i-1]=prog[c-1];
   Serial.print( planning[j-1][i-1]);
   Serial.print(" ");
  }
  Serial.println(" ");
}


_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pocitujlasku



Založen: Dec 12, 2005
Příspěvky: 2707
Bydliště: SR, Poprad

PříspěvekZaslal: ne listopad 30 2025, 21:39    Předmět: Citovat

kedze v arduino IDE nema zapnuty timestamp, tak predpokladam, ze prvykrat ntp sa deje v case, ked este nie je na wifi a potom po 60 sekundach (ako ma nastaveny interval). alebo sa ta kniznica pokusa pri prvom zlyhani o dalsi pokus o niekolko sekund a ten uz je ok.
chcelo by to vyhodit tie 2 if a nechat si vypisat konkretny error.

_________________
No vidis, a tak si sa bal
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 497

PříspěvekZaslal: ne listopad 30 2025, 22:12    Předmět: Citovat

A zavolat tohle jde? (třeba z PC-čka): "http://"+ip+"/control?cmd=GPIO,2,0"
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: po prosinec 01 2025, 13:16    Předmět: Citovat

Tady je výpis bez těch if
kód:
*wm:AutoConnect: SUCCESS
*wm:STA IP Address: 192.168.0.154
192.168.0.154
HTTP server started
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
3 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 
4 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
5 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
6 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 
7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
Got NTP time: 00:00:00 01/01/1970
Got NTP time: 13:14:44 01/12/2025
error
0
0
0:0:0
 
error
0
0

_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 497

PříspěvekZaslal: po prosinec 01 2025, 16:07    Předmět: Citovat

Podle mě ta hláška error nejspíš znamená, že mu nejde zavolat tohle URL:
asdf napsal(a):
A zavolat tohle jde? (třeba z PC-čka): "http://"+ip+"/control?cmd=GPIO,2,0"
Tím chce asi vypnout/zapnout kotel. Jde ti to URL zavolat z PC?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
hafca



Založen: Jul 27, 2004
Příspěvky: 4693
Bydliště: 25km na západ od Prahy

PříspěvekZaslal: po prosinec 01 2025, 16:20    Předmět: Citovat

Nejde, hlásí to chybu. V tom druhém ESP bude asi špatný program. Nedokážu v něm uložit heslo a SSID. Autor tam dal odkaz, který už nefunguje a tak zkouším co se dá.
_________________
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.41 sekund