Projets
Systèmes Embarqués

DriveInsight, Gestion de parc automobile connecté

Plateforme web de réservation de véhicules couplée à un système embarqué de télémétrie IoT en temps réel. Particle Boron + GPS + capteurs physiques + tableau de bord admin.

Par Sehenonirina Elisa Randriamasinoro, M1 Cybersécurité des Systèmes Embarqués, UBS Lorient

Code source20257 stack
[PHP][SQLITE][IOT][PARTICLE BORON][GPS][JAVASCRIPT][MAPTILER]

Contexte

La gestion d'un parc automobile de location repose encore, dans de nombreuses structures malgaches, sur des tableurs, des registres papier et des appels téléphoniques pour vérifier la disponibilité d'un véhicule.

DriveInsight fusionne une plateforme web de réservation avec un système embarqué de télémétrie, pour donner au gestionnaire de flotte une vision complète et en temps réel : de l'état de charge de la batterie d'un véhicule jusqu'à sa position GPS sur la carte.

Projet de Fin d'Études, L3 Génie des Systèmes Automatisés · Institut de Technologie d'Antananarivo · 2024

Architecture

┌──────────────────────────────────────┐
│            Particle Boron            │  ← embarqué dans chaque véhicule
│  GPS · Capteur carburant · Huile     │
│  Batterie · Réseau Telma (cellulaire)│
└────────────────┬─────────────────────┘
                 │ HTTP GET (toutes les 5–10s)
                 ▼
┌──────────────────────────────────────┐
│       Serveur PHP 8.3 (built-in)     │
│  /api/disponibilite.php              │
│  /api/reserver.php                   │
│  /admin/api/location.php             │
│  /admin/api/capteurs.php             │
│                                      │
│  SQLite 3 (PDO)                      │
│  ├── voitures                        │
│  ├── reservations                    │
│  ├── capteurs                        │
│  └── maintenances                    │
└──────────┬───────────────────────────┘
           │
    ┌──────┴──────┐
    ▼             ▼
Interface     Interface
  client       admin
(réservation) (suivi IoT
  + modale)    + gestion parc)

Couche web, interface client

Interface client, calendrier de réservation et sélection de véhicule
Interface client, calendrier de réservation et sélection de véhicule

Le calendrier de disponibilité (Flatpickr) grise automatiquement les dates réservées. La sélection d'une plage déclenche le calcul du tarif et la réservation se finalise via une modale, sans changement de page.

La disponibilité est vérifiée à deux niveaux, côté client par Flatpickr, côté serveur avant insertion, avec la logique de chevauchement d'intervalles :

date_debut_existante < date_fin_demandée
AND date_fin_existante > date_debut_demandée
SQL

Couche web, tableau de bord admin

Tableau de bord admin, vue d'ensemble du parc et réservations
Tableau de bord admin, vue d'ensemble du parc et réservations

Tableau de bord admin, suivi IoT temps réel et position GPS
Tableau de bord admin, suivi IoT temps réel et position GPS

Le dashboard sépare les données en trois requêtes indépendantes : véhicules en location, réservations à venir, véhicules disponibles. Un même véhicule peut apparaître dans plusieurs sections sans ambiguïté, contrairement à un LEFT JOIN … LIMIT 1 qui masquait silencieusement les réservations futures.

L'administrateur peut supprimer une réservation, ajouter un véhicule au parc, et accéder au suivi temps réel : position GPS sur carte interactive et état des capteurs embarqués.

Module embarqué, Particle Boron

Chaque véhicule est équipé d'un Particle Boron configuré pour le réseau cellulaire Telma Madagascar (APN: telmanet). Il centralise trois flux :

  • Position GPS, coordonnées NMEA toutes les 10 secondes, affichées sur MapTiler SDK
  • Niveau de carburant, capteur analogique externe, converti via mapping ADC 12 bits (0–4095)
  • État mécanique, niveau d'huile et tension batterie (0–15 V), remontés toutes les 5 secondes

Défis techniques résolus

Mapping ADC sur Particle Boron. La fonction map() de l'API Particle convertit la plage 0–4095 en unités métier (% carburant, volts). Un bug de nommage entre les paramètres firmware et les endpoints PHP a nécessité un débogage hardware/software en intégration système.

Configuration réseau cellulaire. L'APN Telma doit impérativement être configuré avant Particle.connect(), dans le cas contraire, la connexion s'établit silencieusement sur le mauvais réseau, sans erreur apparente.

Synchronisation IoT → Web sans infrastructure complexe. Le Boron pousse ses données en HTTP GET, stockées en JSON côté serveur. Le polling JavaScript en admin maintient l'affichage à jour sans dépendance à une infrastructure temps réel.

Limites et perspectives

Le système actuel est un prototype fonctionnel avec des contraintes assumées :

  • Authentification admin basique (pas de bcrypt, pas de tokens de session)
  • Pas de paiement réel, la réservation est déclarative
  • Données IoT stockées en JSON plats (pas de requêtes temporelles)
  • Serveur PHP mono-thread (php -S), non adapté à un déploiement multi-utilisateurs

Prochaine évolution structurante : intégration du bus CAN via OBD-II. Tout véhicule moderne dispose d'un port OBD-II donnant accès au bus CAN interne. Via un transceiver MCP2515 (SPI) + TJA1050, le Boron pourrait lire directement les PIDs SAE J1979 :

Boron SPI ── MCP2515 ── TJA1050 ── OBD-II (pin 6/14) ── CAN bus véhicule

Cela remplacerait les trois capteurs câblés manuellement par un seul connecteur standardisé, exposant régime moteur, température, codes défauts DTC, kilométrage réel, sans modification physique du véhicule.

Stack

CoucheTechnologie
BackendPHP 8.3 · SQLite 3 (PDO)
FrontendHTML5 · CSS3 · JavaScript · Flatpickr
CartographieMapTiler SDK v2
EmbarquéParticle Boron · TinyGPS++ · HttpClient
Réseau IoTCellulaire, Telma Madagascar (telmanet)
CapteursADC analogique, carburant, huile, batterie (12 bits)
Évolution prévueBus CAN via OBD-II, MCP2515 + TJA1050 + PIDs SAE J1979

Projets similaires

Tous les projets
Systèmes EmbarquésCybersécurité

Analyse et injection sur bus CAN automobile

Reverse engineering des trames CAN d'une maquette véhicule, cartographie des bus, décodage des signaux moteur/éclairage/confort, base DBC et DLL d'injection en C simulant un système ADAS.

2026
Data ScienceSystèmes Embarqués

Triage automatique de haricots par CNN embarqué

Système de classification binaire de haricots blancs (bonne/mauvaise graine) en temps réel via un CNN Keras déployé sur ESP32-CAM. Projet de fin d'études L2 Génie Industriel, IST Antananarivo.

2024