Difference between revisions of "PM2M/2016/TP"
Line 67: | Line 67: | ||
* [[Kapacitor]] |
* [[Kapacitor]] |
||
* [[Kaa]] |
* [[Kaa]] |
||
+ | * [[Hypercat]] |
||
... |
... |
||
Revision as of 13:53, 21 January 2016
Page 2016 des supports de cours et travaux pratiques de l'UE Projets M2PGI Services Machine-to-Machine.
Enseignants 2016 : Didier Donsez, Laurent Lemke
Partie démarrant le 1er Mars 2016 en F112.
Soutenances
A définir : 1 Créneau de 2H du 11 au 13 Avril 2016.
Sujets
27 étudiants: 13 sujets
Instructions
Chaque soutenance dure 20 minutes (10 minutes de présentation, 5 minutes de démo, 5 minutes de questions)
La présentation comportera un transparent pour chacune des rubriques suivantes) :
- Titre (avec les noms prénoms des binômes)
- Applications IoT cibles/envisagées
- Cartes et Composants Matériels Utilisés
- Composants Logiciels et Protocoles Utilisés
- Architecture Générale
- Nombre de Lignes de Code Développés et Langages de Programmation
- Difficultés Rencontrés
- Conclusion
La présentation peut-être réalisée avec Reveal.js.
Pensez a répéter vos présentations.
Envoyez le lien vers le dépôt Github (code + présentation) avant la soutenance.
Support de cours
Etapes
- Tutoriel OSGi
- Tutoriel Arduino
- Installation d'OpenHAB
- Installation de Mosquitto
- Installation de Node-RED
- Installation de InfluxDB, Grafana, Influga, Chronograf
- DEPRECATED : Installation de MQTT Panel avec rickshaw
- Dépôt GitHub
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 effectuée en binôme.
- SARAH
- WirelessHART
- Weightless
- OpenRF
- WMBus
- Thread (Google)
- AllJoyn
- IPSO
- GeoJSON
- Avro
- Thrift
- Protobuf
- Apache Spark
- Apache Zeppelin
- Chronograf
- Telegraf
- Kapacitor
- Kaa
- Hypercat
...
Capteurs et Actionneurs
- STM32 Nucleo + Shield LoRa SX1276 + Shield Météo
- STM32 Nucleo + Shield NFC + Shield BLE (avec client Android MQTT)
- STM32 Nucleo + Shield NFC + ESP8266
- Sensors ZWave + Clé ZWave
- Sensors RFXCom 433MHz + Clé RFXCom 433MHz
- STM32 Nucleo + Shield BLE (capture de beacons iBeacon & AltBeacon) (avec client Android MQTT)
- Sensors enOcean (à vérifier auprès de Jérôme Maisonnasse)
- Sensors enOcean (à vérifier auprès de Jérôme Maisonnasse)
- Sensors Zigbee (à vérifier auprès de Jérôme Maisonnasse)
- Sensors Wifi ESP8266 (IDE Arduino)
- Sensors Wifi ESP8266 (Lua)
- SensorTag2015 BLE + Debug DevPack + LED Audio DevPack (avec client Android MQTT)
- SensorTag2015 BLE + Debug DevPack + Watch DevPack (avec client Android MQTT)
- Carte de démonstration SigFox
- Carte Intel Curie (à confirmer) (avec client Android MQTT)
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 ...)
Contenu Mini-Projet
CoAP Binding for OpenHAB
Extension de Node-RED
- Node InfluxDB
- Node Crypto (avec https://nodejs.org/api/crypto.html)
- Node Apache Kafka
- Node CoAP
- Node UPnP
- Node RFXCom
- Node SigFox (uplink et downlink)
- Node Sérialisation/Déserialisation Avro
- Node Sérialisation/Déserialisation Thrift
- Node Sérialisation/Déserialisation Protobuf
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 comme Windows Azure ou Amazon EC2, Heroku, IBM Bluemix ou sur votre machine.
Attention, Eduroam bloque le port 1883 du protocole MQTT (entre autre).
PubSub des mesures capteur avec Apache Kafka
Le broker MQTT peut être replacé par le broker PubSub Apache Kafka qui peut fonctionner en configuration distribuée et répliquée (plusieurs serveurs sur une plateforme cloud).
Intégration à un ESB Apache Camel
Compléter le tutoriel avec un déploiement de composants Apache Camel Vous pourrez utiliser les composants suivants
- https://camel.apache.org/weather.html
- https://camel.apache.org/mqtt.html
- https://camel.apache.org/rss.html
- https://camel.apache.org/esper.html
- https://camel.apache.org/mongodb.html
- InfluxDB
Soutenance
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 contexte M2M et le domaine d'application ciblée,
- le ou les architectures (successivement) implémentées,
- les composants logiciels et matériels utilisés,
- les métriques (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. Prière de me communiquer l'adresse des dépôts GitHub aussi vite que possible.
Projets
Matériel
- Intel Galileo
- http://intel-software-academic-program.com/courses/#iot
- 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 (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
- MQTT Panel
- MQTT over Websocket
- Leaflet.js modern open-source JavaScript library for mobile-friendly interactive maps
- Morris.js Charts in Javascript
- Grafana
Stockage
Liens
- Intel Galileo
- http://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2014
- https://github.com/SmartDollHouse
- https://twitter.com/FablabAIR
Autres