PM2M/2020/TP

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



Support de cours

 * Intergiciels pour l'IoT
 * La plateforme OpenHAB
 * La plateforme de services OSGi
 * Eclipse IoT Days 2018 (vidéos).
 * Blockchain for Trusted IoT (slides, video)
 * Le rapport sur le CES 2018 d'Olivier Ezratty
 * The DZone Guide to The Internet of Things
 * https://projects.eclipse.org/proposals/eclipse-iota-trinity

Planning (PROVISOIRE)
19/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Avant la séance du 12/02 (TRES IMPORTANT)
 * Installation de l'IDE pour le STM32
 * Installation de Docker sur vos machines.
 * 12/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]]
 * Présentation IoT ETL Mashup avec Node-RED, Grafana, InfluxDB sur CampusIoT
 * 05/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Getting started
 * 05/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Tutoriel STM32 IoTNode (Michael ESCODA, ST Microelectronics Grenoble) 1H30 (à confirmer)
 * Travail en équipe
 * 12/03 13H30-16H45 au fablab FabMSTIC (Apportez vos machines)
 * Tutoriel IoT Dataviz Mashup avec https://www.jyse.io/ (Simon VIENOT) 1 heure (à confirmer)*
 * Travail en équipe
 * 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

 * Coup d’œil aux projets 2016, projets 2017 et projets 2018.
 * Installation de Docker
 * Tutoriel Arduino
 * Suivre le tutoriel Developing IoT Mashups with Docker, MQTT, Node-RED, InfluxDB, Grafana.
 * Installation d'OpenHAB.
 * 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 Rfxcom, Influxdb, Eddystone, Sensortag, ZWave, iBeacon, PubNub, IFTTT, * AMQP ... et 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, 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é.

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.


 * Sat-IoT et LPGAN
 * 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



 * 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


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

 * Campagne d'instrumentation de la température et de l'humidité du batiment IM2AG
 * IRock : Surveillance des glissements de terrain
 * Radar et comptage de personnes (fusion d'information)
 * Monitoring du fablab
 * Géolocalisation TDOA LoRa
 * Parking à la seconde

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

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

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.

=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