Delete Sensor_RTC.h
This commit is contained in:
parent
396cf289b5
commit
aa4f3aa973
226
Sensor_RTC.h
226
Sensor_RTC.h
|
@ -1,226 +0,0 @@
|
|||
// Version 0.1, 03-02-2020, SM
|
||||
// - initial version
|
||||
// ***********************************************************************************
|
||||
// maakt gebruik van C:\Users\Mattijs\Documents\Arduino\libraries\Grove_-_RTC_DS1307
|
||||
// volgens de datasheet: https://datasheets.maximintegrated.com/en/ds/DS1307.pdf
|
||||
// werkt het ic alleen met een I2C-klok van 100 kHz
|
||||
// experimenten tonen echter het volgende
|
||||
// de chip werkt goed met een klok van 200kHz ... 1MHz
|
||||
// getest met ESP8266 in 80/160MHz mode, met en zonder optrekweerstanden
|
||||
// ***********************************************************************************
|
||||
|
||||
|
||||
// ***********************************************************************************
|
||||
// Gebruik definieer Set_RTC_YMD_HMS_DoW, voordat Sensor_Receiver_2 wordt geimporteerd
|
||||
// ***********************************************************************************
|
||||
//#define Set_RTC_YMD_HMS_DoW "2020,1,10,13,11,13,MON"
|
||||
//#include "Sensor_Receiver_2.h"
|
||||
// ***********************************************************************************
|
||||
|
||||
|
||||
#ifndef Sensor_RTC_h
|
||||
#define Sensor_RTC_h 0.1
|
||||
|
||||
#include "DS1307.h"
|
||||
DS1307 Rclock ; // liefst Llokaal
|
||||
|
||||
// Volgens de specificaties mag de klok maximaal 100 kHz zijn
|
||||
// Volgens mijn metingen moet de klok minimaal 200 kHz zijn
|
||||
// ***********************************************************************
|
||||
#define _RTC_My_I2C_Clock 400000
|
||||
// ***********************************************************************
|
||||
|
||||
// ***********************************************************************************
|
||||
// ***********************************************************************************
|
||||
class _Sensor_RTC : public _Sensor_BaseClass {
|
||||
|
||||
public:
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// Creator,
|
||||
// ***********************************************************************
|
||||
_Sensor_RTC () {
|
||||
Version_Name = "V" + String ( Sensor_RTC_h ) + " Sensor_RTC.h" ;
|
||||
Serial.println ( "CREATE " + Version_Name ) ;
|
||||
this -> _JSON_Long_Header = "Date\tTime\t" ;
|
||||
this -> _JSON_Short_Header = "Date\tTime\t" ;
|
||||
Help_Text = " >>>>>>> ToDO Help tekst" ;
|
||||
}
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// ***********************************************************************
|
||||
void setup () {
|
||||
Wire.setClock ( 400000 ) ; // _RTC_My_I2C_Clock ) ;
|
||||
|
||||
#ifdef Set_RTC_YMD_HMS_DoW
|
||||
Serial.println ( "==================> Set RTC" ) ;
|
||||
String Line = Set_RTC_YMD_HMS_DoW ;
|
||||
My_StringSplitter *Splitter = new My_StringSplitter ( Line, ',' ) ;
|
||||
|
||||
int Year = ( Splitter->getItemAtIndex(0)).toInt() ;
|
||||
int Month = ( Splitter->getItemAtIndex(1)).toInt() ;
|
||||
int Day = ( Splitter->getItemAtIndex(2)).toInt() ;
|
||||
int Hour = ( Splitter->getItemAtIndex(3)).toInt() ;
|
||||
int Minute = ( Splitter->getItemAtIndex(4)).toInt() ;
|
||||
int Second = ( Splitter->getItemAtIndex(5)).toInt() ;
|
||||
|
||||
int DoW ;
|
||||
Line = Splitter -> getItemAtIndex(6) ;
|
||||
if ( Line == "MON" ) DoW = MON ;
|
||||
else if ( Line == "TUE" ) DoW = TUE ;
|
||||
else if ( Line == "WED" ) DoW = WED ;
|
||||
else if ( Line == "THU" ) DoW = THU ;
|
||||
else if ( Line == "FRI" ) DoW = FRI ;
|
||||
else if ( Line == "SAT" ) DoW = SAT ;
|
||||
else DoW = SUN ;
|
||||
|
||||
Rclock.begin();
|
||||
Rclock.fillByYMD ( Year, Month, Day ) ;
|
||||
Rclock.fillByHMS ( Hour, Minute, Second ) ;
|
||||
Rclock.fillDayOfWeek ( DoW ) ;
|
||||
Rclock.setTime();
|
||||
|
||||
// trying to get the first real read also correct
|
||||
delay ( 1000 ) ;
|
||||
Rclock.getTime();
|
||||
delay ( 1000 ) ;
|
||||
Rclock.getTime();
|
||||
Serial.println ("done");
|
||||
#endif
|
||||
}
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// ***********************************************************************
|
||||
//void loop () {
|
||||
//}
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// ***********************************************************************
|
||||
|
||||
String GetDateTime() {
|
||||
Wire.setClock ( 400000 ) ; //_RTC_My_I2C_Clock ) ;
|
||||
Rclock.getTime();
|
||||
|
||||
char DateTimeBuffer[35] = "";
|
||||
|
||||
String DayOfWeek ;
|
||||
switch (Rclock.dayOfWeek) { // Friendly printout the weekday
|
||||
case MON:
|
||||
DayOfWeek = "Monday" ;
|
||||
break;
|
||||
case TUE:
|
||||
DayOfWeek = "Tuesday" ;
|
||||
break;
|
||||
case WED:
|
||||
DayOfWeek = "Wednesday" ;
|
||||
break;
|
||||
case THU:
|
||||
DayOfWeek = "Thursday" ;
|
||||
break;
|
||||
case FRI:
|
||||
DayOfWeek = "Friday" ;
|
||||
break;
|
||||
case SAT:
|
||||
DayOfWeek = "Saterday" ;
|
||||
break;
|
||||
case SUN:
|
||||
DayOfWeek = "Sunday" ;
|
||||
break;
|
||||
}
|
||||
|
||||
Global_DateTime.Year = Rclock.year + 2000 ;
|
||||
Global_DateTime.Month = Rclock.month ;
|
||||
Global_DateTime.Day = Rclock.dayOfMonth ;
|
||||
Global_DateTime.Hour = Rclock.hour ;
|
||||
Global_DateTime.Minute = Rclock.minute ;
|
||||
Global_DateTime.Second = Rclock.second ;
|
||||
|
||||
sprintf ( DateTimeBuffer, "%04d-%02d-%02d %02d:%02d:%02d ",
|
||||
Rclock.year + 2000, Rclock.month, Rclock.dayOfMonth,
|
||||
Rclock.hour, Rclock.minute, Rclock.second ) ;
|
||||
Serial.print ( DateTimeBuffer ) ;
|
||||
Serial.print ( DayOfWeek ) ;
|
||||
Serial.println ();
|
||||
return String ( DateTimeBuffer ) ;
|
||||
}
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// Get all the sampled data as a JSON string
|
||||
// ***********************************************************************
|
||||
void Get_JSON_Data () {
|
||||
String DateTime = this -> GetDateTime () ;
|
||||
JSON_Data += " \"Date\":\"" ;
|
||||
JSON_Data += DateTime.substring(0,10) ;
|
||||
JSON_Data += "\", \"Time\":\"" ;
|
||||
JSON_Data += DateTime.substring(11,19) ;
|
||||
JSON_Data += "\"," ;
|
||||
|
||||
JSON_Short_Data += DateTime.substring(0,10) ;
|
||||
JSON_Short_Data += "\t" ;
|
||||
JSON_Short_Data += DateTime.substring(11,19) ;
|
||||
JSON_Short_Data += "\t" ;
|
||||
}
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// ***********************************************************************
|
||||
bool Handle_Serial_Command ( String Serial_Command ) {
|
||||
String LowerCase = Serial_Command ;
|
||||
LowerCase.toLowerCase () ;
|
||||
|
||||
if ( LowerCase.startsWith ( "help" ) ) {
|
||||
Serial.println ( _Serial_Commands_Text ) ;
|
||||
this -> Print_Current_Time () ;
|
||||
return false ;
|
||||
}
|
||||
else if ( LowerCase.startsWith ( "?" ) ) {
|
||||
Serial.println ( _Serial_Commands_Text ) ;
|
||||
this -> Print_Current_Time () ;
|
||||
return false ;
|
||||
}
|
||||
else if ( LowerCase.startsWith ( "rtc" ) ) {
|
||||
Serial.println ( Serial_Command + "##" ) ;
|
||||
int Delta_Second = ( Serial_Command.substring ( 4 )).toInt() ;
|
||||
Serial.println ( "Correcting RTC by Seconds = " + String ( Delta_Second ) ) ;
|
||||
|
||||
int Delta_Hour = Delta_Second / 3600 ;
|
||||
Delta_Second -= 3600 * Delta_Hour ;
|
||||
int Delta_Minute = Delta_Second / 60 ;
|
||||
Delta_Second -= 60 * Delta_Minute ;
|
||||
Serial.println ( "dHour = " + String(Delta_Hour) + " dMinute = " + String (Delta_Minute) + " dSec = " + String ( Delta_Second ) ) ;
|
||||
|
||||
Wire.setClock ( _RTC_My_I2C_Clock ) ;
|
||||
Rclock.getTime();
|
||||
int Hour = Rclock.hour ;
|
||||
int Minute = Rclock.minute ;
|
||||
int Second = Rclock.second ;
|
||||
Rclock.begin();
|
||||
Rclock.fillByHMS ( Hour + Delta_Hour, Minute + Delta_Minute, Second + Delta_Second ) ;
|
||||
Rclock.setTime();
|
||||
delay ( 1000 ) ;
|
||||
|
||||
this -> Print_Current_Time () ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
|
||||
// ***********************************************************************
|
||||
private:
|
||||
// ***********************************************************************
|
||||
|
||||
String _Serial_Commands_Text = "====== Sensor_RTC ======\n\
|
||||
RTC +[N] // TODO Zet de tijd [N] seconden vooruit\n\
|
||||
RTC -[N] // TODO Zet de tijd [N] seconden teruguit" ;
|
||||
|
||||
// _Sensor_RTC ***********************************************************
|
||||
// ***********************************************************************
|
||||
void Print_Current_Time () {
|
||||
Serial.print ( "Current DateTime = " ) ;
|
||||
this -> GetDateTime () ;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue