PM2M/2021/TP

Page 2021 des supports de cours et travaux pratiques de l'UE Projets M2PGI Services Machine-to-Machine et Internet-of-Things.

Enseignants 2021 : Didier Donsez


 * 18/02 de 13H30 a 16H45 (FabLab)
 * 03/03 de 13H30 a 16H45 (FabLab)
 * 10/03 de 13H30 a 16H45 (FabLab)
 * 17/03 de 13H30 a 16H45 (FabLab)
 * 24/03 de 13H30 a 16H45 (FabLab)

Rendu des 2 fiches de synthèse (individuelle) : 06/04 à minuit.

Soutenance du mi-projet durant la semaine d'examen le 07/04 de 15H00 à 18H00 (3H00).

Le mini-projet réalisé en séance a pour objectif la mise en place rapide et agile d'une infrastructure (matérielle et logicielle) de collecte de données capteur. Les mesures de capteurs distribués sont acquises par des dispositifs embarqués et sont remontés vers des serveurs de données hébergés dans un cluster sur un cloud public pour y être analysées (Big Data Analytics) et visualisées (dataviz) et sécurisé avec la blockchain Hyperledger Fabric.



Support de cours

 * Intergiciels pour l'IoT
 * La plateforme OpenHAB
 * La plateforme de services OSGi
 * Eclipse IoT Days
 * Eclipse IoT Days 2018 (vidéos).
 * Eclipse IoT Days 2019 (vidéos).
 * Eclipse IoT Days 2020 (vidéos).
 * Les rapports sur les CES d'Olivier Ezratty
 * Le rapport sur le CES 2018 d'Olivier Ezratty
 * Le rapport sur le CES 2019 d'Olivier Ezratty
 * Le rapport sur le CES 2020 d'Olivier Ezratty
 * The DZone Guide to The Internet of Things

Planning

 * Avant la séance du 18/02 (TRES IMPORTANT)
 * Installation de l'IDE pour le STM32
 * Installation de Docker sur vos machines.
 * Getting started
 * 18/02 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Présentation et Introduction et répartition des projets (Didier DONSEZ) 1 heure [[Media:PM2M-1718-Intro.pdf|transparents]] et [[Media:IoT-LongRange.pdf|transparents IoT long range]]
 * [[Media:STM32_IoT.pdf|Transparents]] & Tutoriel STM32 IoTNode (Michael ESCODA, ST Microelectronics Grenoble) 1H30
 * 03/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Présentation IoT ETL Mashup avec Node-RED, Grafana, InfluxDB sur CampusIoT
 * Travail en équipe
 * 10/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Travail en équipe
 * 12/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Travail en équipe
 * 17/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Travail en équipe
 * 24/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Travail en équipe
 * 16/04 : Rendu des fiches ("ACS" et "Privacy & Sécurity")
 * 17/04 15H00-18H00 : Soutenances (présentation + questions + démonstration)

Etapes

 * Coup d’œil aux projets 2016, projets 2017, projets 2018, projets 2019 et projets 2020.
 * Installation de Docker
 * Tutoriel STM32duino
 * Suivre le tutoriel Developing IoT Mashups with Docker, MQTT, Node-RED, InfluxDB, Grafana.

Remarque TRES TRES importante: ne sauvegardez pas les crédentials des services cloud que vous utilisez (AWS, Digital Ocean, Heroku, Azure, IBM Bluemix, Twitter, OVH ...) dans des dépôts git publiques : placez les dans des documents credentials.json, credentials.properties, credentials.sh, ... et ajoutez les ces documents à .gitignore pour plus de sureté.

Mini-Projet


Ce mini-projet consiste a mettre en place une infrastructure de collecte de données capteur. L'acquisition des mesures de capteurs distribués se fait sur une carte STM32 Nucleo, sur une carte Intel Galileo ou sur un téléphone Android. Les technologies de comminucation sont : USB Serial, BLE, LoRa, Ethernet, WiFi. Les données sont remontées dans des messages vers un serveur (Node-RED) via un "broker" PubSub (MQTT (Mosquitto ou RabbitMQ), Apache Kafka, PubNub, PubSubHubbub, Socket.io, WebRTC ...). Les formats des messages peuvent être JSON (GeoJSON), BSON, CSV, NMEA 0183, binaire, XML (EEML, KML, AMMP ...) ... Les données peuvent être stockées dans une base de données (SQL ou NoSQL comme MongoDB, Redis.io, InfluxDB, ...) et visualisées en différé ou en direct (Grafana, D3.js, OpenHAB via le connecteur MQTT, Bootleaf pour les données géolocalisées ...). Elles seront sécurisées à l'aide d'une blockchain privée Hyperledger.

