Difference between revisions of "PM2M/2019/TP"

From air
Jump to navigation Jump to search
(Created page with "Page 2019 des supports de cours et travaux pratiques de l'UE Projets M2PGI Services Machine-to-Machine et Internet-of-Things. Enseignants 2019 : Didier Donsez Partie dé...")
 
 
(50 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
Enseignants 2019 : Didier Donsez
 
Enseignants 2019 : Didier Donsez
   
Partie démarrant ??/02 au ??/03 .
+
Partie démarrant 12/02 au 26/03 .
   
Soutenance du mi-projet le ??/03 (1H30).
+
Soutenance du mi-projet durant la semaine d'examen le ??/03 (3H00).
   
 
Rendu fiche de synthèse : ??/03 à minuit.
 
Rendu fiche de synthèse : ??/03 à minuit.
Line 27: Line 27:
   
 
==Planning==
 
==Planning==
* Avant la séance du 27/02 (TRES IMPORTANT)
+
* Avant la séance du 12/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)
 
* 27/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 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)
** Tutoriel [[ STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]] ([https://www.linkedin.com/in/michael-escoda-a2776916/ Michael ESCODA], ST Microelectronics Grenoble) 2 heures
 
* 06/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]] et [[Docker]] (Didier DONSEZ) 30 minutes [[Media:iot_mashup.pdf|transparents]]
 
** Tutoriel IoT Dataviz Mashup avec https://www.jyse.io/ ([https://www.linkedin.com/in/vienot Simon VIENOT]) 1 heure
 
 
** [[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)
  +
** Tutoriel [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]] ([https://www.linkedin.com/in/michael-escoda-a2776916/ Michael ESCODA], ST Microelectronics Grenoble) 1H30 (à confirmer)
 
** 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
* 20/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
+
19/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
* 27/03 13H30-16H45 au [http://fabmstic.imag.fr/wp-content/uploads/2017/11/plan_im2ag.jpg fablab FabMSTIC] (Apportez vos machines)
+
* 26/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
* 09/04 : Rendu des fiches de synthèse
+
* 08/04 : Rendu des fiches de synthèse
* 10/04 13H30-16H45 : Soutenances (présentation + questions + démonstration)
+
* 09/04 15H00-18H00 : Soutenances (présentation + questions + démonstration)
** [[PM2M/2018_LoRaSpace|LoRaSpace]] (35 minutes)
 
** [[PM2M/2018_AssistedWheelchair|Assisted Wheelchair]] (25 minutes)
 
** [[PM2M/2018_CarLoRa|CarLoRa]] (35 minutes)
 
** [[PM2M/2018_OnboardParkingMeter|Onboard Parking Meter]] (20 minutes)
 
** [[PM2M/2018_LoRaRiver|Surveillance de cours d'eau]] (35 minutes)
 
** [[PM2M/2018_ConnectedSportMachine|Exercise physique récompensé]] (20 minutes)
 
   
 
==Etapes==
 
==Etapes==
* Coup d’œil aux [[PM2M/2016/TP|projets 2016]] et aux [[PM2M/2017/TP|projets 2017]].
+
* Coup d’œil aux [[PM2M/2016/TP|projets 2016]], [[PM2M/2017/TP|projets 2017]] et [[PM2M/2018/TP|projets 2018]].
 
* Installation de [[Docker]]
 
* Installation de [[Docker]]
 
* [[UE_PEIP_L1|Tutoriel Arduino]]
 
* [[UE_PEIP_L1|Tutoriel Arduino]]
Line 76: Line 69:
 
Synthétiser un des sujets suivants en 1 page maximum. La page doit être une entrée du wiki. Chaque synthèse est individuelle.
 
Synthétiser un des sujets suivants en 1 page maximum. La page doit être une entrée du wiki. Chaque synthèse est individuelle.
   
  +
* Sat-IoT et LPGAN
* [[WMBus]]
 
  +
* Eclipse IOTA Trinity
* [[NB-IoT]] (NGUYEN MINH TRUNG)
 
* [[NB-LTE]]
+
* [[zenoh]]
  +
* FOTA ([[Firmware Over-The-Air]]) dans les réseaux LPWAN
* [[Apple Homekit]]
 
  +
* [[Eclipse Keyple]]
* [[OneM2M]] et [[Eclipse OM2M]] et [[Eclipse Leshan]] (pour un binome)
 
* [[OPC-UA]]
+
* [[Eclipse Kuksa]]
* [[Tetra Radio]]
+
* [[Eclipse fog∅5]]
* [[OGC SensorThings]]
+
* [[Eclipse ioFog]]
* [[Zephyr Project]]
+
* [[Eclipse hawkbit]]
* [[Yocto]]
 
* [[Eclipse Kura]]
 
* [[Eclipse Kapua]]
 
 
* [[Eclipse Vorto]]
 
* [[Eclipse Vorto]]
* [[Eclipse Ditto]] IMPORTANT pour [[Digital Twin]]
 
 
* [[Eclipse 4diac]]
 
* [[Eclipse 4diac]]
* [[Eclipse hawkBit]]
+
* [[Eclipse Wakaama]]
* [[Eclipse BIRT]]
+
* [[Apache Mynewt]]
* [[SolarCoin]]
+
* [[Open Air Interface]]
* [[IOTA]]
 
* [[Azure IoT]]
 
* [[IBM Watson]]
 
* [[AWS IoT]]
 
* [[OVH Metrics]]
 
* [[Cayenne]]
 
* [[Acoustic Data Communications for Underwater IoT Applications]] ([[Remotely Operated Vehicle|ROV]]s, [[Unmanned Underwater Vehicule|UUV]]s ...)
 
* [[Li-Fi]]
 
   
 
==Fiche "Privacy & Sécurity"==
 
==Fiche "Privacy & Sécurity"==
Line 109: Line 90:
   
 
[[Image:B-L475E-IOT01A.jpg|200px|thumb|right|STM32 IoTNode B-L475E-IOT01A]]
 
[[Image:B-L475E-IOT01A.jpg|200px|thumb|right|STM32 IoTNode B-L475E-IOT01A]]
[[Image:Genuino101.jpg|200px|thumb|right|Genuino 101]]
 
 
[[Image:lopy.png|200px|thumb|right|LoPy (LoRa)]]
 
[[Image:lopy.png|200px|thumb|right|LoPy (LoRa)]]
 
[[Image:sipy.png|200px|thumb|right|SiPy (Sigfox)]]
 
[[Image:sipy.png|200px|thumb|right|SiPy (Sigfox)]]
[[Image:fipy.png|200px|thumb|right|FiPy (the full monty)]]
 
[[Image:apache_nifi.png|200px|thumb|right|Apache Nifi]]
 
   
  +
# [[SODAQ Explorer]]
  +
# [[Sagemcom Siconia]]
 
# [[Pycom LoPy]]
 
# [[Pycom LoPy]]
 
# [[Pycom SiPy]]
 
# [[Pycom SiPy]]
 
# [[Pycom FiPy]]
 
# [[Pycom FiPy]]
# STM32 Nucleo + Shield LoRa SX1272 + Shield Météo
+
# STM32 Nucleo + Shield LoRa + Shield Météo
# STM32 Nucleo + Shield LoRa SX1276 + Shield Météo
+
# STM32 Nucleo + Shield LoRa + Shield Qualité de l'air
# STM32 Nucleo + Shield NFC + Shield BLE (avec [http://www.eclipse.org/paho/clients/android/sample/ client Android MQTT])
 
 
# STM32 Nucleo + [[SparkFun FM Tuner Evaluation Board - Si4703|Récepteur RDS]] + [[ESP8266]]
 
# STM32 Nucleo + [[SparkFun FM Tuner Evaluation Board - Si4703|Récepteur RDS]] + [[ESP8266]]
# Sensors ZWave + Clé ZWave
 
# Sensors RFXCom 433MHz + Clé RFXCom 433MHz
 
# STM32 Nucleo + Shield BLE (capture de beacons [[iBeacon]] & [[AltBeacon]]) (avec [http://www.eclipse.org/paho/clients/android/sample/ client Android MQTT])
 
 
# [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]]
 
# [[STM32 IoTNode B-L475E-IOT01A|STM32 IoTNode]]
  +
# LoRaWAN devices
# Sensors [[enOcean]] (à vérifier auprès de Jérôme Maisonnasse)
 
  +
# Modem Microchip RN2483
# Sensors [[Zigbee]] (à vérifier auprès de Jérôme Maisonnasse)
 
  +
# [https://wireless-solutions.de/products/radiomodules/im282a.html Modem IMST im282a SX1280 LoRa 2.4 GHz]
# Sensors [[XBee]] (à vérifier auprès de Jérôme Maisonnasse)
 
  +
# ODBII dongle BLE
# Carte Wifi [[ESP8266]] (IDE Arduino) + Shield [[OpenEnergyMonitor]]
 
  +
# [https://www.seeedstudio.com/OBD-II-CAN-BUS-Development-Kit-p-2993.html Grove OBD-II CAN-BUS Development Kit]
# Carte Wifi [[ESP8266]] ([[Lua]]) + Shield [[OpenEnergyMonitor]]
 
  +
# Multichannel gas sensor [[MiCS-6814]]
# Carte Wifi [[ESP32]] ([[Lua]]) + Shield [[OpenEnergyMonitor]]
 
  +
# Carte de démonstration [[SigFox]]
 
  +
# [http://micropython.org/stm32/ micropython sur STM32]
# Carte [[Intel Curie]] [[Genuino 101]] (avec [http://www.eclipse.org/paho/clients/android/sample/ client Android MQTT])
 
# Carte [[Intel Curie]] [[Genuino 101]] (avec [http://www.eclipse.org/paho/clients/android/sample/ client Android MQTT]) +Ceinture cardio [http://www.decathlon.fr/cardio-bluetooth-smart-40-id_8288269.html Geonaute]
 
# Carte Xadow GSM+BLE du [[RePhone]] (voir [http://www.instructables.com/id/ArduinoPhone-20-an-Open-Source-Mobile-Phone-Based-/ ArduinoPhone 2.0])
 
# Carte LoRa
 
# [[HB100 Miniature Microwave Motion Sensor]]
 
   
 
==Mini-Projet==
 
==Mini-Projet==
Line 143: Line 115:
   
 
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]].
 
 
   
   
 
===Mini-projets===
 
===Mini-projets===
* '''LoRaSpace''' (4 étudiants)
 
** Vous imaginerez un moyen de communication bidirectionnelle basse consommation d'énergie pour les nano-sattelites du [https://www.csug.fr/ Centre spatial universitaire de Grenoble] avec la technologie [[LoRa]].
 
** Module modem LoRa [[RN2483]] 868 et 433 MHz
 
** Module [[LoRa]] IMST [[iM880A]]
 
** Antenne Yagi Directional for 800/850/900MHz
 
** Carte [[STM32 Nucleo]]
 
** Carte [[X-NUCLEO-IHM01A1]] pour [[Stepper]]
 
** 2 Moteurs ([[Stepper]]) pas à pas (pour le pilotage 2 axe de la station sol)
 
** Raspberry PI
 
* '''Exercise physique récompensé/pénalisé''' (2 étudiants)
 
** Vélo d'appartement ([http://assets.domyos.com/vm_950_fr.pdf Decathlon Domyos VM 950])
 
** [[LoRa]]
 
** [[BLE]]
 
** [[NFC]]
 
** [[Ethereum]]
 
** [[STEVAL-WESU1]]
 
** [https://www.decathlon.fr/cardio-ant-bluetooth-smart-id_8334795.html Ceinture cardio Geonaute] Profil HRM BLE
 
** Montre Decathon ON200
 
** [https://play.google.com/store/apps/details?id=no.nordicsemi.android.nrftoolbox&hl=fr nRF Toolbox for BLE]
 
** [https://github.com/R2D2-2017/R2D2-2017/wiki/Keyes-44E402-Magnetic-Hall-Switch-Sensor Keyes 44E402 Magnetic Hall Switch Sensor]
 
* '''Surveillance de cours d'eau''' (4 étudiants)
 
** Station méteo [[LoRa]]
 
** Nilomêtre LoRa
 
** [[Ethereum]]
 
* [[CarLoRA]] (2 étudiants)
 
** Carte [[LoRa]] (ESP32, LoPy ou STM32)
 
** [[OBD|Dongle OBD2 ELM 327 VAGCOM]]
 
** [[Hyperledger]]
 
* '''Onboard Parking Meter'''
 
** Vous imaginerez un objet connecté à poser près du pare-brise.
 
** Paiement via une blockchain [[Hyperledger]] : voir l'exemple [https://github.com/ibm-watson-iot/blockchain-samples/tree/master/contracts/industry/parkingmeter|IoT Watson].
 
 
 
   
 
===Affectation des mini-projets===
 
===Affectation des mini-projets===
Line 196: Line 133:
 
|-
 
|-
   
  +
!scope="row"| 1
 
  +
|}
| [[PM2M/2018_LoRaSpace|LoRaSpace]]
 
| SOFIANE AMAZOUZ, SEIFEDDINE BENOMAR, MOHAMMED HICHEM CHEBIHI, REDHA CHEMALI
 
| [[PM2M/2018_LoRaSpace|fiche]]
 
| [https://github.com/rchemali/Projet-M2M-LoraSpace '''github''']
 
| [[Media:2018 LoRaSpace-slides.pdf|Transparents]] - [[Media:2018 LoRaSpace-slides.pdf|Flyer]] [[https://www.youtube.com/watch?v=8X9iSv8Lb70&t '''Video1''']][[https://www.youtube.com/watch?v=FKaZfTMN0gY&t='''Video2''']] [[Media:LoRaSpace-slides.pdf|Rapport]]
 
|
 
|-
 
   
  +
===Sujets (provisoire) des mini-projets===
!scope="row"| 2
 
| [[PM2M/2018_AssistedWheelchair|Assisted Wheelchair]]
 
| LILIA AZEB, ANTHONY CHAVOUTIER, YOHANN MATEO
 
| [[PM2M/2018_AssistedWheelchair|fiche]]
 
| [https://gitlab.com/anthonyCh/easy-drive-api '''gitlab-api'''] [https://gitlab.com/anthonyCh/easy-drive-mobile '''gitlab-mobile'''] [https://gitlab.com/anthonyCh/easy-drive-arduino '''gitlab-arduino''']
 
| [[Media:Présentation-EasyDrive.pdf|Transparents]] - [[Media:Présentation-EasyDrive.pdf|Flyer]]
 
|
 
|-
 
   
  +
* '''Campagne d'instrumentation de la température et de l'humidité du batiment IM2AG'''
!scope="row"| 3
 
  +
** Etudiants: Nicolas Huchet, Loïc Houdebine
| [[CarLoRA]]
 
  +
** Equipements:
| PAUL CARRETERO, MINH TRUNG NGUYEN
 
  +
*** [[Sagemcom Siconia]] (x20)
| [[CarLoRA|fiche]]
 
| [https://github.com/paul-carretero/carlora '''github''']
+
*** Réseau LoRaWAN [https://campusiot.github.io/ CampusIoT]
  +
** [[I-NUCLEO-LRWAN1]]
| [[Media:2018_CarLoRa-slides.pdf|Transparents]] - [[Media:2018_CarLoRa-flyer.pdf|Flyer]]
 
|
 
|-
 
   
  +
* '''IRock : Surveillance des glissements de terrain'''
!scope="row"| 4
 
  +
** Etudiants: Baptiste Marion, Quentin Rozand
| [[PM2M/2018_OnboardParkingMeter|Onboard Parking Meter]]
 
  +
** Equipements:
| YASSINE FARICH, JULIEN NAVAILS
 
  +
*** Station méteo [[LoRa]]
| [[PM2M/2018_OnboardParkingMeter|fiche]]
 
| [https://github.com/yassinefarich/projet_M2M '''github'''] [https://gitlab.com/yassinefarich/Projet_M2M '''gitlab''']
+
*** [https://github.com/CampusIoT/tutorial/tree/master/siconia Sagem Siconia]
  +
*** [[IRock : Surveillance Géotechnique LoRa|Caillou IRock]]
| [[Media:2018_OnboardParkingMeter-slides.pdf|Transparents]] - [[Media:PM2M/2018_OnboardParkingMeter-flyer.pdf|Flyer]]
 
  +
*** [[Hyperledger]]
|
 
  +
*** Réseau LoRaWAN [https://campusiot.github.io/ CampusIoT]
|-
 
   
  +
* '''Radar et comptage de personnes (fusion d'information)'''
!scope="row"| 5
 
  +
** Etudiants: yann ducruy, r segretain
| [[PM2M/2018_LoRaRiver|LoRaRiver]]
 
  +
** Equipements:
| PAUL FAYE, LUCAS LEGRAND, YAOVI TCHAMDJA, BRICE VARINI
 
  +
*** [[OpenHAB]]
| [[PM2M/2018_LoRaRiver|fiche]]
 
  +
*** [[HB100 Miniature Microwave Motion Sensor]]
| [https://github.com/boost-e/watercourse_supervisor '''github''']
 
  +
*** [[SparkFun Grid-EYE Infrared Array Breakout - AMG8833]]
| [[Media:2018_LoRaRiver-slides.pdf|Transparents]] - [[Media:PM2M/2018_LoRaRiver-flyer.pdf|Flyer]]
 
  +
*** [[Hyperledger]]
|
 
|-
 
   
  +
* '''Monitoring du fablab'''
!scope="row"| 6
 
  +
** Etudiants: ABDULLAH HASIM mohd thaquif, CADAVID Juan, GINET Maxence
| [[PM2M/2018_ConnectedSportMachine|Exercise physique récompensé]]
 
  +
** Equipements:
| JULIEN DIDES, SEDJRO ZODEHOUGAN
 
  +
*** [[OpenHAB]]
| [[PM2M/2018_ConnectedSportMachine|fiche]]
 
  +
*** Capteurs LoRaWAN de Température, Détection de présence, détecteur de fumée, ...
| [https://github.com/mickledur/ProjetM2M_004 '''github''']
 
  +
*** RFXCom, enOcean, ZWave
| [[Media:2018_ConnectedSportMachine-slides.pdf|Transparents]] - [[Media:PM2M/2018_ConnectedSportMachine-flyer.pdf|Flyer]]
 
  +
*** [[Hyperledger]]
|
 
  +
*** '''[[ISofa]]'''
|-
 
  +
**** [[OpenHAB]]
  +
**** Canapé IKEA [http://www.ikea.com/fr/fr/catalog/products/80264964/#/80264964|KNOPPARP]
  +
**** Boutons de Borne Arcade ?
  +
**** [[Papierlogik]]
  +
*** Réseau LoRaWAN [https://campusiot.github.io/ CampusIoT]
   
  +
* '''Géolocalisation [[Time difference of arrival|TDOA]] [[LoRa]]'''
|}
 
  +
** Etudiants: Benjamin Gontard, Antoine Duquennoy
  +
** Equipements:
  +
*** [[CampusIoT]] dataset
  +
*** [https://github.com/CampusIoT/payload-codec/tree/master/src/main/javascript/adeunisrf Adeunis Field Test Device]
  +
*** [https://github.com/CampusIoT/payload-codec/tree/master/src/main/javascript/semtech Semtech LoRaMote]
  +
*** STM32 Nucleo LRWAN1 + [https://www.st.com/en/ecosystems/x-nucleo-gnss1a1.html Teseo Nucleo shield]
  +
*** [[I-NUCLEO-LRWAN1]]
  +
*** [https://www3.nd.edu/~cpoellab/teaching/cse40815/Chapter10.pdf ref]
   
  +
* '''Parking à la seconde'''
===Sujets des mini-projets restants===
 
  +
** Etudiants: Florian Gourdeau, Loric Coleiro
 
  +
** Equipements:
 
  +
*** [[CampusIoT]]
* '''Solar energy trading'''
 
  +
*** STM32 Nucleo
** [[I-Greenhouse]]
 
  +
** Teseo GNSS shield
** [[LoRa]], [[NFC]], [[BLE]]
 
** [[OpenHAB]]
+
*** [[I-NUCLEO-LRWAN1]]
  +
** [https://www.seeedstudio.com/OBD-II-CAN-BUS-Development-Kit-p-2993.html Grove ODBII]
** [[Hyperledger]]
 
* '''Radar et comptage de véhicules/personnes (fusion d'information)'''
 
** [[OpenHAB]]
 
** Caméra de surveillance IP
 
*** Voir https://dzone.com/articles/java-autonomous-driving-car-detection-1
 
** [[HB100 Miniature Microwave Motion Sensor]]
 
** [[Hyperledger]]
 
* '''Monitoring du fablab'''
 
** [[OpenHAB]]
 
** Température, Détection de présence, détecteur de fumée
 
** RFXCom
 
** [[Hyperledger]]
 
* '''IRock : Surveillance des glissements de terrain'''
 
** Station méteo [[LoRa]]
 
** [[IRock : Surveillance Géotechnique LoRa|Caillou IRock]]
 
** [[Hyperledger]]
 
* '''Surveillance de cours d'eau''' (2 étudiants)
 
** Station méteo [[LoRa]]
 
** Nilomêtre LoRa
 
** [[Ethereum]]
 
* '''[[ISofa]]''' (3 étudiants)
 
** [[OpenHAB]]
 
** Canapé IKEA [http://www.ikea.com/fr/fr/catalog/products/80264964/#/80264964|KNOPPARP]
 
** Boutons de Borne Arcade
 
** [[Papierlogik]]
 
** [[NFC]]
 
** [[BLE]]
 
** [[Hyperledger]]
 
   
==Contenu général des mini-projets==
+
==@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é.
 
Les équipes ne font qu'une partie des manipulations en fonction du sujet du mini-projet affecté.
   
Line 396: Line 303:
   
 
Pensez a répéter vos présentations.
 
Pensez a répéter vos présentations.
 
==Projets==
 
 
==Matériel à disposition==
 
* Cartes de communication [[Low Power Wide Area Networks]]
 
* [[Intel Galileo]]
 
* http://intel-software-academic-program.com/courses/#iot
 
** http://intel-software-academic-program.com/courses/diy/Intel_Academic_-_DIY_-_InternetOfThings/IntelAcademic_IoT_09_Arduino_Motor_Shield.pdf
 
* [[Gas Sensors]]
 
* [[DHT11/DHT21/DHT22 etc. Temperature & Humidity sensors]]
 
* [[SCL3711]] NFC Reader --> voir [[NFCpy]]
 
* [[Capteur de pression BMP085]]
 
* [[High Sensitivity Alarm Vibration Sensor Module]]
 
* [[PIR Motion Sensor]]
 
* [[BMP085 Pressure Sensor]]
 
* [[CC2541 SensorTag Development Kit]]
 
* [[Socket.io]]
 
* [[STM32 Nucleo]]
 
** Shield BlueNRG
 
* 2 Shields [[LoRa]] pour Arduino ([http://www.labfab.fr/portfolio/lora-fabian/ LoRaFabian]) à brancher sur Galileo et STM32 Nucleo.
 
** Il faut porter les sketchs Arduino https://github.com/Wi6labs/lorafabian/tree/master/ARDUINO_SKETCH via MBed et Galileo.
 
   
 
==Visualisation==
 
==Visualisation==

Latest revision as of 10:24, 8 May 2019

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

Enseignants 2019 : Didier Donsez

Partie démarrant 12/02 au 26/03 .

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

IoT systems over years
IoT Reference Architecture
Sensors Mix


Support de cours

Planning

19/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)

    • Travail en équipe
  • 26/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
    • Travail en équipe
  • 08/04 : Rendu des fiches de synthèse
  • 09/04 15H00-18H00 : Soutenances (présentation + questions + démonstration)

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

Fiche de synthèse

Synthétiser un des sujets suivants en 1 page maximum. La page doit être une entrée du wiki. Chaque synthèse est individuelle.

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

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

Mini-Projet

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, 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 2017-2018
Sujet Étudiants Fiche de suivi Dépôt git Documents Matériel

Sujets (provisoire) des mini-projets

  • Campagne d'instrumentation de la température et de l'humidité du batiment IM2AG
  • Monitoring du fablab
    • Etudiants: ABDULLAH HASIM mohd thaquif, CADAVID Juan, GINET Maxence
    • Equipements:

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

CoAP Binding for OpenHAB

Extension de Node-RED

Création ou Amélioration de Nodes

Le code devra être recontribué en open-source sur GitHub et catalogué dans http://flows.nodered.org/

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

PubSub des mesures capteur avec Apache Kafka

GPS > Kafka > Storm on Azure Demo

Remplacer le broker MQTT par le broker PubSub Apache Kafka qui peut fonctionner en configuration distribuée et répliquée (plusieurs serveurs sur une plateforme cloud).

PubSub des mesures capteur avec Apache Flume

Remplacer le broker MQTT par le broker PubSub Apache Flume qui peut fonctionner en configuration distribuée et répliquée (plusieurs serveurs sur une plateforme cloud).

Collecte, Stockage et Visualisation des mesures capteur avec Logstash, Elastic Search, Kibana

voir NodeRED ElasticSearch3

Routage avec Apache Nifi

Décodage avec Eclipse Vorto

Affichage des positions avec Bootleaf

Refactorer et améliorer Bootleaf afin de visualiser en temps réel les données géolocalisées de vos capteurs ou des traces (séries temporelles de positions). Exemple: tester la présence d'un champ latlon, latlonalt, geo, ... dans le JSON des flows Node-RED.

Analyse des mesures capteurs en temps réel avec Apache Spark Streaming

Installer Spark sur un petit cluster EC2 (1 master et 2 slaves en Ubuntu 14.04 t2.micro).

S'inspirer du script Scala MQTTCount pour calculer des valeurs agrégées (avg, min, max) des groupes de capteurs sur des fenêtres de 5 minutes.

Faire de même avec les brokers Apache Kafka et Apache Flume

Intégration à un ESB Apache Camel

Compléter le tutoriel avec un déploiement de composants Apache Camel Vous pourrez utiliser les composants suivants

Monitoring de votre infrastructure avec Telegraf, InfluxDB, Grafana et Kapacitor

Monitoring de votre infrastructure avec AWS Cloudwatch et Grafana

Pour monitorer les machines qui hébergent les serveurs (Mosquitto, ...) sur AWS EC2:

Soutenances

Planning des soutenances

COMING SOON

Instructions pour les soutenances des mini-projets

  • 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)
    • 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.

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.

Visualisation

Stockage

Liens

Autres

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