Difference between revisions of "PM2M/2020/TP"

From air
Jump to navigation Jump to search
(Created page with "Page 2020 des supports de cours et travaux pratiques de l'UE Projets M2PGI Services Machine-to-Machine et Internet-of-Things. Enseignants 2020 : Didier Donsez Partie dé...")
 
 
(48 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
Enseignants 2020 : Didier Donsez
 
Enseignants 2020 : Didier Donsez
   
  +
* 18/02 de 13H30 a 16H45 (FabLab)
Partie démarrant 12/02 au 26/03 .
 
  +
* 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 ??/03 (3H00).
 
   
  +
Soutenance du mi-projet durant la semaine d'examen le 07/04 de 15H00 à 18H00 (3H00).
Rendu fiche de synthèse : ??/03 à minuit.
 
   
 
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.
 
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.
Line 20: Line 24:
 
* [http://membres-liglab.imag.fr/donsez/cours/openhab.pdf La plateforme OpenHAB]
 
* [http://membres-liglab.imag.fr/donsez/cours/openhab.pdf La plateforme OpenHAB]
 
* [http://membres-liglab.imag.fr/donsez/cours/osgi.pdf La plateforme de services OSGi]
 
* [http://membres-liglab.imag.fr/donsez/cours/osgi.pdf La plateforme de services OSGi]
  +
* Eclipse IoT Days
* [https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2018 Eclipse IoT Days 2018] ([https://gricad.univ-grenoble-alpes.fr/multimedia/videos/eclipse-iot-day-2018 vidéos]).
 
** Blockchain for Trusted IoT ([https://wiki.eclipse.org/images/0/01/Eclipse-IoT-Days-Grenoble-2018-Blockchain.pdf slides], [https://gricad.univ-grenoble-alpes.fr/video/blockchains-trusted-iot video])
+
** [https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2018 Eclipse IoT Days 2018] ([https://gricad.univ-grenoble-alpes.fr/multimedia/videos/eclipse-iot-day-2018 vidéos]).
  +
** [https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2019 Eclipse IoT Days 2019] ([https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2019#Detailed_program vidéos]).
* [http://www.oezratty.net/wordpress/2018/rapport-ces-2018/ Le rapport sur le CES 2018 d'Olivier Ezratty]
 
  +
** [https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2020 Eclipse IoT Days 2020] ([https://gricad-media.univ-grenoble-alpes.fr/multimedia/videos/eclipse-iot-day-grenoble-2020 vidéos]).
  +
* Les rapports sur les CES d'Olivier Ezratty
  +
** [http://www.oezratty.net/wordpress/2018/rapport-ces-2018/ Le rapport sur le CES 2018 d'Olivier Ezratty]
  +
** [https://www.oezratty.net/wordpress/2019/rapport-ces-2019/ Le rapport sur le CES 2019 d'Olivier Ezratty]
  +
** [https://www.oezratty.net/wordpress/wp-content/themes/Ezratty5/forcedownload.php?file=/Files/Publications/Rapport%20CES%202020%20Olivier%20Ezratty.pdf Le rapport sur le CES 2020 d'Olivier Ezratty]
 
* [https://dzone.com/storage/assets/5335165-dzone-guidetoiot-volumeiv.pdf The DZone Guide to The Internet of Things]
 
* [https://dzone.com/storage/assets/5335165-dzone-guidetoiot-volumeiv.pdf The DZone Guide to The Internet of Things]
* https://projects.eclipse.org/proposals/eclipse-iota-trinity
 
   
==Planning (PROVISOIRE)==
+
==Planning==
* Avant la séance du 12/02 (TRES IMPORTANT)
+
* Avant la séance du 18/02 (TRES IMPORTANT)
 
** Installation de l'IDE pour le STM32
 
** Installation de l'IDE pour le STM32
 
** Installation de [[Docker]] sur vos machines.
 
** Installation de [[Docker]] sur vos machines.
* 12/02 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
 
** Présentation et Introduction et répartition des projets (Didier DONSEZ) 1 heure [[Media:PM2M-1718-Intro.pdf|transparents]]
 
** Présentation IoT ETL Mashup avec [[Node-RED]] sur [[CampusIoT]]* 05/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
 
 
** [[PM2M_Docker|Getting started]]
 
** [[PM2M_Docker|Getting started]]
* 05/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
+
* 18/02 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg 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]]
** Tutoriel [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]] ([https://www.linkedin.com/in/michael-escoda-a2776916/ Michael ESCODA], ST Microelectronics Grenoble) 1H30 (à confirmer)
 
  +
** [[Media:STM32_IoT.pdf|Transparents]] & Tutoriel [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]] ([https://www.linkedin.com/in/michael-escoda-a2776916/ Michael ESCODA], ST Microelectronics Grenoble) 1H30
  +
* 03/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg 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 [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
 
** Travail en équipe
 
** Travail en équipe
 
* 12/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
 
* 12/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
** Tutoriel IoT Dataviz Mashup avec https://www.jyse.io/ ([https://www.linkedin.com/in/vienot Simon VIENOT]) 1 heure (à confirmer)*
 
 
** Travail en équipe
 
** Travail en équipe
19/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
+
* 17/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
 
** Travail en équipe
 
** Travail en équipe
* 26/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
+
* 24/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
 
** Travail en équipe
 
** Travail en équipe
* 08/04 : Rendu des fiches de synthèse
+
* 16/04 : Rendu des fiches ("ACS" et "Privacy & Sécurity")
* 09/04 15H00-18H00 : Soutenances (présentation + questions + démonstration)
+
* 17/04 15H00-18H00 : Soutenances (présentation + questions + démonstration)
   
 
==Etapes==
 
==Etapes==
* Coup d’œil aux [[PM2M/2016/TP|projets 2016]], [[PM2M/2017/TP|projets 2017]] et [[PM2M/2018/TP|projets 2018]].
+
* Coup d’œil aux [[PM2M/2016/TP|projets 2016]], [[PM2M/2017/TP|projets 2017]], [[PM2M/2018/TP|projets 2018]] et [[PM2M/2019/TP|projets 2019]].
 
* Installation de [[Docker]]
 
* Installation de [[Docker]]
* [[UE_PEIP_L1|Tutoriel Arduino]]
+
* Tutoriel STM32duino
 
* Suivre le tutoriel [[Developing IoT Mashups with Docker, MQTT, Node-RED, InfluxDB, Grafana]].
 
* Suivre le tutoriel [[Developing IoT Mashups with Docker, MQTT, Node-RED, InfluxDB, Grafana]].
* Installation d'[[OpenHAB]].
 
** [https://www.dropbox.com/s/9qdsnvtfo3tiaj7/openhab%2Barduino.zip OpenHAB+Arduino]
 
* Installation de [[Mosquitto]]
 
** Tutoriel [[MQTT]] : https://docs.google.com/presentation/d/1N9OiMxiVWPbsVrAcPfT-J0k1o7a-neIp7TVFGa6AkWM/edit?pli=1#slide=id.g1d409a344_09
 
* Installation de [[Node-RED]]
 
** et ses extensions [http://flows.nodered.org/node/node-red-contrib-rfxcom Rfxcom], [http://flows.nodered.org/node/node-red-contrib-influxdb Influxdb], [http://flows.nodered.org/node/node-red-contrib-eddystone Eddystone], [http://flows.nodered.org/node/node-red-node-sensortag Sensortag], [http://flows.nodered.org/node/node-red-contrib-openzwave ZWave], [http://flows.nodered.org/node/node-red-contrib-bleacon iBeacon], PubNub, IFTTT, * [http://flows.nodered.org/node/node-red-contrib-amqp AMQP] ... et [http://flows.nodered.org/ autres] (en fonction de votre projet).
 
* Installation de dashboard de visualisation [[InfluxDB]], [[Grafana]], [[Chronograf]], [[Telegraf]], [[Kapacitor]]
 
* Installation de la suite [[Logstash]], [[Elastic Search]] et [[Kibana]]
 
* Création de comptes sur [[Amazon EC2]], [[PubNub]], [[IFTTT]] Maker, [[Streamdata.io]], [https://data.sparkfun.com/streams/make Sparkfun Data] ...
 
* Installation de [[Spark]]
 
 
   
 
'''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é.
 
'''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é.
   
  +
==Fiches==
==Fiche de synthèse==
 
  +
===Fiche "ACS" (Analyse de Cycle de Vie)===
Synthétiser un des sujets suivants en 1 page maximum. La page doit être une entrée du wiki. Chaque synthèse est individuelle.
 
  +
Rédigez en une page maximum les aspects "ACS" ([https://fr.wikipedia.org/wiki/Analyse_du_cycle_de_vie Analyse de Cycle de Vie]) de votre projet (en mettant l'accent sur la problématique de la [https://fr.wikipedia.org/wiki/Transition_%C3%A9cologique 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"===
* Sat-IoT et LPGAN
 
  +
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.
* Eclipse IOTA Trinity
 
* [[zenoh]]
 
* FOTA ([[Firmware Over-The-Air]]) dans les réseaux LPWAN
 
* [[Eclipse Keyple]]
 
* [[Eclipse Kuksa]]
 
* [[Eclipse fog∅5]]
 
* [[Eclipse ioFog]]
 
* [[Eclipse hawkbit]]
 
* [[Eclipse Vorto]]
 
* [[Eclipse 4diac]]
 
* [[Eclipse Wakaama]]
 
* [[Apache Mynewt]]
 
* [[Open Air Interface]]
 
 
==Fiche "Privacy & Sécurity"==
 
Rédiger en 1 page maximum les aspects "Privacy & Sécurity" de votre projet. La page doit être une entrée du wiki. Chaque fiche est individuelle.
 
 
==Cartes, Capteurs et Actionneurs==
 
 
[[Image:B-L475E-IOT01A.jpg|200px|thumb|right|STM32 IoTNode B-L475E-IOT01A]]
 
[[Image:lopy.png|200px|thumb|right|LoPy (LoRa)]]
 
[[Image:sipy.png|200px|thumb|right|SiPy (Sigfox)]]
 
 
# [[SODAQ Explorer]]
 
# [[Sagemcom Siconia]]
 
# [[Pycom LoPy]]
 
# [[Pycom SiPy]]
 
# [[Pycom FiPy]]
 
# STM32 Nucleo + Shield LoRa + Shield Météo
 
# STM32 Nucleo + Shield LoRa + Shield Qualité de l'air
 
# STM32 Nucleo + [[SparkFun FM Tuner Evaluation Board - Si4703|Récepteur RDS]] + [[ESP8266]]
 
# [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]]
 
# LoRaWAN devices
 
# Modem Microchip RN2483
 
# [https://wireless-solutions.de/products/radiomodules/im282a.html Modem IMST im282a SX1280 LoRa 2.4 GHz]
 
# ODBII dongle BLE
 
# [https://www.seeedstudio.com/OBD-II-CAN-BUS-Development-Kit-p-2993.html Grove OBD-II CAN-BUS Development Kit]
 
# Multichannel gas sensor [[MiCS-6814]]
 
 
# [http://micropython.org/stm32/ micropython sur STM32]
 
   
 
==Mini-Projet==
 
==Mini-Projet==
[[Image:M2MArchi2015-001.jpg|200px|right|thumb|Architecture 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]], [[Adaptive Machine Messaging Protocol (AMMP)|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]].
 
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]], [[Adaptive Machine Messaging Protocol (AMMP)|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]].
Line 124: Line 83:
 
|+ Affectation des projets PM2M 2019-2020
 
|+ Affectation des projets PM2M 2019-2020
 
|-
 
|-
|
 
 
!scope="col"| Sujet
 
!scope="col"| Sujet
 
!scope="col"| Étudiants
 
!scope="col"| Étudiants
!scope="col"| Fiche de suivi
 
 
!scope="col"| Dépôt git
 
!scope="col"| Dépôt git
!scope="col"| Documents
 
 
!scope="col"| Matériel
 
!scope="col"| Matériel
 
|-
 
|-
  +
| IRock : Surveillance des glissements de terrain
 
  +
| Troussier Simon, Sanchez Jeremy, Bleton--Giordanno Maxence
 
  +
| [https://gitlab.com/m2m-iot Dépôts]
  +
| Siconia
  +
|-
  +
| [[Projet de comptage d’humains et d’animaux en milieu naturel]]
  +
| WAMPACH Sylvestre, DRIOWYA Abdelghafour
  +
| [https://github.com/Th3CracKed/M2M_Image_Recognition Dépôt]
  +
| [[MAix BiT]]
  +
|-
  +
| Radar et comptage de personnes
  +
| Lucie MULLER, Benjamin LONGA
  +
| [https://github.com/bozzo1337/fusion Dépôt]
  +
| RPI3, RPICam, [[SparkFun Grid-EYE Infrared Array Breakout - AMG8833]]
  +
|-
  +
| Monitoring de mouvement de paroi rocheuse avec le VL53L0X
  +
| Amine JONAHI, Maher ISHAK
  +
| [https://github.com/AmieJoni/parois-rocheuses Dépôt]
  +
| [[STM32 IoTNode B-L475E-IOT01A]]
  +
|-
  +
| Four solaire connecté
  +
| Defours Ronan
  +
| TBD
  +
| Nucleo, [https://github.com/stm32duino/I-NUCLEO-LRWAN1 I-NUCLEO-LRWAN1] avec accelerometer and magnetometer [https://github.com/stm32duino/LSM303AGR LSM303AGR], humidity and temperature [https://github.com/stm32duino/HTS221 HTS221] et pressure [https://github.com/stm32duino/LPS22HB LPS22HB]
  +
|-
 
|}
 
|}
   
  +
==Misc==
===Sujets (provisoire) des mini-projets===
 
   
  +
===Déploiement sur plateforme Cloud===
* '''Campagne d'instrumentation de la température et de l'humidité du batiment IM2AG'''
 
  +
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]].
* '''IRock : Surveillance des glissements de terrain'''
 
* '''Radar et comptage de personnes (fusion d'information)'''
 
* '''Monitoring du fablab'''
 
* '''Géolocalisation [[Time difference of arrival|TDOA]] [[LoRa]]'''
 
* '''Parking à la seconde'''
 
   
  +
'''Attention, Eduroam et WifiCampus bloquent le port 1883 du protocole [[MQTT]] (entre autre).'''
==@Deprecated: Contenu général des mini-projets==
 
Les équipes ne font qu'une partie des manipulations en fonction du sujet du mini-projet affecté.
 
   
  +
==Evaluation==
   
  +
Du fait du confinement lié au Covid-19, la soutenance est replacée pour une évaluation sur document.
Le code devra être recontribué en open-source sur GitHub et catalogué dans http://flows.nodered.org/
 
   
  +
Les documents demandés devront être remis le 07/04 avant minuit.
====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 bloque le port 1883 du protocole [[MQTT]] (entre autre).'''
 
 
==Soutenances==
 
 
====Planning des soutenances====
 
COMING SOON
 
   
  +
Les documents demandés sont:
====Instructions pour les soutenances des mini-projets====
 
  +
* 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
* chaque soutenance dure 15 minutes comportant une présentation de 7 minutes ainsi qu'une démonstration de 5 minutes et 3 à 5 minutes de questions/réponses.
 
* respectez le temps donc repetez la
 
* remplissez le doodle pour choisir un creneau de passage
 
* la présentation mettra en avant
 
 
** le titre (avec les noms prénoms des binômes)
 
** le titre (avec les noms prénoms des binômes)
 
** les applications IoT cibles/envisagées
 
** les applications IoT cibles/envisagées
Line 176: Line 146:
 
** des perspectives possibles à votre développement.
 
** 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 presentation doivent être livré dans un dépôt Github la veille de la soutenance.
 
Le rapport qui détaille les éléments de la présentation sera livré dans un README.md ou README.html dans le dépôt GitHub.
 
 
Envoyez le lien vers le dépôt Github (code + présentation) avant la soutenance.
 
 
La présentation peut-être réalisée avec [[Reveal.js]].
 
 
Pensez a répéter vos présentations.
 
   
  +
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=
 
=Galeries=
Line 205: Line 170:
 
==Galerie 2014==
 
==Galerie 2014==
 
[[Image:PM2M214-001.jpg|200px|PM2M 2014]][[Image:PM2M214-002.jpg|200px|PM2M 2014]][[Image:PM2M214-003.jpg|200px|PM2M 2014]][[Image:PM2M214-004.jpg|200px|PM2M 2014]][[Image:PM2M214-005.jpg|200px|PM2M 2014]][[Image:PM2M214-006.jpg|200px|PM2M 2014]][[Image:PM2M214-007.jpg|200px|PM2M 2014]][[Image:PM2M214-008.jpg|200px|PM2M 2014]]
 
[[Image:PM2M214-001.jpg|200px|PM2M 2014]][[Image:PM2M214-002.jpg|200px|PM2M 2014]][[Image:PM2M214-003.jpg|200px|PM2M 2014]][[Image:PM2M214-004.jpg|200px|PM2M 2014]][[Image:PM2M214-005.jpg|200px|PM2M 2014]][[Image:PM2M214-006.jpg|200px|PM2M 2014]][[Image:PM2M214-007.jpg|200px|PM2M 2014]][[Image:PM2M214-008.jpg|200px|PM2M 2014]]
  +
  +
=Annexes=
  +
  +
==Cartes, Capteurs et Actionneurs==
  +
  +
[[Image:B-L475E-IOT01A.jpg|200px|thumb|right|STM32 IoTNode B-L475E-IOT01A]]
  +
[[Image:lopy.png|200px|thumb|right|LoPy (LoRa)]]
  +
[[Image:sipy.png|200px|thumb|right|SiPy (Sigfox)]]
  +
  +
# [[SODAQ Explorer]]
  +
# [[Sagemcom Siconia]]
  +
# [[Pycom LoPy]]
  +
# [[Pycom SiPy]]
  +
# [[Pycom FiPy]]
  +
# STM32 Nucleo + Shield LoRa + Shield Météo
  +
# STM32 Nucleo + Shield LoRa + Shield Qualité de l'air
  +
# STM32 Nucleo + [[SparkFun FM Tuner Evaluation Board - Si4703|Récepteur RDS]] + [[ESP8266]]
  +
# [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]]
  +
# LoRaWAN devices
  +
# Modem Microchip RN2483
  +
# [https://wireless-solutions.de/products/radiomodules/im282a.html Modem IMST im282a SX1280 LoRa 2.4 GHz]
  +
# ODBII dongle BLE
  +
# [https://www.seeedstudio.com/OBD-II-CAN-BUS-Development-Kit-p-2993.html Grove OBD-II CAN-BUS Development Kit]
  +
# Multichannel gas sensor [[MiCS-6814]]
  +
  +
# [http://micropython.org/stm32/ micropython sur STM32]

Latest revision as of 17:29, 17 March 2020

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

Enseignants 2020 : 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.

IoT systems over years
IoT Reference Architecture
Sensors Mix


Support de cours

Planning

Etapes

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é.

Fiches

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.

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.


Mini-projets

Affectation des mini-projets

Affectation des projets PM2M 2019-2020
Sujet Étudiants Dépôt git Matériel
IRock : Surveillance des glissements de terrain Troussier Simon, Sanchez Jeremy, Bleton--Giordanno Maxence Dépôts Siconia
Projet de comptage d’humains et d’animaux en milieu naturel WAMPACH Sylvestre, DRIOWYA Abdelghafour Dépôt MAix BiT
Radar et comptage de personnes Lucie MULLER, Benjamin LONGA Dépôt RPI3, RPICam, SparkFun Grid-EYE Infrared Array Breakout - AMG8833
Monitoring de mouvement de paroi rocheuse avec le VL53L0X Amine JONAHI, Maher ISHAK Dépôt STM32 IoTNode B-L475E-IOT01A
Four solaire connecté Defours Ronan TBD Nucleo, I-NUCLEO-LRWAN1 avec accelerometer and magnetometer LSM303AGR, humidity and temperature HTS221 et pressure LPS22HB

Misc

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

Du fait du confinement lié au Covid-19, la soutenance est replacée pour une évaluation sur document.

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 2018

PM2M 2018PM2M 2018PM2M 2018PM2M 2018PM2M 2018PM2M 2018PM2M 2018PM2M 2018

Galerie 2017

Galerie 2016

Suivez les tweets :

Galerie 2015

Galerie 2014

PM2M 2014PM2M 2014PM2M 2014PM2M 2014PM2M 2014PM2M 2014PM2M 2014PM2M 2014

Annexes

Cartes, Capteurs et Actionneurs

STM32 IoTNode B-L475E-IOT01A
LoPy (LoRa)
SiPy (Sigfox)
  1. SODAQ Explorer
  2. Sagemcom Siconia
  3. Pycom LoPy
  4. Pycom SiPy
  5. Pycom FiPy
  6. STM32 Nucleo + Shield LoRa + Shield Météo
  7. STM32 Nucleo + Shield LoRa + Shield Qualité de l'air
  8. STM32 Nucleo + Récepteur RDS + ESP8266
  9. STM32 IoTNode
  10. LoRaWAN devices
  11. Modem Microchip RN2483
  12. Modem IMST im282a SX1280 LoRa 2.4 GHz
  13. ODBII dongle BLE
  14. Grove OBD-II CAN-BUS Development Kit
  15. Multichannel gas sensor MiCS-6814
  1. micropython sur STM32