{{ :cours:projet_si3_synoptique_bd_ihm_cps.jpg?400|}} ====== Digital Systems for Humans - Technological Challenges in IoT (DS4H-IoT) ====== Pedagogical Approach for this course is //learning-by-doing// and then //conceptualizing// . After a brief introduction, the first step of this course is practicing with use cases and exercices on a specific IoT Infrastructure called YoIoT. The second step is generalising some concepts towards an abstract representation to reason on other cases. ||| ||| ||| ===== Short Introduction to IoT infrastructure ===== ---- === IoT Infrastructure Principes === === Example of commercial solution using IoT infrastructure : HDSN (see Demonstrator) === * From Real IoT Sensors (IoT Level) to a datacenter in a Cloud provider (Cloud Level) * WebApp for user access to this smart home information * Web Service for software access to this smart home information === Your own IoT Infrastructure (YoIoT) (See demonstration) === In order to provide a complete IoT/Edge/Cloud infrastructure for the practical part of this course we chose various free integrated solutions in the smart home application domain. Then the overall architecture consists in: * Various sensors / actuators and sometimes more sophisticated smart devices, using Zwave and EnOcean standards for communication protocol * Gateways based on RaspberryPi and the OpenHab software connected to Zwave/EnOcean but also wifi/ethernet and internet on the local netwark (LAN) * PCs using Node-Red software environment as the first level for programming IoT application * Remote Cloud services like OpenWeatherMap, ThingSpeak, Google Storage ... (Cloud for SAAS) {{:cours:lecture_ds4hiot_iot_infrastructure_introduction.pdf|Support de présentation des principaux éléments des infrastructures IoT - Introduction}} ||| ||| ||| ||| ||| ||| ===== YoIoT: Your own IoT Infrastructure for Tutorials ===== YoIoT is a technological example of an IoT infrastructure with only free software products ! ---- [[https://www.iot4smes.eu/en/default.aspx|{{ :cours:logocompletiotsme.png?600 |}}]] Some materials about YoIoT deployment and manipulation can be find in [[https://www.iot4smes.eu/en/default.aspx|IoT4SME]] like {{:cours:iot4smes_iot_demonstrator_uns_v1.3.pdf|}}. ||| ==== How to install YoIoT ==== ||| {{:cours:installation_d4sh_iot.pdf|See guideline here}} ** Comment :** Home I/O installation is optional. It depends on your computer skills ... ||| ==== From IoT Devices to Edge in YoIoT ==== // From(IoT Level) to RaspberryPi/PC (Edge Level) thanks to MQTT communication protocol// == Required Knowledge: == * [[https://youtu.be/EIxdz-2rhLs|What is MQTT ?]], [[http://mqtt.org|MQTT OASIS Standard]] * What is OpenHab ?, [[https://www.openhab.org/docs/|Documentation]] * [[https://nodered.org/docs/getting-started/second-flow|How to use Node-Red for programming ?]] == Manipulations with Real Smart Home Devices connected through a gateway RaspberryPi with OpenHab == ||| ** Correction : ** {{:cours:corrections.zip| Corrections Zip file}} [{"id":"7e96c990.582bf8","type":"mqtt in","z":"2ce2a219.894e3e","name":"","topic":"openhab/#","qos":"2","broker":"aa872460.7dff18","x":120,"y":160,"wires":[["e6cd4834.c78e68"]]},{"id":"e6cd4834.c78e68","type":"debug","z":"2ce2a219.894e3e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":390,"y":160,"wires":[]},{"id":"420c7771.ed7e08","type":"mqtt out","z":"2ce2a219.894e3e","name":"","topic":"openhab/zwave_device_1b2be295_node4_switch_binary/commandssub","qos":"","retain":"","broker":"aa872460.7dff18","x":1000,"y":160,"wires":[]},{"id":"2bfce164.02ee0e","type":"inject","z":"2ce2a219.894e3e","name":"Prise ON","topic":"","payload":"ON","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":620,"y":140,"wires":[["420c7771.ed7e08"]]},{"id":"1165f273.5a523e","type":"inject","z":"2ce2a219.894e3e","name":"Prise OFF","topic":"","payload":"OFF","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":620,"y":180,"wires":[["420c7771.ed7e08"]]},{"id":"aa872460.7dff18","type":"mqtt-broker","z":"","name":"192.168.137.93","broker":"192.168.137.93","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""}] ==== From Edge to Cloud in YoIoT ==== //RaspberryPi/PC (Edge Level) to ThingSpeak (Cloud Level) thanks to Web Service - HTTP communication protocol // == Required Knowledge: == * What is a Web Service ? * What is ThingSpeak ? * How to access to a Web Service with Node-Red ? == Tutorial : How to use Node-Red to access to Web Services ? == exercice 1 : send some values to a ThingSpeak Channel with Node-Red and visualize the result on the Web exercice 2 : get some information (like a temperature in a given city) from one Web service like [[https://openweathermap.org/api|OpenWeatherMap]] and see the result with Node-Red debug. exercice 3 : after giving a ==== A completet Application in YoIoT ==== ---- == Required Knowledge: == Nothing more ... == Projects == First design and developp an application with these functionalities : ** Technical specifications: ** * Get temperature value from a connected sensor in openhab * Display the evolution of this temperature in a chart in ThingSpeak * Get temperature value in Biot thanks to OpenWeatherApp Web Service * Display the evolution of this temperature in a chart in ThingSpeak * Compute the difference between them and display the evolution of this value ** Question : ** Imagine you can get 100.000 measures like that in a Smart City. Do you have some applications in mind? ==== Optional Project ==== This project aims to use a IoT devices simulator in a Smart Home Context. To use it, you need Home I/O installation (the simulator) and to prepare a software configuration(see installation section above) to be able to access to the simulator with MQTT protocol. After that you can collect some data from virtual sensors in the simulator, send some commands to various actuators like lights, windows etc., move accross the virtual smart home scene and interact with virtual devices. For the most advanced student, feel free to imagine interesting applications and developp your own project in Smart Home. ==== Correction ==== ---- ([[cours:DS4HIoT:correcions|Corrections Page]]) ====== Back to IoT infrastructure concepts ====== ==== Main concepts ==== * IoT Infrastructure architecture : IoT Devices/Edge/Cloud * IoT are devices using sensors but also actuators to perceive and act in the real physical environment * Edge consists in a set of Gateway and/or local servers that exchange information to/from the IoT Devices from/to the Cloud, sometimes after local data processing * Edge Advantages : * Resilience: data processing doesn't depend on the Internet connection * Edge Disadvantages : * Costs for large-scale IoT system: required local resources are more and more expensive (more gateways, more servers, sometimes local datacenters, technicians for maintenance ...) * See simple costs model depending on the number of clients * Cloud provides web services but also data processing, data storage or even virtual machines * we distinguish three kinds of Cloud Software Infrastructures * IAAS, PAAS, SAAS * SAAS: Software as a service (SaaS) * PAAS: Platform as a service (SaaS) * IAAS: Infrastructure as a service (SaaS) * Cost Model : * Pricing Simulator * [[https://azure.microsoft.com/en-us/pricing/calculator/|Pricing Simulator for Microsoft Azure Cloud]] * Exercice: try to evaluate your own cost model depending on the number of clients (makes and comments all the hypotheses you need). ==== Main commercial platforms ==== Main Companies and their solutions: 10 of the famous platforms available today * MICROSOFT AZURE IOT HUB * IBM WATSON IOT PLATFORM * GOOGLE CLOUD PLATFORM * ORACLE * SALESFORCE * BOSCH * CISCO IOT CLOUD CONNECT * GENERAL ELECTRICS PREDIX * SAP * AWS AMAZON CLOUD ==== Price and Cost Model of IoT infrastructures ==== * This part will be discussed during the course. A synthesis will be produced by students and evaluate by the teacher. * An example of using a pricing and cost simulator of a cloud provider * [[https://azure.microsoft.com/en-us/pricing/#explore-cost|pricing and cost simulator for Microsoft Azure Platform]] ==== Use Cases Analysis ==== Find here different use cases. What kind of topics should be studied for a company? * What do you think about technical constraints in the use case you choose? * What do you think about cost and pricing in the use case you choose? * Anything else? * What can you plan to complete this studies? * {{:cours:emotorwerks-iot-case-study.pdf|}} * {{:cours:case-study-kitchen.pdf|}} * {{:cours:leading_tools_manufacturer_-_cisco.pdf|}} ==== Evaluation of the Course ==== Please fill this form before living: [[https://goo.gl/forms/gTvX1YHXTxCCr5Al2|Course Evaluation Form]]