PM2M-2017-MachineSport/Suivi

From air
Jump to navigation Jump to search

Le but est de mettre en place une chaîne d'analyse utilisant comme point d'entrée la fonctionnalité NFC d'un smartphone et d'arriver à une analyse via Grafana.


Objectifs

Les objectifs du projet sont de nous faire découvrir le monde de l'IoT. De plus, nous avons du travailler sur une carte Nucleo STM32. Et réaliser la mise en place de Docker et de différents container afin de contenir nos différents modules d'analyse.

Description

Disposant d'un module NFC adaptable sur une carte Nucleo STM32, nous souhaitons réaliser une application permettant de faire un suivi de notre activité physique dans une salle de sport.

Pour cela, il faut suposer qu'un support NFC est présent dans chaque machine de sport de la salle. Lorsqu'un utilisateur arrive et commence son entraînement, il dispose son smartphone sur le socle NFC. Ce socle lit toutes les 10 secondes le tag NFC et envoie une requête en UDP à NodeRed. NodeRed réalise ainsi la transformation du message envoyé par la machine pour le rendre utilisable dans InfluxDB.

Ainsi, à chaque requête un nouveau point est créer dans la base InfluxDB, qui pour un temps donné nous informe de la présence d'une personne où non pour une machine donnée. Par ailleurs, Grafana nous permet de visualiser les utilisations et temps d'utilisation d'une machine.

Matériel

Le matériel utilisé
Carte Nucleo STM32
Carte Nucleo STM32 64bits
Extension Wifi Shield
Module Wifi, adaptable sur la carte Nucleo
Shield NFC (SHIELD-M24SR-ADV)


Voici le matériel utilisé pour le module embarqué.

Lorsque c'est 3 éléments sont connectés/assemblés, cela permet de chargé un programme dans la carte qui utilisera les technologies NFC et Wifi.

Le but étant de réaliser un socle sur lequel le smartphone sera posé. Ce socle permet d'obtenir les données utilisateur lorsque celui-ci est présent.


La chaîne d'analyse

Tout d'abord, pour créer et mettre en place notre chaîne d'analyse, nous avons eu besoin d'installer Docker.

Puis nous avons du créer 3 containers : - NodeRed - InfluxDb - Grafana


NodeRed permet de faire le lien entre les requêtes UDP,TCP... entrantes et le serveur influxDB. Il s'occupe de réaliser le parsing du message envoyé par une machine et de le rendre utilisable par InfluxDB.

Schéma d'intéraction NodeRed
Schéma d'intéraction NodeRed

Ainsi, InfluxDB reçoit une requête qu'il peut transformer en requête adapter à sa base de données. C'est-à-dire, qu'il crée une entrée dans sa base avec le timestamp en temps réel.

Exemple de table
Table InfluxDB

Chaque point ainsi obtenu peut être afficher via Grafana afin d'obtenir des courbes permettant une analyse visuelle du flux.

Exemple de courbes
Courbes de présence sur les machines Vélo1 et Vélo2

En conclusion, NodeRed est notre porte d'entrée des données qui sont stockées par InfluxDB et affichées via Grafana.

Liens

MBed

   https://www.mbed.com/en/


Docker

   https://www.docker.com/

NodeRed

   https://nodered.org/


InfluxDB

   https://docs.influxdata.com/influxdb/v1.2/introduction/

Grafana

   https://grafana.com/