Tracking GPS, différé, temps réel et autonome !

Vous souhaitez développer un projet mais vous manquez de temps, de compétences ? Présentez votre projet ici pour trouver des participants...

Modérateur : Francois

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » sam. 13 mai 2017 19:06

Bonjour,

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
Techniquement je pense partir sur du stockage en SQlite et génération de .gpx pour tout ce qui est données à synchronisées
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)
Côté technique, utilisation de OSM (OpenStreetMap) comme fond de carte avec la librairie Leaflet, peut être l'utilisation de l'API élévation de Google map si ça peut apporter plus de précisions.

Quelques photos :

Image

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
Ps: J'ai surement oublier pas mal de choses que je rajouterais au fur et à mesure !

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 !
Modifié en dernier par All3kcis le dim. 20 août 2017 18:39, modifié 7 fois.

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: Tracking GPS, différé, temps réel et autonome !

Message par guillaume9344 » dim. 14 mai 2017 20:35

Bonjour, avez vous essayé de communiquer avec le gps à l aide d'un convertisseur usb uart et directement avec un pc ?
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Re: Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » dim. 14 mai 2017 20:59

Salut Guillaume
Nan je n'en ai pas :s
J'en ai commandé un, donc j'essaierai dans environ 2 semaines.
Après il faut l'utiliser le GPS avec les commandes AT donc j'espère que ça ne sera pas trop compliquer à mettre en place...
Si c'est trop compliquer je me rabats vers un gps basique sans "SIM" et la synchronisation ce fera uniquement en partage de connexion.

J'en est profiter pour commencer la base de l'app en python, au programme, threads, gestion des boutons et led associées Ok :)

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Tracking GPS, différé, temps réel et autonome !

Message par spourre » lun. 15 mai 2017 01:10

Bonsoir,

Votre module semble être un clone du module distribué par Adafruit, c'est bien plus qu'un GPS. Évidemment, avec les pâles copies chinoises, il n'y a aucun support (ni doc, ni logiciel) et souvent, des approximations sont faites sur le respect du schéma et des composants.
Néanmoins, aller sur le site Adafruit peut être un bon point de départ et il y a une doc pdf assez volumineuse (la liaison sérié y est très bien décrite.
Je ne suis pas du tout persuadé que les commandes "AT" (historiquement, les commandes destinées aux modems étaient +- normalisées dans le jeu de commandes Hayes et commençaient par AT comme ATtention).
Pour les GPS, c'est surtout la trame NMEA qui est la norme.

Linux (UNIX) étant un système multi users et multi taches, le périphérique GPS est rarement utilisé par un programme unique (c'est pas interdit mais ce n'est pas dans la philosophie du système). En général on fait tourner un service en tache de fond , GPSD. Ce service délivre la trame à tout programme qui en fait la demande (souvent par un socket).

afficher une position GPS sur un fond de carte et/ou transmettre à un serveur distant sont des fonctionnalités tellement récurrentes qu'il existe plusieurs solutions sous Linux, avec l'avantage de la disponibilité des sources pour adapter aux besoins spécifiques:

gpsdrive
navit
APRS (issu du monde radioamateur)

Je ne peux certifier que tous ces programmes sont portés ou portables sur Raspberry car il peut y avoir des dépendances difficiles à satisfaire. Il faut prendre cela comme des pistes.

Sylvain

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Re: Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » lun. 15 mai 2017 19:17

Bonjour Spourre

Oui effectivement il y a beaucoup de module sur base de SIM808, ce ne sont pas forcément des copies à proprement parlé mais on est bien d'accord que niveau doc c'est zéro :s
Enfaite les commandes AT sont utilisé pour contrôler le GPS ou les autres fonctions comme les sms, appels, requetes http etc, le GPS enverra bien-sur des trames NMEA une fois activé.

Pour le reste, pour ce qui est du traitement de ces trames NMEA ce sera du développement sur mesure, autant sur le RPI que côté serveur avec l'utilisation de fonds de cartes comme je l'ai mentionné dans mon premier post.

Je te remercie pour ton commentaire et je vais jeter un oeil aux librairies que tu me proposes.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Tracking GPS, différé, temps réel et autonome !

Message par spourre » ven. 19 mai 2017 23:15

All3kcis a écrit :Bonjour Spourre
...
Je te remercie pour ton commentaire et je vais jeter un oeil aux librairies que tu me proposes.
Bonsoir,

Bonne lecture et tiens-nous au courant.

Sylvain

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Re: Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » sam. 20 mai 2017 21:09

Voila les nouvelles, malheureusement j'ai pas eu beaucoup le temps d'avancer.

Côté serveur web rien de nouveau.

Côté logiciel Raspberry j'ai avancé, j'ai créé un package, une classe principal gère les "devices", device qui sont les capteurs (gps,température, bouton, etc), l'écran lcd.
Actuellement j'ai donc 3 classes, une principal, une qui gère les logs (affichage console + fichier de journalisation), et la dernière qui gère les boutons (détection appui avec gestion de la durée, allumage/clignotement de la led)
d'ici demain je vais m'occuper de la class de gestion de l'écran LCD.

Quand les bases seront un peu plus posées je commencerais à déposer les sources sur Github.

Côté matériel, j'ai commencé à monter les composants que j'avais dans une boite de test :
J'ai photoshopé les deux boutons que je n'ai pas encore reçu :D
Image

Image
Détails de l'intérieur, l'écran lcd est un 4x20 mais j'utiliserais un 2x16 sur la version finale

Et voila plus ou moins comment les composants seront réparties dans le boitier final
Image

Et la différence de taille entre les deux :)
Image


Voila ça avance, doucement mais surement !

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Re: Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » lun. 5 juin 2017 23:50

Voila les nouvelles !

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
Je vais essayer de faire une petite video sur le prototype ce sera plus parlant.

Côté matériel, standby pour le moment

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Re: Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » mer. 7 juin 2017 21:48

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)

All3kcis
Messages : 10
Enregistré le : sam. 13 mai 2017 17:34
Localisation : Alsace

Re: Tracking GPS, différé, temps réel et autonome !

Message par All3kcis » mer. 5 juil. 2017 00:51

J'avance lentement mais j'arrive à faire 2-3 ptites choses toutes les semaines !

Dernières opérations, j'ai monté la première version qui se rapproche de l'idée que j'avais pour la version "finale" mais il y aura quelques détails pratiques à revoir, l'étanchéité au niveau des boutons par exemple ou même l’organisation des composants et surtout le passages des fils car là c'est un vrai plat de pâte ...

En tous cas ce boitier est fonctionnel !
20170705_001514.jpg
20170705_001514.jpg (383.21 Kio) Vu 3020 fois
20170705_001552.jpg
20170705_001552.jpg (276.9 Kio) Vu 3020 fois
A l’intérieur il y a l'écran 16x2 , les trois boutons de commandes, les 3 accus 18650, le module gps, le powerboost adafruit, un gyroscope 3 axes, le convertisseur logique pour l'I2C, un interrupteur marche/arrêt et bien sur le Raspberry pi W Zero :D
20170705_001642.jpg
20170705_001642.jpg (720.14 Kio) Vu 3020 fois
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.

Mon gros objectif pour le moment étant de stabiliser l'ensemble pour pouvoir partager toutes les sources sur mon Github et commencer à faire vivre le projet.

Voila, n'hésitez pas à me faire vos retours !

Répondre

Retourner vers « Projets »