PM2M/2018 OnboardParkingMeter

Ci-dessous la présentation du projet Onboard Parking Meter.

Introduction
Le projet Onboard Parking Meter consiste en la réalisation d'un système qui permette d’effectuer un paiement automatique des factures du parking.

Ceci en utilisant un appareil ODB2 ELM 327 relié à un téléphone Android via Bluetooth qui envoi au moment du démarrage et de l’arrêt de voiture les informations de géolocalisation et de l’état du moteur vers un serveur qui éffectue led le stockage, calcules et factutaion via une blockchaine Hyperledger.

Motivations
La motivation derrière le projet Onboard Parking Meter et d’effectuer un paiement automatique et exacte en fonction de la durée du stationnement dans un parking donnée, du coup le projet répond à deux besoins :


 * Payer le parking de manière automatique.
 * Payer le temps exacte.

Solution envisagé
La première solution qui a été proposé et l'utilisation d'une board Pycom LoPy qui vas se connecté avec un Appareil ELM327 ODB2 via bluetooth et en utilisant le réseau LoRa les informations tours par minutes et coordonnés GPS seront envoyé au backend pour traitement.

Cette solution n'a pas abouti vu que l'appareil ELM327 fourni ne fonctionnait qu'en Bluetooth classique et la carte LoPy ne supportant pour l'instant que BLE. Du coup pour contourné le problème nous avons choisi de remplacer la board Pycom LoPy par un téléphone Android et d'utilisé le réseau 3G/4G à la place du réseau LoRa.

Choix Techniques
our réaliser ce projet nous avons dû faire les choix techniques ci-dessous :
 * Un Module ELM327 - ODB2
 * Un smartphone android
 * Deux serveur (machines virtuel local) pour installer l'ensemble des services backend.

Architecture physique
Pour le projet Onboard Parking Meter nous avons choisi l'architecture ci-dessous :



Récupération des données
Pour la Récupération des données nous avons choisi une architecture comme ci-dessous :



Traitement des données
Pour la Récupération des données nous avons choisi l'architecture ci-dessous :



Pile Technologique
Afin d'implémenter l'architecture définie, les technologies ci-dessous ont été utilisés :
 * Base de données NoSQL MongoDB
 * Serveur MQTT Mosquitto
 * L'outil Node-RED
 * Docker
 * Hyperledger
 * Hyperledger composer

Implémentation
Ci-dessous les flux node-red implémentant l'ensemble des fonctionnalités :
 * Recupération des données
 * Traitement des données
 * Transaction dans la blockchaine

Les flux et le BusnessNetwork du sont disponible dans le dépôt git : https://github.com/yassinefarich/projet_M2M

Difficultés rencontrées
Durant ce projet nous avons rencontré les difficultés ci-dessous :


 * Incompatibilité entre la carte lopy et l’ELM327
 * Nous avons constaté que les normes bluetooth de la carte Lopy dont nous disposons n'est pas compatible avec celle de l’ELM327 (BLE vs Bluetooth classique), du coup pour contourner le problème nous avons remplacé la carte Lopy par un smartphone android.


 * Application mobile n’arrivant pas à se connecter
 * Nous avons rencontré plusieurs difficulté a connecté l'application Mobile à l'ELM327, problèmes résolus en utilisant l'application android-obd-reader


 * Difficulté dans la mise en place de la Blockchain
 * Nous avons rencontré des difficulté technique au niveau de l'implémentation de la blockchaine avec Hyperledger-fabric, pour résoudre ces difficultés nous avons utilisé l'outil Hyperledger Composer.

Perspectives

 * Place de parking à proximité
 * Réservation d’une place

Références

 * https://github.com/hyperledger/composer
 * https://github.com/node-red/node-red-docker
 * https://docs.docker.com/compose/
 * https://docs.mongodb.com/manual/tutorial/geospatial-tutorial/
 * https://github.com/pires/android-obd-reader