Internet of Things with Microcontrollers: a hands-on course / L’Internet des Objets sur microcontrôleurs par la pratique

Por: France Université Numerique . en: , ,

Overview

About this course / À propos du cours

This course is an introduction to microcontroller programming for Internet of Things applications. It does not address the domestic or general uses of connected objects, nor their societal issues.
Considered as the third revolution of the Internet, the Internet of Things (IoT) is a natural evolution of technology, a link between the physical world and the digital world whose goal is to make our life easier.
With already billions of connected objects, the Internet of Things has a very wide range of applications including for instance home automation, agriculture, but also healthcare and industry...
The Internet of Things is a revolutionary paradigm enabling many new applications. For this revolution to be a success, it has to meet a lot of challenges among which:
  • Energy efficiency of the IoT devices for a long autonomy and energy saving
  • Interoperability between all the connected objects
  • Updates of the devices for a long-term use
  • Security of the IoT devices to prevent them from being hacked
  • Data privacy of the users

You are a developer, a computer science student, an engineer or just a maker fond of technology?
Be an IoT active player: don’t just consume things, create things!

This MOOC will help you understand the specificities of connected object programming through a mix of theoretical contents and hands-on activities.

At the end of the course, you will be able to develop an IoT application from the object to the cloud.

No need to possess specific hardware to take this course: you will be able to program and test your firmware using the FIT IoT-Lab testbed.

Most of the software and coding in the hands-on activities is based on the open source IoT operating system RIOT: this enables re-use of this code on a large variety of IoT devices, beyond hardware available through the FIT IoT-Lab testbed.

Ce cours est une initiation à la programmation sur microcontrôleurs pour les applications de l'Internet des objets. Il n'aborde pas les usages généraux ou domestiques des objets connectés, ni leurs enjeux sociétaux.
Considéré comme la troisième révolution de l'Internet, l'Internet des objets (Internet of Things ou IoT en anglais) est une évolution naturelle de la technologie, un lien entre le monde physique et le monde numérique dont l'objectif est de nous faciliter la vie.
Avec déjà des milliards d'objets connectés, l'Internet des objets a un très large éventail d'applications, notamment dans les domaines de la domotique, de l'agriculture mais aussi la santé ou l'industrie...
L'Internet des objets constitue un paradigme révolutionnaire qui offre une multitude de nouvelles applications. Pour que cette révolution soit un succès, elle doit relever de nombreux défis parmi lesquels :
  • L'efficacité énergétique des appareils IoT pour une plus grande autonomie et des économies d'énergie
  • L'intéropérabilité entre tous les objets connectés
  • La mise à jour des dispositifs pour un usage long terme
  • La sécurité des appareils IoT pour empêcher leur piratage
  • La protection des données des utilisateurs

Vous êtes un·e développeur·se, un·e étudiant·e en informatique, un·e ingénieur·e ou tout simplement un·e maker fan de technologie ?
Devenez acteur·rice de l'IoT : ne soyez pas uniquement consommateur·rice·s, devenez créateur·rice·s d'objets !

Ce MOOC vous aidera à comprendre les spécificités de la programmation d'objets connectés à travers une alliance de contenus théoriques et d'activités pratiques.

A la fin de ce cours vous serez capable de développer une application IoT de l'objet au cloud.

Pas besoin de posséder de matériel spécifique pour suivre ce cours : vous pourrez programmer et tester votre logiciel en utilisant la plateforme d'expérimentation FIT IoT-Lab.

La plupart du code et des exercices pratiques de programmation sont basés sur le système d'exploitation open source RIOT : ceci permet la réutilisation de ce code sur une large gamme de matériel IoT, au delà du matériel disponible sur la plateforme d'experimentation FIT IoT-Lab.

Format

This MOOC is composed of 6 modules combining:

  • textual course contents,
  • course videos,
  • tutorials
  • quizzes
  • hands-on activities with the use of Jupyter notebooks, the FIT IoT-Lab platform and the RIOT operating system.

The course is bilingual english / french: all the material is proposed in english and french, the videos are in english with english and french subtitles.

Ce MOOC est composé de 6 modules associant :
  • des contenus de cours textuels,
  • des vidéos,
  • des tutoriels,
  • des quiz
  • des activités pratiques avec l'utilisation de notebooks Jupyter, de la plateforme FIT IoT-Lab et du système d'exploitation RIOT.

Le cours est bilingue anglais / français : tous les contenus textuels sont proposés en anglais et français, les vidéos sont en anglais avec des sous-titres anglais et français.

Prerequisites / Prérequis

Following this course assumes the following prior knowledge:
  • Programming Basics in C and/or Python or Bash
  • Linux systems experience (use of command lines)
Pour suivre ce cours il est nécessaire de possèder les pré-requis suivants :
  • Bases de la programmation en C et/ou Python ou Bash
  • Connaissance des systèmes Linux (lignes de commandes)

Course Syllabus / Plan du cours

  • Module 1: Internet of Things: General Presentation
  • At the end of this module you will be able to provide a description of the IoT system from the device to the cloud.
  • Module 2: Focus on Hardware Aspects
  • At the end of this module you will be able to explain the hardware architecture of a connected device with the energy constraints associated. You will also be able to classify IoT devices according to their role or application.
  • Module 3: Focus on Embedded Softwares
  • At the end of this module you will be able to apply the specific programming principles for a connected object. You will also be able to describe the characteristics of the RIOT operating system.
  • Module 4: Focus on Low-Power Wireless Networks
  • At the end of this module you will be able to describe IoT communication protocols with the various networks layers. You will also be able to write your first IoT application using the Internet protocol CoAP in order to retrieve the values from a temperature sensor.
  • Module 5: Focus on LoRaWAN networks
  • At the end of this module, you will have an expertise of LoRaWAN networks, these networks specifically defined for the Internet of Things. You will be familiar with their main characteristics, the types of applications to which they are particularly adapted and will be able to configure them in IoT applications.
  • Module 6: Securing Connected Objects
  • At the end of this module you will be able to identify the security problems of connected objects and the existing solutions to overcome them.

  • Module 1 : Présentation générale de l'Internet des Objets
  • A la fin de ce module, vous obtiendrez une vision d'ensemble de la chaîne IoT, de l'objet au cloud.
  • Module 2 : Zoom sur les aspects matériels
  • A la fin de ce module, vous serez capable d'expliquer l'architecture matérielle d'un objet connecté avec les contraintes énergétiques liées. Vous serez également en mesure de classer les objets IoT par rôle ou application.
  • Module 3 : Zoom sur les logiciels embarqués
  • A la fin de ce module, vous serez capable d'appliquer les principes spécifiques de programmation d'un objet connecté et de décrire les caractéristiques du système d'exploitation RIOT.
  • Module 4 : Zoom sur les réseaux basse consommation sans-fil
  • A la fin de ce module, vous serez capable de décrire les protocoles de communication IoT avec les différentes couches réseaux. Vous serez également en mesure d'écrire votre première application IoT avec l'utilisation du protocole Internet CoAP pour récupérer les valeurs d'un capteur de température.
  • Module 5: Focus sur les réseaux LoRaWAN
  • À la fin de ce module, vous aurez une expertise des réseaux LoRaWAN, ces réseaux spécifiquement définis pour l'Internet des Objets. Vous connaîtrez leurs caractéristiques principales, saurez à quels types d'applications ils sont particulièrement adaptés et serez capable de les configurer pour y connecter un objet.
  • Module 6 : Sécurisation des objets connectés
  • A la fin de ce module, vous serez capable d'identifier les problèmes de sécurité des objets connectés et les solutions existantes pour les contourner.

Teachers / Enseignants

Alexandre Abadie

Alexandre Abadie is a research engineer at Inria Saclay - Île-de-France. He is a contributor and maintainer of RIOT, an operating system for the Internet of things and core team member of the FIT-IoT-LAB platform.
Alexandre Abadie est ingénieur de recherche chez Inria Saclay - Île-de-France. Il est contributeur et responsable de RIOT, un système d'exploitation pour l'Internet des objets. Il est l'un des membres de l'équipe FIT-IoT-LAB, plateforme d’expérimentation de l'IoT.

Emmanuel Baccelli

Emmanuel Baccelli is research scientist at Inria and Professor at Freie Universität Berlin. His research topics are computer networks, protocol design and performance evaluation, and embedded software. Emmanuel Baccelli is a co-founder and coordinator of RIOT.
Emmanuel Baccelli est chercheur en informatique chez Inria et Professeur à Freie Universität Berlin. Ses sujets de recherche sont les réseaux informatiques, la conception de protocoles et l'évaluation de performance, et le logiciel embarqué. Emmanuel Baccelli est cofondateur et coordinateur de RIOT.

Antoine Gallais

Antoine Gallais is a Professor at the Université Polytechnique Hauts-de-France, Valenciennes. His research topics include routing and MAC protocols for the Internet of Things, fault-tolerance and cybersecurity.
Antoine Gallais est Professeur à l'Université Polytechnique Hauts-de-France, Valenciennes. Sa recherche porte sur les protocoles de contrôle d'accès au medium et de routage pour l'Internet des objets, la tolérance aux pannes et la cybersécurité.

Olivier Gladin

Olivier Gladin worked for ten years in the video game industry and is now a research engineer in the experimentation and development team at Inria Saclay - Île-de-France where he works on very high-resolution wall-sized displays. He is also an IoT enthusiast.
Olivier Gladin a travaillé pendant dix dans l'industrie du jeu video et il est maintenant ingénieur de recherche dans l'équipe expérimentation et développement du centre Inria Saclay - Île-de-France où il s'occupe de murs d'écrans très haute résolution. C'est également un passionné d'IoT.

Nathalie Mitton

Nathalie Mitton is a research scientist at Inria (Lille Nord Europe). Her research interests focus on self-organization from PHY to routing for wireless networks composed of hardware constrained devices (battery-powered, low memory and CPU capacities) .
Nathalie Mitton est chercheur en informatique chez Inria (Lille Nord Europe). Sa recherche porte sur les mécanismes d’auto-organisation dans les réseaux de capteurs et de robots sans fil et systèmes RFID, de la couche physique à la couche réseau (réseaux composés d'objets contraints matériellement en termes de mémoire, énergie et CPU).

Frédéric Saint-Marcel

Frédéric Saint-Marcel is a research engineer at Inria Grenoble - Rhône-Alpes. Since 2012 he is the technical leader of FIT IoT-LAB development team focusing on Internet of Things and in charge of the testbed exploitation.
Frédéric Saint-Marcel est ingénieur de recherche chez Inria Grenoble -Rhône-Alpes. Depuis 2012 il est directeur technique de l'équipe de développement FIT IoT-LAB qui travaille sur l'Internet des objets et qui gère l'exploitation du testbed.

Guillaume Schreiner

Guillaume Schreiner is an engineer working for CNRS at ICube laboratory (UMR 7357) - Strasbourg. Since 2008, he's involved in SensLab and FIT IoT-LAB development, french research projects dealing with IoT. In 2015, he became technical head of ICube Inetlab testbed.
Guillaume Schreiner est ingénieur d'études au CNRS et travaille au laboratoire ICube (UMR 7357) à Strasbourg. Depuis 2008, il est impliqué dans les développements des projets ANR SenLab et Equipex FIT IoT-LAB liés au monde de l'Internet des Objets. En 2015, il devient responsable de la plateforme Inetlab de ICube.

Laurent Toutain

Laurent Toutain is a Lecturer and Researcher at IMT Atlantique, Rennes. He is in charge of the OCIF team (Communicating Objects and the Internet of the Future) which designs the Internet of Things by elaborating new algorithms, protocols and architectures for the interconnection of objects to the Internet.
Laurent Toutain est Enseignant Chercheur à l'IMT Atlantique, Rennes. Il est responsable de l’équipe OCIF (Objets communicants et Internet du Futur) qui conçoit l’Internet des Objets en élaborant de nouveaux algorithmes, protocoles et architectures pour l’interconnexion des objets à l’Internet.

Julien Vandaële

Julien Vandaële is a research engineer at Inria Lille - North Europe. Since 2008, he has been working in Nathalie Mitton's research team, being part of the developers team of the FIT IoT-LAB platform since its inception. He likes to get involved in innovative projects mixing IoT and embedded electronics, with scientific mediation as a background.
Julien Vandaële est ingénieur de recherche chez Inria Lille - Nord Europe. Il travaille depuis 2008 dans l'équipe de recherche de Nathalie Mitton, faisant partie de l'équipe des développeurs de la plateforme FIT IoT-LAB depuis ses débuts. Il aime s'impliquer dans des projets innovants mêlant IoT et électronique embarquée, sur fond de médiation scientifique.

Evaluation

At the end of the course, an attestation of achievement will be delivered to the participants who will have obtained the minimal score required. The evaluation is based on quizzes and peer assessment of hands-on activities.

A l'issue du cours, une attestation de suivi avec succès sera délivrée aux participants ayant obtenu la note minimale requise. L’évaluation est basée sur des quiz et sur une évaluation par les pairs d'activités pratiques.

Terms of use / Conditions d'utilisations

Terms of use of the course content

The videos are shared under Creative Commons License BY-NC-ND: the name of the author should always be mentioned ; the user can exploit the work except in a commercial context and he cannot make changes to the original work.

The other course contents are shared under Creative Commons License BY-NC: the name of the author should always be mentioned ; the user is free to share (copy and redistribute the material in any medium or format) except in a commercial context ; the user can adapt (remix, transform, and build upon) the material.

Conditions d’utilisation du contenu du cours

Les vidéos sont diffusées sous licence Creative Commons License BY-NC-ND: l’utilisateur doit mentionner le nom de l’auteur, il peut exploiter l’œuvre sauf dans un contexte commercial et il ne peut apporter de modifications à l’œuvre originale.

Les autres ressources du cours sont diffusées sous Licence Creative Commons BY-NC : l’utilisateur doit mentionner le nom de l’auteur, il peut exploiter l’œuvre sauf dans un contexte commercial et il peut apporter des modifications à l’œuvre originale.

Terms of use of the contents produced by users

The contents produced by users are shared under Creative Commons License BY-NC-ND: the name of the author should always be mentioned ; the user can exploit the work except in a commercial context and he cannot make changes to the original work.

Conditions d’utilisation des contenus produits par les participants

Les contenus produits par les participants sont, sauf mention contraire, sous Licence Creative Commons BY-NC-ND : l’utilisateur doit mentionner le nom de l’auteur, il peut exploiter l’œuvre sauf dans un contexte commercial et il ne peut apporter de modifications à l’œuvre originale.

Partners / Partenaires

This course is produced by / Ce cours est produit par

in collaboration with / en collaboration avec

Follow us on twitter @InriaLearnLab #MoocIoT

https://twitter.com/InriaLearnLab #MoocIoT