Hoe krijg ik een tijdstempel van wanneer de gegevens zijn verzameld

In principe wil ik de tijd kunnen weergeven waarop de Arduino de gegevens heeft verzameld met de datawaarde, niet de tijd waarop de arduino de gegevens heeft afgedrukt. Er is een tijdstempelfunctie op de console, maar ik wil de tijd vinden waarop de gegevens zijn verzameld.

Ik ben hier een beetje nieuw in, dus alle hulp wordt zeer op prijs gesteld!

Opmerkingen

  • heeft u het tijdstip geregistreerd waarop de gegevens zijn verzameld?
  • Welke Arduino gebruikt u (voor het geval u de vraag verkeerd hebt getagd)?
  • Op zichzelf is het enige tijdstempel van een arduino-uno ' het aantal milliseconden sinds de reset. Serial.println(millis());

Antwoord

Een " tijdstempel krijgen " wanneer gegevens worden verzameld, is geheel aan jou.

De meeste Arduinos hebben geen idee van de huidige tijd, alleen de tijd sinds het programma begon te draaien. Om te weten hoe laat " nu " is, moet je een mechanisme hebben om de Arduino te vertellen hoe laat het is, samen met een methode om die tijd bij te houden.

Er zijn apparaten die Real-Time Clock (RTC) -modules worden genoemd die de tijd voor je bijhouden. Ze weten niet op magische wijze de tijd – je moet ze nog minstens één keer vertellen.

Je zou het de tijd kunnen aangeven via de seriële poort om de klok in te stellen – vanaf dat moment (ervan uitgaande dat de RTC stroom heeft ) de RTC weet wat de tijd is.

Een andere optie om de tijd in de RTC te krijgen, is door een internetverbinding (ESP8266, WiFi-shield, Ethernet-shield, enz.) te gebruiken om een Network Time Protocol ( NTP) naar een tijdserver op internet (zoals pool.ntp.org) om de huidige tijd op te halen en de RTC bij te werken. Dit moet regelmatig worden gedaan om eventuele afwijkingen in de RTC te corrigeren.

Als je eenmaal een RTC hebt en een methode om de tijd in te stellen, kun je de tijd opvragen wanneer je wat gegevens bemonstert en die tijd samen met de gegevens opslaan op de manier die het meest geschikt is voor jouw situatie.

Antwoord

Het hangt af van hoe u de tijdstempel definieert. Een Unix-tijdstempel is het aantal seconden dat is verstreken sinds de Unix-epochetijd, dwz 1 januari 1970 00:00 UTC, dit is een veel voorkomende tijdstempel. Je kunt NTP instellen via internet, of je kunt een RTC op je bord gebruiken. Hoe u het doet, hangt af van hoe nauwkeurig u het wilt en wat u beschikbaar heeft. Probeer deze link, het kan helpen: https://currentmillis.com/

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *