Formation Technologies de développement IoT
Description
Ce cours vise la maîtrise du langage Python pour le développement de vos projets liés à l'Internet des Objets. Cette formation de 15 jours vous donnera toutes les compétences nécessaires pour comprendre et mener à bien le développement de vos prototypages d'objets connectés.
Pré-requis
Connaissances en algorithmique
Table des matières
- Introduction
- La thématique, format et structure de la formation
- Les détails sur l'infrastructure, les labs, les exercices
- L'Internet des Objets (IdO, Internet of Things, IoT)
- Les concepts de base IoT
- Les architectures IoT
- Les problématiques de la communication et de l'énergie
- Les offres et acteurs
- Les architectures IoT
- Le schéma général d'architecture, des capteurs aux serveurs
- Les systèmes d'exploitation adaptés à l'IoT
- Le liens avec les différents solutions Cloud dédiées ou non pour l'IoT
- Les verticales diverses de la marche IoT
- Les formats/structures de données adaptée pour l'IoT
- Les formats de données : JSON, CBOR, XML, EXI, XMPP/XEP-0323
- Les technologies : AJAX, REST, micro-web-frameworks
- Les protocoles IoT haut-niveau
- Type "Broker" : MQTT, CoAP, AMQP, JMI...
- Type "Bus" (magistrale) : REST, XMPP, DDS...
- Autre type : TR-069/CWMP, LWM2M...
- Le prototypage
- La présentation des solutions et des plateformes : RaspberryPi, Arduino, EPS8266/NodeMCU, divers types de capteurs (analogique, numérique...)
- Les possibilités hardware Raspberry Pi, Arduino, ESP8266 (capteurs, shields, GPIO) et la programmation embarquée
- La transmission des données-capteurs : GPIO, UART, SPI, I2C, 1-wire
- Le choix d'un système d'exploitation et des outils de développement
- Approche Orientée Objet
- Les principes du paradigme Objet
- La définition d'un objet (état, comportement, identité)
- La notion de classe, d'attributs et de méthodes
- L'encapsulation des données
- La communication entre les objets
- L'héritage, transmission des caractéristiques d'une classe
- La notion de polymorphisme
- L'association entre classes
- Les interfaces
- Présentation d'UML
- Les diagrammes de classes, de séquences, d'activités...
- Notion de modèle de conception (Design Pattern)
- La programmation Objet en Python
- Les particularités du modèle objet de Python
- L'écriture de classes et leur instanciation
- Les constructeurs et les destructeurs
- La protection d'accès des attributs et des méthodes
- La nécessité du paramètre Self
- L'héritage simple, l'héritage multiple, le polymorphisme
- Les notions de visibilités
- Les méthodes spéciales
- L'introspection
- L'implémentation des interfaces
- Les bonnes pratiques et les modèles de conception courants
- L'utilisation du mécanisme d'exception pour la gestion des erreurs
- L'utilisation StdLib
- Les arguments passés sur la ligne de commande
- L'utilisation du moteur d'expressions régulières Python avec le module "re", les caractères spéciaux, les cardinalités
- La manipulation du système de fichiers
- Présentation de quelques modules importants de la bibliothèque standard : module "sys", "os", "os.path"
- Empaquetage et installation d'une bibliothèque Python
- Les accès aux bases de données relationnelles, le fonctionnement de la DB API
- L'outils QA
- Les outils d'analyse statique de code (Pylint, Pychecker)
- L'analyse des comptes rendus d'analyse (types de messages, avertissements, erreurs)
- Extraction automatique de documentation
- Le débogueur de Python (exécution pas à pas et analyse post-mortem)
- Le développement piloté par les tests
- Les modules de tests unitaires Python (Unittest...)
- L'automatisation des tests, l'agrégation de tests
- Les tests de couverture de code, profiling
- La création IHM TkInter
- Les principes de programmation des interfaces graphiques
- Présentation de la bibliothèque TkInter
- Les principaux conteneurs
- Présentation des widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text...)
- Le gestionnaire de fenêtres
- Le placement des composants, les différents layouts
- La gestion des événements, l'objet event
- Les applications multifenêtres
- L'interfaçage Python/C
- Présentation du module C types
- Le chargement d'une librairie C
- L'appel d'une fonction
- La réécriture d'une fonction Python en C avec l'API Python/C
- La création de modules C pour Python avec Pyrex
- L'interpréteur Python dans C
- L'utilisation du profileur de code