La question de ce qu'il faut inclure dans le programme d'études lorsque vous commencez à concevoir un cours est complètement non triviale. Surtout s'il s'agit d'un cours IoT. Aujourd'hui, nous voulons partager notre expérience, comment nous avons développé le programme de formation pour
la Samsung IoT Academy , quels objectifs nous avons poursuivis et ce que nous avons fait.
Notre objectif principal était d'aider les universités à soulever le sujet de l'Internet des objets, et dans les domaines où il est difficile pour les universités de le faire elles-mêmes. En fait, les problèmes existants dans le domaine de l'Internet des objets, à commencer par une terminologie peu claire, le manque de normes communes et un «zoo» d'équipement, se terminant par l'absence de ce sujet dans les programmes des universités russes, sont devenus la base de la formulation des exigences:
- Le contenu du programme devrait répondre aux besoins du marché moderne: étude de cas réels de l'industrie de l'IoT, normes acceptées, équipements industriels, travaux de conception, etc.
- Le programme devrait avoir un seuil d'entrée suffisant pour un large éventail d'étudiants en informatique des spécialités techniques des universités techniques, c'est-à-dire être un "programme éducatif" sur l'Internet des objets.
- Le programme devrait conduire à la création de laboratoires dans les universités IoT, agissant comme un entonnoir pour la sélection des étudiants et des enseignants qui se retrouvent dans une énorme pile de technologies IoT.
Et c'est ce que nous avons obtenu.

À qui s'adresse ce cours?
Nous nous concentrons sur un étudiant qui a les compétences suivantes à l'entrée:
- Pratiques de base en génie logiciel: style de programmation, contrôle de version, expérience en auto-développement de projets pédagogiques ou personnels.
- Maîtrise d'un langage de programmation de haut niveau (Python, C ++, Java).
- Connaissance des bases de la programmation Web, le langage JavaScript.
- Capacité à travailler dans la console Linux.
Comme vous pouvez le voir, il n'y a rien de super compliqué, et nous nous attendons à ce que, au cours du 3-4e, l'étudiant les maîtrise parfaitement.
Et, bien sûr, l'essentiel - il devrait s'intéresser au sujet de l'Internet des objets.
Étuis
Ils ont décidé d'organiser le matériel sous la forme de cinq études de cas. Chacun est tiré de la vraie vie. De nombreux cas sont nés grâce à Oleg Artamonov, qui a suggéré de vraies histoires basées sur son expérience professionnelle unique.
Une caractéristique importante de nos cas: nous proposons des déclarations de problèmes qui sont proches de la façon dont un vrai client pourrait les livrer. Des tâches, il y a une transition vers les tâches, par exemple:
- Etudier la gamme des capteurs existants, sélectionner parmi eux le paramètre qualité-prix adapté au paramètre. Faites attention à la différence entre le capteur bon marché, le nouveau - l'ancien et le chinois - du capteur Bosch.
- Examinez les solutions existantes, notez les moments réussis et infructueux. Nous suggérons où chercher.
- Choisissez la technologie de communication appropriée: combien de routeurs devrez-vous installer si nous choisissons le WiFi? Combien de modules devrez-vous acheter si nous choisissons ZigBee? Quelle couverture obtenons-nous avec LoRa? Et ainsi de suite.
- Calculez la rentabilité de la solution. Estimez combien cela coûtera dans différentes configurations. Où acheter tout ça? Quel est le délai de livraison?
Il est proposé d'étudier ces questions en préparation de la leçon. Au cours de la discussion générale en classe animée par l'enseignant, l'élève comprend les avantages et les inconvénients des différentes solutions.
Passons brièvement en revue les cas:
Cas 1: Ferme et LoRa
Pour le premier cas, ils ont pris l'intrigue suivante: surveiller la température et l'humidité dans un entrepôt pharmaceutique. C'est une tâche vitale: l'insuline ne peut pas être congelée et les herbes médicinales ne peuvent pas être humides.
Dès le début, nous avons décidé de donner aux étudiants la possibilité de «ressentir» quelque chose de nouveau pour eux-mêmes. Et ce nouveau, qui est offert dans le premier boîtier, est la technologie sans fil LoRa. Pour ceux qui n'ont entendu parler que de BlueTooth et du WiFi, cela ressemble à de la science-fiction:
- La distance de transmission des données est de plusieurs kilomètres.
- Travaillez avec une seule batterie - plusieurs années.
- Les dimensions de l'émetteur-récepteur sont miniatures.
- Pas de frais mensuels pour l'opérateur: vous mettez votre borne d'accès et vous pouvez commencer à travailler.
Mais les miracles ne se produisent pas, et dans le cas de LoRa, nous obtenons des effets secondaires que les élèves ressentent dès qu'ils commencent à travailler avec du matériel:
- Taux de transfert de données très faible: vous vous ennuierez à l'arrivée du colis.
- Très petites quantités de données: lire les octets.
Parmi les composants, les étudiants reçoivent un module de microcontrôleur, un émetteur-récepteur LoRa et un capteur d'humidité, de température et de pression intégré. Le micrologiciel existant du module basé sur le système d'exploitation en temps réel RIOT OS est suffisamment développé pour se désengager complètement de ce qui se passe au niveau du microcontrôleur et permettre à l'étudiant de travailler immédiatement avec les données à un niveau élevé - le niveau d'écriture du programme d'application.
Composants du premier boîtier: microcontrôleur + émetteur-récepteur, adaptateur, capteurCas 2: serrure électronique et MQTT
La tâche éducative ici est le système de contrôle et de gestion des accès. Autrement dit, nous faisons un verrou qui, lors de la lecture d'une clé électronique, envoie des données au serveur.

Dans le cadre de Case, un atelier est organisé avec le protocole MQTT largement utilisé sur l'Internet des objets - à travers lui passent des données sensorielles, des actions de contrôle et toutes les informations reliant les nœuds du système.
Quelles tâches MQTT aide-t-il à résoudre:
- Séparez correctement les données des applications: pour que tout programmeur puisse réutiliser votre appareil avec son programme
- Établir une communication dans un langage commun entre des appareils hétérogènes de différents fabricants.
Malheureusement, les MQTT universitaires ne sont généralement pas étudiés. Et c'est intéressant car il est construit sur le modèle de "Publisher / Subscriber" et introduit le paradigme événementiel, que les étudiants ne peuvent voir que dans la programmation GUI.
Un petit bonus: sur cette tâche, vous pouvez tirer vers le haut les élèves qui «nagent» dans le sujet des circuits. Après tout, ici, ils devront activer le relais et contrôler la lampe RGB via un transistor.
Un microcontrôleur à deux modules: des transistors pour contrôler un ruban RGB et une unité de boutonCas 3. Éclairage adaptatif et 6LoWPAN
Tout le monde connaît la tâche d'économiser l'électricité: l'après-midi, lorsque le soleil est haut, la lumière est tamisée et quand il fait sombre le soir, rendez la lumière plus brillante.
Comme vous l'avez peut-être deviné, tout se résume à la tâche de la régulation automatique. Voici un exemple de graphe: sur l'axe Y - illumination en lux, sur l'axe X - instants temps. Le graphique montre le moment où la lumière ambiante a changé et l'appareil a commencé à s'adapter à la nouvelle valeur:

Voici un autre exercice pour ceux qui veulent resserrer les circuits. Les élèves apprendront ce qu'est le PWM (Pulse Width Modulation) et comment contrôler la luminosité d'une ampoule LED.
Dans le processus, qui ne sait pas comment - maîtriser l'oscilloscopeNous proposons de connecter chaque appareil dans un tel réseau d'ampoules et de capteurs en utilisant le protocole 6LoWPAN - c'est un autre nouveau protocole qui, contrairement à LoRa, fonctionne rapidement, a une petite portée de communication, mais peut créer un réseau maillé. Ce protocole est très adapté aux réseaux Smart Home, où la vitesse de réponse est critique et la distance est sans principes.
Enfin, dans ce cas, un autre concept est introduit - un micro-ordinateur en tant que centre central du système Internet des objets. Personne n'installera un ordinateur de bureau où il est plus compact et moins cher d'installer un micro-ordinateur sous Linux. Dans notre cas, il s'agit d'un ordinateur Artik fabriqué par Samsung. Vous pouvez y connecter le module de communication des protocoles LoRa ou 6LoWPAN décrits, puis l'utiliser comme serveur de votre système. Bien sûr, les étudiants auront besoin de compétences dans la console Linux.
Nous avons pompé l'ordinateur Samsung Artik 10 - lui avons fourni un module LoRa (sur la photo en blanc)Cas 4: Corbeille et cloud
L'intrigue de Case est une économie urbaine intelligente. Imaginez un système qui optimise les itinéraires des camions poubelles pour ne pas les conduire en vain. Ici, nous ne faisons qu'une partie de ce système.
Le cas se résume à suivre les paramètres suivants:
- Poubelle pleine - avec un télémètre à ultrasons
- La présence d'un incendie - à l'aide d'un capteur de température
- Localisation - à l'aide d'un capteur GPS.
La carte de déplacement du dispositif simulé. En réalité, presque personne ne peut se déplacer à Moscou à une telle vitesse.Dans ce cas, nous parlons de la plate-forme Internet des objets et du service cloud comme l'un de ses composants. La plateforme IoT accélère les tests et la mise en œuvre des solutions.
Pourquoi les technologies cloud sont-elles importantes? Lorsque le nombre d'appareils sur le réseau commence à croître de façon exponentielle, le coût de la maintenance de leurs serveurs oblige les entreprises à utiliser les services cloud. Les capacités du serveur cloud permettent d'utiliser avec succès les méthodes d'exploration de données. Par conséquent, nos plans sont d'ajouter aux cas des tâches compliquées liées à l'utilisation des méthodes d'apprentissage automatique.
Nous proposons aux étudiants de travailler avec la plateforme Samsung Artik Cloud. Il existe déjà
un article à ce sujet, nous ne le répéterons donc pas.
Cas 5: Serre et développement d'équipe
Et enfin, le dernier cas.
La parcelle, qui est considérée dans le cas, est une serre, et il y a suffisamment de sous-tâches: arrosage automatique, cycles d'éclairage quotidiens pour les plantes, interface utilisateur, exploitation forestière, traçage.
Écran GUI des étudiants de l'école d'été 2017Les outils de base sont déjà maîtrisés, nous nous concentrons sur le développement d'équipe. Nous organisons un petit jeu dans lequel l'enseignant joue le rôle du client, et les élèves jouent le rôle de l'équipe d'une petite entreprise de développement. Le «Client» exprime ses souhaits pour le système, et les étudiants doivent élaborer avec compétence les termes de référence, mettre en évidence les éléments les plus importants et les plus urgents de la fonctionnalité à mettre en œuvre, se répartir les tâches et sélectionner un chef de projet au sein du groupe.
Nous voulions démontrer aux étudiants les difficultés de communication entre le développeur et le client. Plongez-vous dans une situation où le client ne peut pas expliquer ce qu'il veut et où le développeur doit retirer les exigences du projet.
Comment se déroule le cours
À l'automne 2017, nous avons lancé notre programme d'études dans deux universités - MIPT et MIREA. Pour le premier semestre de l'année, les étudiants ont achevé des dossiers, et maintenant ils ont commencé à travailler individuellement sur leurs projets.
Tout le matériel est fourni dans un système de formation électronique. Nous avons même conçu des classeurs papier pour préparer les cours.

Plus de 100 étudiants se sont inscrits à la formation. Statistiques sur les résultats du premier semestre - dans la figure. Nous évaluons ce résultat comme bon: le cours était facultatif, mais les étudiants y ont assisté, malgré la charge de travail du programme principal.

Fait intéressant, parmi ceux qui ont quitté le cours, les réponses étaient diamétralement opposées: ils ont dit que c'était trop difficile ou trop facile!
Il semble que nous ayons deviné le niveau moyen des étudiants. Nous n'avons pas encore trouvé comment abaisser correctement le niveau d'entrée dans le programme, mais pour les gars forts, nous avons décidé de le proposer.
Plus proche du hardware
Initialement, nous n'avons pas inclus dans le cours la programmation de bas niveau des microcontrôleurs STM32 de l'ensemble de formation, croyant que les étudiants ne la maîtriseraient pas dans le temps imparti. Nous nous trompions! Le sujet a suscité un vif intérêt.
En conséquence, en plein milieu de l'année, l'Institut MIREA des TI a organisé un cours supplémentaire d'Oleg Artamonov «Programmation des microcontrôleurs modernes». Oleg construit son cours de haut en bas, c'est-à-dire qu'il suggère d'étudier le sujet par le biais de la programmation du système d'exploitation en temps réel RIOT OS. Sur nos ressources, vous pouvez trouver des
notes et des
vidéos de ses conférences.
Et au MIPT, les enseignants et les étudiants ont commencé à organiser leur propre cours sur le même sujet par eux-mêmes. De plus, nos jeunes professeurs du MIPT sont allés beaucoup plus loin dans le niveau d'abstraction: avant de travailler directement avec les registres. Voici leur
groupe VKontakte et leurs
conférences sur YouTube.
En résumant leur expérience, nous compléterons notre cours de base de l'IoT Academy pour la prochaine année scolaire. Après tout, il n'y a rien de mieux que de résoudre le problème à un niveau élevé, puis à un niveau bas, et de se sentir libre dans le monde des abstractions.
(Null, Lobur - Les bases de l'organisation et de l'architecture informatique)Et ensuite?
Comment évaluerons-nous les résultats du programme? Bien sûr, tout d'abord, selon les projets individuels finaux des diplômés. Tout d'abord, les projets seront protégés au niveau universitaire, puis nous organiserons un concours interuniversitaire.
Et en septembre 2018, nous lancerons un cours mis à jour dans 10 universités à travers la Russie:
- MIPT (Moscou)
- MIREA (Moscou)
- HSE (Moscou)
- SPbSU (Saint-Pétersbourg)
- NSTU (Novosibirsk)
- UrFU (Ekaterinbourg)
- KFU (Kazan)
- SUSU (Tcheliabinsk)
- TUSUR (Tomsk)
- NEFU (Yakutsk)
Il est curieux que notre cours, reflétant les spécificités d'une université particulière, acquière maintenant des caractéristiques distinctives. Par exemple:
- TUSUR (Tomsk) a choisi la sécurité de l'information comme direction de base du laboratoire IoT - nous attendons des travaux scientifiques et appliqués intéressants dans ce domaine le plus important de l'Internet des objets!
- À l'Université d'État de l'Oural du Sud (Tcheliabinsk), il a été décidé que le cours serait offert comme base pour plusieurs facultés à la fois - un total de plus de 500 étudiants (!)
- À l'Université fédérale de l'Oural (Iekaterinbourg), l'interdisciplinarité est d'une grande importance. L'équipe de professeurs: mathématicien, ingénieur circuit, programmeur, économiste, ingénieur radio, spécialiste de la sécurité et spécialiste de la vision industrielle!
L'Académie IoT de Samsung a une année scolaire intense mais très intéressante à venir.