Practic vreau să pot afișa ora în care arduino a colectat datele cu valoarea datelor, nu ora în care arduino a tipărit datele. Există o caracteristică de marcare a timpului pe consolă, totuși vreau să găsesc ora la care au fost colectate datele.
Sunt „puțin nou în acest sens, așa că orice ajutor este foarte apreciat!
Comentarii
Răspuns
Obținerea unui " marcaj de timp din momentul colectării datelor vă revine în totalitate.
Majoritatea Arduino-urilor nu au niciun concept despre ora curentă, doar timpul de când programul a început să ruleze. Pentru a afla care este timpul " acum " trebuie să aveți un mecanism pentru a spune Arduino care este timpul, împreună cu o metodă de a ține evidența acelui timp.
Există dispozitive numite module Ceas în timp real (RTC) care țin evidența timpului pentru dvs. Ei nu știu în mod magic ora – trebuie totuși să le spuneți cel puțin o dată.
Ați putea spune ora prin portul serial pentru a seta ceasul – de atunci înainte (presupunând că RTC are putere ) RTC va ști care este ora.
O altă opțiune pentru a obține timpul în RTC este utilizarea unei conexiuni la internet (ESP8266, scut WiFi, scut Ethernet etc.) pentru a efectua un Network Time Protocol ( NTP) interogare către un server de timp de pe internet (cum ar fi pool.ntp.org
) pentru a obține ora curentă și a actualiza RTC. Acest lucru ar trebui făcut periodic pentru a corecta orice deriva din RTC.
Odată ce aveți un RTC și o metodă de setare a timpului, puteți interoga ora ori de câte ori eșantionați unele date și le stocați împreună cu datele în orice mod este cel mai potrivit pentru situația dvs.
Răspuns
Depinde de modul în care definiți ștampila de timp. Un timestamp Unix este numărul de secunde scurs de la ora Unix, adică 1 ianuarie 1970 00:00 UTC, asta este un marcaj de timp foarte comun. Puteți configura cu NTP prin internet sau puteți utiliza un RTC pe placa dvs. Modul în care o faceți depinde de cât de exactă o doriți și de ceea ce aveți la dispoziție. Încercați acest link, vă poate ajuta: https://currentmillis.com/
Serial.println(millis());