The Raspberry Pi, when isn't connected to the Internet can not synchronize its clock (date and time). So for a Raspberry Pi isolated synchronize the date and time can be achieved by **GPS satellite synchronization**. In this example we use a GPS receiver with a USB connection.
====== GPS receiver ======
Any GPS should head, insofar as it sending data to the **NMEA** standard. The time and date are provided in the frame ''GPRMC'', we use a model VK-162, available from [[http://www.banggood.com/fr/VK-162-Notebook-Usb-GPS-Navigation-Module-Support-Google-Earth-p-975418.html
|Banggood]]
{{ :fr:documents:gps_usb.png?direct&150 |}}
====== Receive GPS data ======
Then check if it sends back NMEA sentences, i.e. using cat: (CTRL-C to quit)
cat /dev/ttyACM0
$GPRMC,191745.80,V,,,,,,,160314,,,N*7B
$GPVTG,,,,,,,,,N*30
...
For your information, the ''GPRMC'' frame is decoded by this way.
$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh
1 = UTC of position fix
2 = Data status (V=navigation receiver warning)
3 = Latitude of fix
4 = N or S
5 = Longitude of fix
6 = E or W
7 = Speed over ground in knots
8 = Track made good in degrees True
9 = UT date
10 = Magnetic variation degrees (Easterly var. subtracts from true course)
11 = E or W
12 = Checksum
====== Install software to update time ======
Download the ZIP archive or fetch source code using git:
git clone https://github.com/adamheinrich/gpsdate
To build the project, simply navigate to project's directory and call make:
cd gpsdate
make all
Now you can use the gpsdate tool to change your local time. Simply call
sudo ./gpsdate /dev/ttyACM0
Local datetime was: 2014-03-16 20:19:06 (CET)
GPS datetime is: 2014-03-16 19:19:07 (UTC)
Succesfully updated local time.
====== Autoupdate date and time ======
==Auto update daily==
For autoupdated daily you need addd line in CRON files [[https://en.wikipedia.org/wiki/Cron#crontab|CRON]]
sudo crontab -e
Clock updated every day at 11h30pm, add folowed lines:
30 23 * * * /home/pi/gpsdate/gpsdate /dev/ttyACM0
You can save and quit using CTRL-X, Y and ENTER.