Tout dépend de la quantité de données que vous êtes prêt à perdre. Si vous ne pouvez pas vous permettre de perdre quoi que ce soit, il vous faudra trouver un moyen de connecter votre PI directement à la batterie (avec un fusible bien sûr), afin qu'il ne s'éteigne pas lorsque le contact est coupé.
Là encore, une batterie de voiture typique aurait environ 80 Ah et le PI consommera entre 500-1200 mA (selon qu'il s'agit d'un modèle A ou B), ce qui épuisera probablement la batterie de votre voiture entre 2 et 6 jours, donc je ne pense pas que vous trouverez cela acceptable.
Si vous ne pouvez toujours pas vous permettre de perdre des données, vous pourrez peut-être concevoir une sorte de matériel personnalisé où vous pouvez contrôler l'alimentation électrique du PI et également surveiller l'état de l'allumage. Si le contact est coupé, vous videz vos données sur la carte SD, arrêtez le système d'exploitation puis, comme dernière étape, coupez l'alimentation. L'alimentation doit également être activée lorsque le contact est mis, pour laisser le PI redémarrer. Tout cela est faisable, mais c'est un projet assez important.
Cependant, si vous trouvez acceptable de perdre des données à l'arrêt, je concevoir le démon qui enregistre périodiquement les données GPS dans un fichier de telle sorte qu'il exécute un appel fsync après chaque écriture (pour vider les données sur le SD- carte). Si vous effectuez cette opération toutes les quelques secondes (et que vous utilisez également le système de fichiers ext4 de journalisation par défaut), cela signifie probablement que vous ne perdrez que les dernières secondes à chaque coupure de courant.
Veuillez garder à l'esprit que Raspbian (au moins mon installation) n'était pas fourni avec un fsck du système de fichiers racine au démarrage. Vous devez procéder comme suit pour l'activer à chaque montage:
tune2fs -c 1 /dev/mmcblk0p2
Vous devez également modifier la dernière ligne du système de fichiers racine dans / etc / fstab pour qu'elle contienne un 1, comme ceci:
/dev/mmcblk0p2 / ext4 defaults,noatime,commit=120 0 1
Change this ^^^^^
Si vous ne le faites pas, votre système de fichiers racine peut ne pas être amorçable de temps en temps, donc si vous exécutez un système sans tête où vous coupez l'alimentation sans effectuer un arrêt contrôlé, cela est absolument nécessaire.