Sujets (provisoire) des mini-projets

 * IRock : Surveillance des glissements de terrain
 * https://github.com/AmieJoni/parois-rocheuses
 * Radar et comptage de personnes (fusion d'information)
 * Monitoring de mouvement de paroi rocheuse avec le VL53L0X (avec ISTERRE)
 * STM32 IoTNode B-L475E-IOT01A
 * P-NUCLEO-LRWAN1
 * Banc de performance de LoRa 2.4 Ghz
 * WiMODino iM282A-L
 * Selle de vélo connectée
 * STM32 IoTNode B-L475E-IOT01A
 * Papierlogik
 * Projet de comptage d’humains et d’animaux en milieu naturel
 * Four solaire connecté
 * P-NUCLEO-LRWAN1

Fiche "ACS" (Analyse de Cycle de Vie)
Rédigez en une page maximum les aspects "ACS" (Analyse de Cycle de Vie) de votre projet (en mettant l'accent sur la problématique de la transition écologique et en le positionnant par rapport aux 9 axes du SNTEDD). La page doit être un document Markdown dans votre dépôt Git public. Chaque fiche est individuelle.

Fiche "Privacy & Security"
Rédigez en une page maximum les aspects "Privacy & Security" de votre projet. La page doit être un document Markdown dans votre dépôt Git public. Chaque fiche est individuelle.

Déploiement sur plateforme Cloud
Le serveur Node-RED et le "broker" PubSub MQTT (Mosquitto ou RabbitMQ) peuvent être hébergé sur une plateforme cloud 'gratuite' ou 'pas chère' comme Windows Azure ou Amazon EC2, Heroku, IBM Bluemix, Digital Ocean, OVH ou sur votre machine via des images Docker.

Attention, Eduroam et WifiCampus bloquent le port 1883 du protocole MQTT (entre autre).

Evaluation
Les documents demandés devront être remis le 07/04 avant minuit.

Les documents demandés sont:
 * un jeu de transparents PPT/ODP de votre présentation avec votre "discours" dans les notes du présentateur.
 * (optionnel) un screencast de votre présentation avec votre discours en voix off.
 * la vidéo et/ou le screencast de votre démonstration.
 * le rapport technique de la réalisation au format Markdown
 * la fiche individuelle ACS au format Markdown (décrite plus haut)
 * la fiche individuelle "Security&Privacy" au format Markdown (décrite plus haut)

La présentation mettra en avant
 * le titre (avec les noms prénoms des binômes)
 * les applications IoT cibles/envisagées
 * le ou les architectures (successivement) implémentées,
 * les composants logiciels et matériels utilisés,
 * les métriques (langages de programmation, sloc, performance ...),
 * les problèmes rencontrés et les solutions élaborées,
 * la conclusion
 * des perspectives possibles à votre développement.

Prévoyez 15 minutes pour la présentation et la démonstration.

Le code, le rapport et le PDF de la présentation doivent être livré dans un dépôt Github le 7 Avril avant minuit. Les vidéos et screencasts peuvent être livrées sous la forme d'une vidéo YouTube ou d'un dépôt avec un lien caché (wetransfer, google drive ...).

=Galeries=

Galerie 2016
Suivez les tweets :
 * https://twitter.com/FablabAIR/status/719892515072159744
 * https://twitter.com/FablabAIR/status/719948586671325184
 * https://twitter.com/FablabAIR/status/719880125806985216
 * https://twitter.com/FablabAIR/status/719872755739582464
 * https://twitter.com/FablabAIR/status/719865759158165505
 * https://twitter.com/FablabAIR/status/719862460715573249
 * https://twitter.com/FablabAIR/status/719858492681691136