Le Raspberry Pi, lorsqu'il n'est pas relié au réseau internet ne peut pas synchroniser son horloge (date et heure). Ainsi pour un Raspberry Pi isolé, la synchronisation de la date et de l'heure peut se réaliser par la synchronisation **par satellites GPS**. Sur cet exemple nous utilisons un récepteur GPS avec une connexion USB.
====== Le récepteur GPS ======
N'importe quelle tête GPS conviendra, dans la mesure où celui-ci envoi des données au standard **NMEA**. L'heure et la date sont mises à disposition dans la trame ''GPRMC''
Dans notre cas, nous utilisons un modèle VK-162, disponible chez [[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 |}}
====== Réception des données GPS ======
Vous pouvez tester si vous recevez les trames NMEA, en utilisant cat et CTRL-C pour quitter:
cat /dev/ttyACM0
$GPRMC,191745.80,V,,,,,,,160314,,,N*7B
$GPVTG,,,,,,,,,N*30
...
Pour information, la trame ''GPRMC'' se décode comme cela.
$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
====== Installation du logiciel de mise à l'heure ======
Télécharger le programme en utilisant git (si vous ne l'avez pas déjà installer le avec la commande sudo apt-get install git):
git clone https://github.com/adamheinrich/gpsdate
Installer le programme en vous rendant dans le repertoire en tapant les commandes suivantes:
cd gpsdate
make all
Maintenant vous pouvez utiliser gpsdate pour mettre à jour l'heure du système. Simplement avec la commande:
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.
====== Mises à jour automatique de l'heure ======
Pour que le système se mette à jour quotidiennement, nous allons ajouter une commande dans le fichier [[https://fr.wikipedia.org/wiki/Cron#crontab|CRON]]
sudo crontab -e
Actualisation de l'horloge système tous les jours à 23h30, ajouter la ligne suivante:
30 23 * * * /home/pi/gpsdate/gpsdate /dev/ttyACM0
Vous pouvez quitter en utilisant ''CTRL-X'', ''O'' (ou ''Y'' si vous êtes en anglais) puis Entrée.