Hi,
I am struggling to add a timestamp when an event occurs.
I would like to add a timestamp from an RTC when the maximum windspeed happened.
I have made a String variable, MaxwindTime, which should take on the current time, TimeBuffer, of the RTC. However, this doesn't seem to work.
Any ideas how to do this?
#include "Sodaq_DS3231.h"
char TimeBuffer[20] = ""; //Full date and time stamp
String MaxWindTime;
int anemometerOutput; //Read analogue input A0 (0-1023)
int CurrentWindSpeed;
int MaxWind=0;
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
void setup() {
Serial.begin(9600);
rtc.begin(); //Start the RTC library code
}
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
void loop() {
windSpeed();
maxWind();
Clock();
printWindData();
delay(500);
}
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
void windSpeed() {
anemometerOutput = analogRead(A0); //Read analogue input A0 (0-1023)
CurrentWindSpeed = map(anemometerOutput,0,1023,0,180); //10-bits input, converts 0 to 5V to 0kph to 180kph
}
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
void maxWind(){
if(CurrentWindSpeed > MaxWind) {
MaxWind = CurrentWindSpeed;
MaxWindTime = TimeBuffer;
}
}
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
void printWindData() {
Serial.print("Current windspeed = ");
Serial.print(CurrentWindSpeed);
Serial.print("kph, ");
Serial.print(CurrentWindSpeed / 3.6,1); //Conversion to meters/second, 1 decimal
Serial.print("m/s, ");
Serial.print(CurrentWindSpeed * 0.539957,1); //Conversion to knots, 1 decimal
Serial.println("knots.");
Serial.print("MaxWind = ");
Serial.print(MaxWind);
Serial.print(" kph, occurred at ");
Serial.println(MaxWindTime);
Serial.println("");
}
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
void Clock() {
DateTime now = rtc.now(); //Read the current date-time from the RTC
sprintf(TimeBuffer, "%04d-%02d-%02d %02d:%02d:%02d", now.year(), now.month(), now.date(), now.hour(), now.minute(), now.second());
}