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


 * 23/02 de 13H30 a 16H45 (Distantiel)
 * 02/03 de 13H30 a 16H45 (Distantiel)
 * 19/03 de 13H30 a 16H45 (Distantiel)
 * 18/03 de 13H30 a 16H45 (Distantiel)
 * 23/03 de 13H30 a 16H45 (Distantiel)

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

Soutenance du mi-projet durant la semaine d'examen le ??/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).



Bonus Track

 * 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

23/02

 * Introduction à l'Internet des Objets (applications, communications sans fil)
 * Introduction aux LPWAN et à LoRa/LoRaWAN


 * Guide LoRaWAN d'Orange
 * LoRa/LoRaWAN Videos (mobilefish.com)
 * LoRa/LoRaWAN Videos (Andreas Spiess)

02/03
Avant la séance du 2/03 (TRES IMPORTANT)
 * Récupérez les P-NUCLEO-LRWAN Starter Packs
 * Installation de l'IDE pour le STM32

Fin du cours LPWAN et LoRaWAN. Manipulation de CampusIoT.

Programmation des microcontroleurs STM32 (1H30) par Michael ESCODA (ST Microelectronics)
 * 1) Intro rapide aux MCU (GPIO, SPI, I2C, CAN, UART …). MCU versus CPU
 * 2) Les STM32
 * 3) Les écosystèmes Nucleo
 * 4) STM32CubeIDE : présentation de l’IDE (configuration des pins et des clocks)
 * 5) Importer un projet à partir d’une carte Nucleo L073RZ avec STM32CubeIDE

09/03
Avant la séance du 9/03 (TRES IMPORTANT)
 * Installation de Docker sur vos machines.
 * Getting started

Construction du firmware de la carte "endpoint" : Instructions

Installation de la chaine de collecte NodeRed-InfluxDb-Grafana avec Docker

Travail en équipe.

16/03
Installation de la chaine de collecte NodeRed-InfluxDb-Grafana avec Docker

Travail en équipe.

23/03
Travail en équipe.

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 : Service de sécurité des biens et des personnes
L’objectif du mini-projet est d’étudier la réalisation d'un service de sécurité des biens et des personnes utilisant un parc de sirène connectées en LoRaWAN.

L’objet LoRaWAN est identifié par son DevEUI et associé à une pièce ou à un lieu. Il peut être enregistré sur un réseau public national en OTAA ou sur un réseau privé en OTAA comme CampusIoT.

L’objet sirène remonte régulièrement des mesures prises sur les capteurs au format LPP.

L’objet sirène est déclenché soit par un bouton poussoir (ie panic button), soit par observation d’un événement “tragique” (augmentation brutale de la température, fumée …).

L’objet sirène envoie périodiquement un message de status (ie heart beat) une fois déclenché.

L’application peut envoyer des messages vers l’objet pour :
 * piloter les GPIO en output de l'objet
 * le réglage de la période de transmission des messages montants
 * la mise à l’heure de la RTC (s’inspirer des App Clock Sync spec),
 * jouer une séquence de sons sur réception d'un message descendant de l'application de gestion de la sécurité,
 * de programmer le jeu périodique d’une séquence de sons (avec un paramètre cron pattern) quand la RTC a été préalablement * synchronisée

L’objet peut être un objet de classe A ou un objet de classe C.

L’objectif du projet est de
 * rechercher et analyser (avantages/inconvénients sous la forme d’une grille) des produits concurrents
 * https://www.aet.fr/produit/avertisseur-vocal-connecte-126-db-radio-lora-xpr901111.html
 * https://iqflow.io/products/r602a-lorawan-wireless-siren
 * définir l’architecture globale du réseau de sirènes d’alarme,
 * définir la sécurité globale (clé de chiffrage),
 * définir l’architecture matérielle de l’objet,
 * définir le format des messages LoRaWAN uplink et downlink,
 * définir le logiciel embarqué de l’objet sirène.
 * proposer une implémentation du logiciel embarqué de l’objet sirène.
 * montrer les changements de comportement de l’objet en fonction des événements (normal, incident détecté, retour à la normal).
 * implémenter l'application NodeRed qui reçoit les messages des 2 sirènes du binome et leur envoie de les différents messages listés précédenment
 * implémenter la console de visualisation avec un tableau de bord grafana avec des "plugins" bien choisis.

Le prototypage de l’objet sera fait au moyen de la carte endpoint du kit LRWAN2 et d'un buzzer piezio raccordé à une des GPIO libre de la carte.

La carte fille I-Nucleo-LRWAN1 du kit inclut un modem LoRAWAN et des capteurs de température, humidité, pression I2C : HTS221, LSM6DS3, LIS3MDL, LPS25HB/LPS22HB de ST). L’affection des broches de la carte fille I-Nucleo-LRWAN1 est donné dans le fichier du driver /STM32CubeExpansion_LRWAN_V1.3.1/Drivers/BSP/I_NUCLEO_LRWAN1/i_nucleo_lrwan1.h

Pour la démonstration, prévoyez de montrer la trace console de l’objet.

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.

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