Grand amateur de sport et de voyage et étant quelque peu geek j'ai eu pour projet de réaliser un tracker GPS disposant d'une bonne autonomie ( qui restera à tester ... )
L'objectif étant d'avoir quelque chose d'assez propre pour un prix modéré ( < 100€, impossible à définir pour le moment) en utilisant du matériel relativement simple.
L'objectif finale serait de pouvoir partager un gros tutoriel détaillé pour réaliser le projet facilement.
Code open source, schéma de câblage, détails des composants utilisées etc
Me concernant je suis développeur web donc la partie serveur web ne devrait pas me poser trop de problèmes, pour ce qui concerne la partie électronique bah on verra ! c'est aussi pour ça que je suis là
Partie tracker GPS
En gros je vais avoir une partie tracker avec le raspberry, le capteur gps (+GPRS pour le réseau mobile), capteur température, capteur de pression, un écran LCD 2x16, 3 boutons de contrôle, 3 accus 18650 (3400mah chacun), tous ça dans une petit boite et le tout en étant étanche.
Fonctionnalités du tracker :
- Modes déplacement (auto, vélo, pied)
- Utilisation sur batterie et recharge secteur sans coupure (UPS), grâce au module Adafruit
- Synchronisation par l’intermédiaire d'un partage de connexion WIFI (Ou par le modem GPRS si ce n'est pas trop compliquer)
- OPTION : Bouton "Urgence" mode SOS - envoi d'un sms/mail à un contact prédéfini avec les coordonnées, pourquoi pas à un service d'urgence
Toute cette partie sera gérée en python.
Ensuite une seconde partie serveur
Elle sera développé en PHP avec Laravel et un serveur node.js (+ socket.io) pour la partie temps réel.
Ce serveur permettra de synchroniser les données du tracker à intervalle régulier ou prédéfini surement sous forme de fichier gpx ainsi que servir de passerelle pour le tracking en temps réel.
Fonctionnalités du serveur web :
- Visonnage des parcours effectués + statistiques
- Statistiques du voyage, km parcourus, dénivelé etc
- Visionnage des utilisateurs en temps réel (si l'option est activée sur le tracker)
Quelques photos :
Organisation
- Réflexion sur les composants à utilisés (90% fait)
- Achat des composants (90% fait)
- Réalisation d'une maquette fonctionnel sur base breadboard (en cours)
- Réalisation de la partie serveur (en cours)
- Tests de bon fonctionnement, d'autonomie, de fiabilité, etc
- Réalisation de la boite du tracker
- Tests en conditions réels
- Enjoy !
- Réalisation du tutoriel complet et partage des sources
Lien du projet Github (Raspberry part) : https://github.com/all3kcis/gps_tracker/
Ou j'en suis actuellement ? :
[13-05-2017]
J'ai le projet bien en tête, je réfléchi et j'avance conjointement entre les deux partie, j'ai reçu une grosse partie des composants, je commence par faire fonctionner le GPS et je rajouterais les différents capteurs par la suite.
Mon problème pour le moment étant d'utiliser ce type de gps : https://fr.aliexpress.com/item/SIM808-i ... 36727.html
Actuellement je n'arrive pas a communiqué avec le module sur le port série, le Raspberry ne détecte aucun équipement sur le port série ...
Si vous avez des pistes je suis preneur !
Ce gps étant assez gros et à l'air assez compliquer à utiliser je ne sais pas si je vais le conserver. Tout dépent de s'i j'arrive à en faire quelques chose
[20-05-2017]
Sa avance doucement, j'ai fais une version boitier carton et j'ai aussi avancé un peu côté dev logiciel sur le RPI (package, gestion boutons, logs, bientôt écran).
Côté module gps je laisse tomber le SIM808 pour le moment, j'ai commandé un autre module bien plus petit et qui gère le système Galileo !
Ah et j'oubliais, j'ai eu quelques soucis avec le boitier sensé être "waterproof" donc on verra si je le garde... Il reste la solution de boitier Pelican 1020 bien qu'un peu chère il est censé être étanche aussi.
Voir post ci-dessous pour les détails (et les photos).
[05-06-2017]
Côté serveur web toujours rien de nouveau.
Côté logiciel Raspberry , beaucoup d'évolutions sur le code, la structure générale est posé autour d'une classe "main" qui gère une interface (IHM) qui gère elle même l'écran "lcd" et les "bouttons".
La classe "main" gère aussi un "logger", la "configuration" avec la lib configparser ainsi qu'un système de "plugins"
Le système de plugins permettra de créer/adapter/personnaliser facilement l'application, notamment aux niveaux de capteurs utilisés, ce qui permettra de gérer facilement plusieurs type de GPS par exemple.
Pour le moment le premier plugin crée est celui du capteur de température (DS18B20).
Concernant l'IHM elle permet de gérer une partie de la configuration directement depuis le tracker, changement de fuseau horaire, activation du tracking, changement de mode de tracking, activation/désactivation de plugins, etc
Voilà la petite vidéo, elle montre le fonctionnement général actuel, les interactions possibles avec les boutons et les logs générés pendant que l'app est active.
Visualisation des infos générales, modification des paramètres, activation/désactivation des plugins.
A3K GPS tracker - Raspberry Pi zero W demo proto (Open source project)
Côté matériel, standby pour le moment
[05-07-2017]
Du côté logiciel sur le RPI, la fonction temps réel est ok ça fonctionne bien, les log des données gps aussi plus la synchro vers le serveur, c'est deux gros points qui font déjà plaisir. Le code est relativement stable de ce côté la.
Côté serveur web + serveur temps réel bin la ya beaucoup plus à faire ... Je ne vais pas rentrer dans les détails mais il reste pas mal de chose à faire et surtout à définir. notamment pas mal de questions que se posent au niveau du traitement des données gps reçu. (Stockage en DB ou export de parcours vers GPX) ça reste à devoir, puis il faut surtout développer l'outil qui va permettre d'extraire le parcours voulu de toutes les données enregistrées.
Côté matériel, j'ai intégré les composant dans le boitier finale, la partie de Tetris est réussi tout est rentré mais il faudra surement optimiser l'espace encore un peu et surtout faire un "cable managment" un peu plus propre.
Je vous laisse regarder les photos dans les messages suivants.
Mon gros objectif pour le moment étant de stabiliser l'ensemble pour pouvoir partager toutes les sources sur mon Github au plus vite et commencer à faire vivre le projet.
Voila, n'hésitez pas à me faire vos retours !