Difference between revisions of "Arduino: Time PC Sync"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) (New page: Sumber: http://playground.arduino.cc/Code/time ==Siapkan Library== Download dari * http://playground.arduino.cc/uploads/Code/Time.zip Extrak cp Time.zip /usr/share/arduino/libraries...) |
Onnowpurbo (talk | contribs) (→Code) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
Extrak | Extrak | ||
| − | |||
cd /usr/share/arduino/libraries/ | cd /usr/share/arduino/libraries/ | ||
| + | |||
| + | atau | ||
| + | |||
| + | cd ~/Arduino/libraries | ||
| + | |||
| + | wget http://playground.arduino.cc/uploads/Code/Time.zip | ||
unzip Time.zip | unzip Time.zip | ||
| + | cd Time | ||
| + | gedit DateStrings.cpp | ||
| + | |||
| + | Tambahkan di | ||
| + | |||
| + | char > char const | ||
| + | PGM_P > PGM_P const | ||
==Code== | ==Code== | ||
| Line 80: | Line 92: | ||
} | } | ||
| + | ==PC Sync== | ||
| + | Lakukan | ||
| + | date +T%s\n > /dev/ttyACM0 | ||
| + | Untuk mensinkronisasi waktu | ||
==Referensi== | ==Referensi== | ||
* http://playground.arduino.cc/Code/time | * http://playground.arduino.cc/Code/time | ||
Latest revision as of 15:51, 26 May 2018
Sumber: http://playground.arduino.cc/Code/time
Siapkan Library
Download dari
Extrak
cd /usr/share/arduino/libraries/
atau
cd ~/Arduino/libraries
wget http://playground.arduino.cc/uploads/Code/Time.zip unzip Time.zip cd Time gedit DateStrings.cpp
Tambahkan di
char > char const PGM_P > PGM_P const
Code
#include <Time.h>
#define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by Unix time_t as ten ASCII digits
#define TIME_HEADER 'T' // Header tag for serial time sync message
#define TIME_REQUEST 7 // ASCII bell character requests a time sync message
// T1262347200 //noon Jan 1 2010
void setup() {
Serial.begin(9600);
}
void loop(){
if(Serial.available() )
{
processSyncMessage();
}
if(timeStatus() == timeNotSet)
Serial.println("waiting for sync message");
else
digitalClockDisplay();
delay(1000);
}
void digitalClockDisplay(){
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
}
void printDigits(int digits){
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
void processSyncMessage() {
// if time sync available from serial port, update time and return true
while(Serial.available() >= TIME_MSG_LEN ){ // time message consists of header & 10 ASCII digits
char c = Serial.read() ;
Serial.print(c);
if( c == TIME_HEADER ) {
time_t pctime = 0;
for(int i=0; i < TIME_MSG_LEN -1; i++){
c = Serial.read();
if( c >= '0' && c <= '9'){
pctime = (10 * pctime) + (c - '0') ; // convert digits to a number
}
}
setTime(pctime); // Sync Arduino clock to the time received on the serial port
}
}
}
PC Sync
Lakukan
date +T%s\n > /dev/ttyACM0
Untuk mensinkronisasi waktu