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 Banggood
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 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.