diff --git a/1-getting-started/Translations/README.fr.md b/1-getting-started/Translations/README.fr.md new file mode 100644 index 00000000..20f95a7a --- /dev/null +++ b/1-getting-started/Translations/README.fr.md @@ -0,0 +1,15 @@ +# Guide de démarage IoT +Dans cette section du tutoriel, vous serez initié à l'Internet des objets et apprendrez les concepts de base, notamment la construction de votre premier projet IoT « Hello, World!» connecté à l'infrastrucutre infonuagique. Ce projet est une veilleuse qui s'allume quand la lumière mesurée par un capteur diminue. + +![La DEL connecté au WIO s'allume et s'éteint en fonction de la luminosité](../../images/wio-running-assignment-1-1.gif) + +## Sujets + +1. [Introduction au IoT](../lessons/1-introduction-to-iot/translations/README.fr.md) +1. [Approfondir les IoT](../lessons/2-deeper-dive/translations/README.fr.md) +1. [Intéragir avec le monde physique à l'aide de capteur et actionneur](../lessons/3-sensors-and-actuators/translations/README.fr.md) +1. [Connecter votre appareil à Internet](../lessons/4-connect-internet/translations/README.fr.md) + +## Crédits + +Tous les leçons ont été écrite ♥️ par [Jim Bennett](https://GitHub.com/JimBobBennett) diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/README.fr.md b/1-getting-started/lessons/1-introduction-to-iot/translations/README.fr.md new file mode 100644 index 00000000..d3cb4fc2 --- /dev/null +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/README.fr.md @@ -0,0 +1,235 @@ +# Introduction aux IoT + +![Voici un aperçu de cette leçon sous forme d'illustré](../../../../sketchnotes/lesson-1.jpg) + +> Illustré par [Nitya Narasimhan](https://github.com/nitya). Cliquer sur l'image pour l'agrandir. + +Cette leçon a été enseigné dans le cadre de [Hello IoT series](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) à partir de [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn). Cette leçon a été enseigné en 2 vidéos - une leçon d'une heure et une autre heure pour approfondir les notions et répondre aux questions. + +[![Leçon 1: Introduction aux IoT](https://img.youtube.com/vi/bVFfcYh6UBw/0.jpg)](https://youtu.be/bVFfcYh6UBw) + +[![Leçon 1: Introduction aux IoT - Heures de bureau](https://img.youtube.com/vi/YI772q5v3yI/0.jpg)](https://youtu.be/YI772q5v3yI) + +> 🎥 Cliquer sur les images ci-dessus pour regarder les vidéos. + +## Questionnaire de pré-lecture + +[Questionnaire de pré-lecture](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/1) + +## Introduction + +Cette leçon couvre certains sujets d'introduction à l'Internet des objets et vous permet de configure votre matériel. + +Dans cette leçon nous couvrirons: + +* [Qu'est-ce que l'Internet des objets?](#what-is-the-internet-of-things) +* [Appareils IoT](#iot-devices) +* [Configurer votre appareil](#set-up-your-device) +* [Les applications IoT](#applications-of-iot) +* [Exemples d'appareils IoT près de vous](#examples-of-iot-devices-you-may-have-around-you) + +## Qu'est-ce que l'Internet des objets? + +Le terme « Internet des objets » a été créer par [Kevin Ashton](https://wikipedia.org/wiki/Kevin_Ashton) en 1999 pour imager la connection entre le monde physique et l'Internet via des capteurs. Depuis, le terme est utilisé pour décrire n'importe quel appareil qui intéragit avec le monde physique alentour, soit en collectant des données via des capteurs ou en intéragissant avec le monde réel via des actionneurs (appareils qui ouvre un interrupteur ou allume un DEL), généralement connecté à d'autres appareils ou Internet. + +> **Capteurs** collecte l'information du monde réel, tel que la vitesse, la température ou la localisation. +> +> **Actionneurs** convertit un signal électrique en interagissant avec le monde réel en déclencheant un interrupteur, allumant une DEL, jouant un son ou en envoyant un signal à un autre appareil, par exemple pour allimenter une prise de courant. + +Les IoT en tant que domaine technologique ne se limite pas seulement aux appareils: il comprend des services basé sur les technologies infonuagique qui traite les données collecté par le capteur ou envoie une requête aux actionneurs connectés aux appareils IoT. Ce domaine inclut aussi des appareils n'ayant pas de connectivité Internet ou qui n'en ont pas besoin, souvent référé en tant qu'appareils de périphérie. Ces appareils sont en mesure de répondre et traiter les données collectés par les capteurs eux-mêmes, généralement à l'aide de modèle d'AI créé dans l'infrastrucutre infonuagique. + +Le domaine des IoT est en pleine expansion. On estime qu'à la fin de 2020, 30 milliards de dispositifs IoT ont été déployés et connectés à Internet. Dans l'avenir, on estime que les appareils IoT collecteront près de 80 zettaoctets de données, soit 80 trillions de gigaoctets. C'est beaucoup de données! + +![Voici un graphique montrant les objets connecté dans le temps, avec une tendance à la hausse passant de moins de 5 millairds en 2015 à plus de 30 milliards en 2025](../../../../images/connected-iot-devices.svg) + +✅ Faites une petite recherche: Quel proportion des données générés par les objets connectés sont utilisé et quel proportion est gaspillé? Pourquoi y a-t-il autant de données ignorés? + +Ces données sont la clé du succès des IoT. Pour être un développeur IoT à succès, il faut comprenedre quel données vous devez collecter, comment les collecter, comment prendre une décision par rapport à ces données et comment utiliser ces décision pour intéragir avec le monde physique au besoin. + +## Appareils IoT + +Le **T** dans IoT tiens pour **Things**- objet qui intéragit avec le monde physique soit en collectant des données des capteurs ou en intéragissant avec le monde réel via des actionneurs. + +Les appareils destinés à la production ou à l'utilisation commercial tel que les dispositifs de suivi du conditionnment physique sont généralement fait sur mesure. Ils utilisent des circuits imprimés fait sur mesure, parfois même avec des processeurs fait sur mesure conçu pour rencontrés les spécificités d'une tâche particulière, qu'il s'agisse d'être suffisamment petit pour ttenir au poignet ou suffisamment robuste pour travailler dans de haute température, à forte contrainte ou à fortes vibrations. + + +En tant que développeur, que vous soyez en train d'apprendre au sujet des objets connectés ou que soyez en train de créer un prototype, vous devez commencer avec un ensemble de développeur. Il s'agit d'appareils IoT à usage général conçus pour être utilisés par les développeurs, souvent dotés de fonctionnalités que vous n'auriez pas sur un appareil de production, telles qu'un ensemble de broches externes auxquelles connecter des capteurs ou des actionneurs, du matériel pour prendre en charge le débogage ou des ressources supplémentaires qui ajouteraient des coûts inutiles lors d'une grande production. + +Ces ensembles de développement se divisent généralement en deux catégories : les microcontrôleurs et les ordinateurs monocartes. Ces derniers seront présentés ici, et nous entrerons dans les détails dans la prochaine leçon. + +> 💁 Votre téléphone peut également être considéré comme un dispositif IoT polyvalent, avec des capteurs et des actionneurs intégrés, différentes applications utilisant les capteurs et les actionneurs de différentes manières avec différents services infonuagiques. Vous pouvez même trouver des tutoriels sur l'IoT qui utilisent une application de téléphone comme dispositif IoT. + +### Microcontrôleurs + +Un microcontrôleur (également appelé MCU, abréviation de "microcontroller unit") est un petit ordinateur composé de: + +🧠 Une ou plusieurs unités centrales de traitement (CPU) - le "cerveau" du microcontrôleur qui exécute votre programme. + +💾 Mémoire (RAM et mémoire de programme) - où sont stockés votre programme, vos données et vos variables. + +🔌 Connexions d'entrée/sortie (E/S) programmables - pour communiquer avec des périphériques externes (objets connectés) tels que des capteurs et des actionneurs. + +Les microcontrôleurs sont généralement des dispositifs informatiques peu coûteux, le prix moyen des microcontrôleurs utilisés dans le matériel personnalisé se situant autour de $0,50 USD, et certains dispositifs ne coûtant que $0,03 USD. Les kits de développement peuvent commencer à partir de $4 USD, les coûts augmentant au fur et à mesure que l'on ajoute des fonctionnalités. Le [Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html), un ensemble de développement de microcontrôleur de [Seeed studios](https://www.seeedstudio.com) qui comprend des capteurs, des actionneurs, le WiFi et un écran, coûte environ $30 USD. + +![Voici un Terminal Wio](../../../../images/wio-terminal.png) + +> 💁 Lorsque vous recherchez des microcontrôleurs sur Internet, méfiez-vous de la recherche contenant le terme **MCU**, car vous obtiendrez de nombreux résultats concernant le Marvel Cinematic Universe, et non les microcontrôleurs. + +Les microcontrôleurs sont conçus pour être programmés afin d'effectuer un nombre limité de tâches très spécifiques, plutôt que d'être des ordinateurs à usage général comme les PC ou les Mac. À l'exception de scénarios très spécifiques, vous ne pouvez pas connecter un écran, un clavier et une souris et les utiliser pour des tâches générales. + +Les ensemble de développement de microcontrôleurs sont généralement livrés avec des capteurs et des actionneurs supplémentaires à bord. La plupart des cartes sont dotés d'une ou plusieurs DEL que vous pouvez programmer, ainsi que d'autres dispositifs tels que des connecteurs standard permettant d'ajouter d'autres capteurs ou actionneurs à l'aide d'écosystèmes de divers fabricants ou de capteurs intégrés (généralement les plus populaires comme les capteurs de température). Certains microcontrôleurs ont une connectivité sans fil intégrée, comme Bluetooth ou WiFi, ou ont des microcontrôleurs supplémentaires sur la carte pour ajouter cette connectivité. + +> 💁 Les microcontrôleurs sont généralement programmé en C/C++. + +### Ordinateur monocarte + + +Un ordinateur monocarte est un petit ordinateur qui possède tous les éléments d'un ordinateur complet contenue dans un ordinateur de la grosseur d'une carte de crédit. Ces appareils, qui ont des spécifications similaires à celles d'un ordinateur de bureau ou d'un ordinateur portable Pc ou Mac, mais sont plus petit et utilisent moins de puissance en plus d'être substantiellement moins dispendieux. + +![Voici un Raspberry Pi 4](../../../../images/raspberry-pi-4.jpg) + + +Le Raspberry Pi est un des ordinateurs monocarte les plus populaires. + + +Comme un microcontrôleur, les ordinateurs monocartes disposent d'une unité centrale, d'une mémoire et de broches d'entrée/sortie, mais ils possèdent des fonctionnalités supplémentaires telles qu'une puce graphique pour vous permettre de connecter des moniteurs, des sorties audio et des ports USB pour connecter des claviers, des souris et d'autres périphériques USB standard tels que des webcams ou un stockage externe. Les programmes sont stockés sur des cartes SD ou des disques durs avec un système d'exploitation, au lieu d'une puce mémoire intégrée à la carte. + +> 🎓 Vous pouvez considérer un ordinateur monocarte comme une version plus petite et moins chère du PC ou du Mac sur lequel vous lisez ces lignes, avec l'ajout de broches GPIO (entrées/sorties à usage général) pour interagir avec des capteurs et des actionneurs. + +Les ordinateurs monocartes sont des ordinateurs complets, qui peuvent donc être programmés dans n'importe quel langage. Les appareils IoT sont généralement programmés en Python. + +### Choix de matériel pour le reste de la leçon + +Toutes les leçons suivantes comprennent des tâches utilisant un dispositif IoT pour interagir avec le monde physique et communiquer avec le cloud. Chaque leçon prend en charge 3 choix de dispositifs - Arduino (à l'aide d'un terminal Wio de Seeed Studios), ou un ordinateur monocarte, soit un dispositif physique (un Raspberry Pi 4), soit un ordinateur monocarte virtuel fonctionnant sur votre PC ou Mac. + +Vous pouvez vous renseigner sur le matériel nécessaire à la réalisation de toutes les missions dans le [guide matériel](../../../../hardware.md). + +> 💁 Vous n'avez pas besoin d'acheter aucun matériel IoT pour compléter les tâches, vous pouvez utiliser un ordinateur monocarte virtuel. + +Le matériel que vous choisissez dépend de ce que vous avez à votre disposition à la maison ou à l'école, et du langage de programmation que vous connaissez ou que vous envisagez d'apprendre. Les deux variantes matérielles utiliseront le même écosystème de capteurs, de sorte que si vous vous engagez dans une voie, vous pourrez passer à l'autre sans devoir remplacer la majeure partie de l'ensemble. L'ordinateur monocarte virtuel sera l'équivalent de l'apprentissage sur un Raspberry Pi, la plupart du code pouvant être transféré sur le Pi si vous obtenez finalement un dispositif et des capteurs. + +### Ensemble de développement Arduino + + +Si vous souhaitez apprendre le développement de microcontrôleurs, vous pouvez effectuer les tâches à l'aide d'un dispositif Arduino. Vous aurez besoin d'une compréhension de base de la programmation C/C++, car les leçons n'enseignent que le code qui est pertinent pour le cadre Arduino, les capteurs et les actionneurs utilisés, et les bibliothèques qui interagissent avec l'infrastructure infonuagique. + +Les tâches utiliseront [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn) avec l'[extension PlatformIO pour le développement sur microcontrôleur](https://platformio.org). Vous pouvez aussi utiliser l'IDE Arduino si vous avez de l'expérience avec cet outil, car les instructions ne seront pas fournies. + +### Ensemble de développement pour ordinateur monocarte + +Si vous souhaitez apprendre le développement IoT à l'aide d'ordinateurs monocartes, vous pouvez réaliser les tâches à l'aide d'un Raspberry Pi, ou d'un dispositif virtuel fonctionnant sur votre PC ou votre Mac. + +Vous devrez avoir des connaissances de base en programmation Python, car les leçons n'enseignent que le code pertinent pour les capteurs et les actionneurs utilisés, ainsi que les bibliothèques qui interagissent avec l'infrastructure infonuagique. + +> 💁 Si vous souhaitez apprendre à coder en Python, consultez les deux séries de vidéos suivantes: +> +> * [Python pour débutant](https://channel9.msdn.com/Series/Intro-to-Python-Development?WT.mc_id=academic-17441-jabenn) +> * [Plus de python pour débutant](https://channel9.msdn.com/Series/More-Python-for-Beginners?WT.mc_id=academic-7372-jabenn) + +Les tâches vont utiliser [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn). + +Si vous utilisez un Raspberry Pi, vous pouvez soit faire fonctionner votre Pi en utilisant la version de bureau complète de Raspberry Pi OS, et faire tout le codage directement sur le Pi en utilisant [La version Raspberry Pi OS de Visual Studio Code](https://code.visualstudio.com/docs/setup/raspberry-pi?WT.mc_id=academic-17441-jabenn), ou faire fonctionner votre Pi comme un appareil sans tête et coder à partir de votre PC ou Mac en utilisant VS Code avec l'application [Extension SSH à distance](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn) qui vous permet de vous connecter à votre Pi et de modifier, déboguer et exécuter du code comme si vous codiez directement sur lui. + +If you use the virtual device option, you will code directly on your computer. Instead of accessing sensors and actuators, you will use a tool to simulate this hardware providing sensor values that you can define, and showing the results of actuators on screen. + +## Configurer votre dispositif + +Avant de pouvoir commencer à programmer votre appareil IoT, vous devez effectuer une petite configuration. Suivez les instructions ci-dessous en fonction de l'appareil que vous utiliserez. + +> 💁 Si vous n'avez pas encore d'appareil, référez-vous au [guide matériel](../../../../hardware.md) pour vous aider à choisir le dispositif que vous allez utiliser et du matériel supplémentaire que vous devez acheter. Vous n'avez pas besoin d'acheter du matériel, car tous les projets peuvent être exécutés sur du matériel virtuel. + +Ces instructions comprennent des liens vers des sites Web tierce partie créés par les créateurs du matériel ou des outils que vous utiliserez. Cela permet de s'assurer que vous utilisez toujours les instructions les plus récentes pour les différents outils et matériels. + +Utilisez le guide correspondant pour configurer votre appareil et réaliser un projet «Hello World». Ce sera la première étape de la création d'une veilleuse IoT au cours des 4 leçons de cette partie de mise en route. + +* [Arduino - Wio Terminal](wio-terminal.md) +* [Ordinateur monocarte - Raspberry Pi](pi.md) +* [Ordinateur moncarte - Dispositif virtuel](virtual-device.md) + +✅ Vous utiliserez VS Code pour les ordinateurs Arduino et Single-board. Si vous ne l'avez jamais utilisé auparavant, vous pouvez en apprendre davantage sur le [site Vs Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) + +## Applications IoT + +L'internet des objets couvrent une grande partie des cas d'utilisation répartis en quelques grands groupes: + +* IoT grand public +* IoT commercial +* IoT industriel +* IoT d'infrastructure + +✅ Faites une petite recherche : Pour chacun des domaines décrits ci-dessous, trouvez un exemple concret qui n'est pas donné dans le texte. + +### IoT grand public + +Le terme IoT grand public fait référence aux appareils IoT que les consommateurs achèteront et utiliseront à la maison. Certains de ces appareils sont incroyablement utiles, comme les haut-parleurs intelligents, les systèmes de chauffage intelligents et les aspirateurs robotisés. D'autres sont d'une utilité discutable, comme les robinets à commande vocale qui ne peuvent pas être éteints car la commande vocale ne peut pas vous entendre par-dessus le bruit de l'eau qui coule. + +Les dispositifs IoT grand public donnent aux gens les moyens d'en faire plus dans leur environnement, en particulier au milliard de personnes qui souffrent d'un handicap. Les aspirateurs robotisés peuvent fournir des sols propres aux personnes ayant des problèmes de mobilité qui ne peuvent pas passer l'aspirateur elles-mêmes, les fours à commande vocale permettent aux personnes ayant une vision ou un contrôle moteur limité de chauffer leurs fours avec leur seule voix, les moniteurs de santé peuvent permettre aux patients de surveiller eux-mêmes leurs maladies chroniques avec des mises à jour plus régulières et plus détaillées sur leur état. Ces appareils deviennent tellement omniprésents que même les jeunes enfants les utilisent dans leur vie quotidienne. Par exemple, les étudiants qui suivent une scolarité virtuelle pendant la pandémie de COVID règlent des minuteries sur des appareils domestiques intelligents pour suivre leurs travaux scolaires ou des alarmes pour leur rappeler les prochaines réunions de classe. + +✅ Quels sont les dispositifs IoT grand public que vous avez sur vous ou dans votre maison ? + +### Commercial IoT + +L'IoT commercial couvre l'utilisation de l'IoT sur le lieu de travail. Dans un bureau, il peut y avoir des capteurs d'occupation et des détecteurs de mouvement pour gérer l'éclairage et le chauffage afin de ne les laisser éteints que lorsqu'ils ne sont pas nécessaires, ce qui réduit les coûts et les émissions de carbone. Dans une usine, les dispositifs IoT peuvent surveiller les risques pour la sécurité, comme les travailleurs qui ne portent pas de casque de sécurité ou le bruit qui a atteint des niveaux dangereux. Dans le commerce de détail, les dispositifs IoT peuvent mesurer la température des chambres froides, alertant le propriétaire du magasin si un réfrigérateur ou un congélateur se trouve en dehors de la plage de température requise, ou ils peuvent surveiller les articles en rayon pour indiquer aux employés de réapprovisionner les produits qui ont été vendus. Le secteur des transports s'appuie de plus en plus sur l'Internet des objets pour surveiller l'emplacement des véhicules, suivre le kilométrage sur route pour la tarification des usagers de la route, suivre les heures de conduite et le respect des pauses, ou avertir le personnel lorsqu'un véhicule s'approche d'un dépôt pour préparer le chargement ou le déchargement. + +✅ Quels dispositifs commerciaux IoT avez-vous dans votre école ou sur votre lieu de travail ? + +### IoT industriel (IIoT) + +L'Internet des objets industriel, ou IIoT, est l'utilisation de dispositifs IoT pour contrôler et gérer des machines à grande échelle. Cela couvre un large éventail de cas d'utilisation, des usines à l'agriculture numérique. + +Les usines utilisent les dispositifs IoT de nombreuses façons différentes. Les machines peuvent être surveillées à l'aide de plusieurs capteurs pour suivre des éléments comme la température, les vibrations et la vitesse de rotation. Ces données peuvent ensuite être surveillées pour permettre d'arrêter la machine si elle sort de certaines tolérances - elle fonctionne trop chaudement et est arrêtée par exemple. Ces données peuvent également être recueillies et analysées au fil du temps pour effectuer une maintenance prédictive, où les modèles d'IA examinent les données qui ont conduit à une panne et s'en servent pour prédire d'autres pannes avant qu'elles ne se produisent. + +L'agriculture numérique est importante si l'on veut que la planète nourrisse la population croissante, en particulier pour les 2 milliards de personnes dans 500 millions de ménages qui survivent grâce à [l'agriculture de subsistance](https://wikipedia.org/wiki/Subsistence_agriculture). L'agriculture numérique peut aller de quelques capteurs sous les 10$ à des installations commerciales massives. Un agriculteur peut commencer par surveiller les températures et utiliser [jours de croissance](https://wikipedia.org/wiki/Growing_degree-day) pour prévoir quand une culture sera prête à être récoltée. Ils peuvent connecter la surveillance de l'humidité du sol à des systèmes d'arrosage automatisés pour donner à leurs plantes autant d'eau que nécessaire, mais pas plus, afin de s'assurer que leurs cultures ne se dessèchent pas sans gaspiller d'eau. Les agriculteurs vont même plus loin et utilisent des drones, des données satellitaires et l'IA pour surveiller la croissance des cultures, les maladies et la qualité des sols sur d'immenses étendues de terres agricoles. + +✅ Quels autres dispositifs IoT pourraient aider les agriculteurs ? + +### IoT d'infrastructure + +L'IoT des infrastructures consiste à surveiller et à contrôler les infrastructures locales et mondiales que les gens utilisent tous les jours. + +[Les villes connectées](https://wikipedia.org/wiki/Smart_city) sont des zones urbaines qui utilisent des dispositifs IoT pour recueillir des données sur la ville et les utiliser pour améliorer son fonctionnement. Ces villes sont généralement gérées par des collaborations entre les autorités locales, les universités et les entreprises locales, qui suivent et gèrent des éléments allant du transport au stationnement et à la pollution. Par exemple, à Copenhague, au Danemark, la pollution atmosphérique est importante pour les habitants. Elle est donc mesurée et les données sont utilisées pour fournir des informations sur les itinéraires de cyclisme et de jogging les plus propres. + +[Les réseaux électriques intelligents](https://wikipedia.org/wiki/Smart_grid) permettent une meilleure analyse de la demande d'électricité en recueillant des données d'utilisation au niveau des foyers individuels. Ces données peuvent guider les décisions au niveau national, notamment en ce qui concerne la construction de nouvelles centrales électriques, et au niveau personnel en donnant aux utilisateurs un aperçu de la quantité d'énergie qu'ils consomment, du moment où ils la consomment, et même des suggestions sur la manière de réduire les coûts, par exemple en chargeant les voitures électriques la nuit. + +✅ Si vous pouviez ajouter des dispositifs IoT pour mesurer quelque chose là où vous vivez, ce serait quoi ? + +## Exemples de dispositifs IoT que vous pouvez avoir autour de vous + +Vous seriez surpris du nombre d'appareils IoT que vous avez autour de vous. J'écris ces lignes depuis chez moi et j'ai les appareils suivants connectés à Internet et dotés de fonctionnalités intelligentes telles que le contrôle des applications, le contrôle vocal ou la possibilité de m'envoyer des données via mon téléphone : + +* Plusieurs haut-parleurs intelligents +* Réfrigérateur, lave-vaisselle, four et micro-onde +* Moniteur d'électricité pour panneaux solaires +* Prises intelligentes +* Sonnette vidéo et caméras de sécurité +* Thermostat intelligent avec plusieurs capteurs d'ambiance intelligents +* Contrôleur de portes de garage +* Systèmes de divertissement à domicile et téléviseurs à commande vocale +* Lumières +* Suivi de conditionnement physique + +Tous ces types d'appareils sont dotés de capteurs et/ou d'actionneurs et communiquent avec l'Internet. Je peux dire depuis mon téléphone si ma porte de garage est ouverte, et demander à mon enceinte intelligente de la fermer pour moi. Je peux même la programmer pour que, si elle est encore ouverte la nuit, elle se ferme automatiquement. Lorsque ma sonnette sonne, je peux voir depuis mon téléphone qui est là, où que je sois dans le monde, et lui parler via un haut-parleur et un microphone intégrés à la sonnette. Je peux surveiller ma glycémie, mon rythme cardiaque et mes habitudes de sommeil, en recherchant des modèles dans les données pour améliorer ma santé. Je peux contrôler mes lumières via l'infrastructure infonuagique, et rester dans le noir lorsque ma connexion Internet est coupée. + +--- + +## 🚀 Défi + +Dressez la liste du plus grand nombre possible de dispositifs IoT présents chez vous, à l'école ou sur votre lieu de travail - il y en a peut-être plus que vous ne le pensez ! + +## Questionnaire suivant la lecture + +[Questionnaire suivant la lecture](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/2) + +## Révision et études personnelles + +Renseignez-vous sur les avantages et les défauts des projets IoT grand public. Consultez les sites d'actualités pour trouver des articles sur les cas où cela a mal tourné, comme les problèmes de confidentialité, les problèmes de matériel ou les problèmes causés par le manque de connectivité. + +Quelques exemples: + +* Consultez le compte Twitter **[Internet of Sh*t](https://twitter.com/internetofshit)** *(profanity warning)* pour quelques bons exemples d'échec de dispositif IoT. +* [c|net - My Apple Watch saved my life: 5 people share their stories](https://www.cnet.com/news/apple-watch-lifesaving-health-features-read-5-peoples-stories/) +* [c|net - ADT technician pleads guilty to spying on customer camera feeds for years](https://www.cnet.com/news/adt-home-security-technician-pleads-guilty-to-spying-on-customer-camera-feeds-for-years/) *(trigger warning - non-consensual voyeurism)* + +## Tâche + +[Rechercher un projet IoT](assignment.md) diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/assignment.fr.md b/1-getting-started/lessons/1-introduction-to-iot/translations/assignment.fr.md new file mode 100644 index 00000000..58a5760d --- /dev/null +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/assignment.fr.md @@ -0,0 +1,13 @@ +# Recherche sur un projet IoT + +## Instructions + +De nombreux projets IoT à petite et grande échelle sont déployés dans le monde entier, des fermes intelligentes aux villes intelligentes, en passant par le suivi des soins de santé, les transports et l'utilisation des espaces publics. + +Recherchez sur le Web les détails d'un projet qui vous intéresse, idéalement un projet proche de votre lieu de résidence. Expliquez les avantages et les inconvénients du projet, comme les bénéfices qu'il procure, les problèmes qu'il pose et la manière dont la vie privée est prise en compte. + +## Rubrique + +| Critères | Exemplaire | Adéquat | Besoin d'amélioration | +| -------- | --------- | -------- | ----------------- | +| Expliquer les avantages et les inconvénients | Il a expliqué clairement les avantages et les inconvénients du projet. | Il a expliqué brièvement les avantages et les inconvénients. | Il n'a pas expliqué les avantages et les inconvénients.| diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/pi.fr.md b/1-getting-started/lessons/1-introduction-to-iot/translations/pi.fr.md new file mode 100644 index 00000000..88db17fd --- /dev/null +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/pi.fr.md @@ -0,0 +1,251 @@ +# Raspberry Pi + +Le [Raspberry Pi](https://raspberrypi.org) est un ordinateur monocarte. Vous pouvez ajouter des capteurs et des actionneurs en utilisant un large éventail de dispositifs et d'écosystèmes, et pour ces leçons, en utilisant un écosystème matériel appelé [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html). Vous allez coder votre Pi et accéder aux capteurs Grove en utilisant Python. + +![Raspberry Pi 4](../../../../images/raspberry-pi-4.jpg) + +## Configuration + +Si vous utilisez un Raspberry Pi comme matériel IoT, vous avez deux possibilités : vous pouvez suivre toutes ces leçons et coder directement sur le Pi, ou vous pouvez vous connecter à distance à un Pi "sans tête" et coder depuis votre ordinateur. + +Avant de commencer, vous devez également connecter le module Grove de base à votre Pi. + +### Tâche - configuration + +Installez le module de base Grove sur votre Pi et configurez le Pi. + +1. Connectez le module de base Grove à votre Pi. La prise du module s'adapte à toutes les broches GPIO du Pi, en glissant tout le long des broches pour s'asseoir fermement sur la base. Il se place sur le Pi, le recouvrant. + + ![Ajustement du module Grove](../../../../images/pi-grove-hat-fitting.gif) + +1. Décidez de la façon dont vous voulez programmer votre Pi, puis passez à la section correspondante ci-dessous: + + * [Travaillez directement sur votre Pi](#work-directly-on-your-pi) + * [Accès à distance pour coder le Pi](#remote-access-to-code-the-pi) + +### Travaillez directement sur votre Pi + +Si vous souhaitez travailler directement sur votre Pi, vous pouvez utiliser la version de bureau du Raspberry Pi OS et installer tous les outils dont vous avez besoin. + +#### Tâche - Travaillez directement sur votre Pi + +Configurez votre Pi pour le développement. + +1. Suivez les instructions du [Guide de configuration Raspberry Pi](https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up) pour configurer votre Pi, le connecter à un clavier/souris/moniteur, le connecter à votre réseau WiFi ou ethernet, et mettre à jour le logiciel. Le système d'exploitation que vous souhaitez installer est **Raspberry Pi OS (32 bit)**, il est affiché comme le système d'exploitation recommandé lorsque vous utilisez le créateur d'image Raspberry Pi pour créer une image de votre carte SD. + +Pour programmer le Pi à l'aide des capteurs et actionneurs Grove, vous devrez installer un éditeur qui vous permettra d'écrire le code du périphérique, ainsi que diverses bibliothèques et outils qui interagissent avec le matériel Grove. + +1. Une fois que votre Pi a redémarré, lancez le terminal en cliquant sur le bouton **Terminal** dans la barre du menu supérieur, ou choisissez *Menu -> Accessoires -> Terminal*. + +1. Exécutez la commande suivante pour vous assurer que le système d'exploitation et les logiciels installés sont à jour : + + ```sh + sudo apt update && sudo apt full-upgrade --yes + ``` + +1. Exécutez la commande suivante pour installer toutes les bibliothèques nécessaires au matériel Grove : + + ```sh + curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s - + ``` + + L'une des fonctionnalités puissantes de Python est la possibilité d'installer [Paquet pip](https://pypi.org) - Il s'agit de paquets de code écrits par d'autres personnes et publiés sur Internet. Vous pouvez installer un paquet Pip sur votre ordinateur à l'aide d'une commande, puis utiliser ce paquet dans votre code. Ce script d'installation Grove installera les paquets Pip que vous utiliserez pour travailler avec le matériel Grove à partir de Python. + + > 💁 Par défaut, lorsque vous installez un paquet, il est disponible partout sur votre ordinateur, ce qui peut entraîner des problèmes avec les versions des paquets - par exemple, une application dépendant d'une version d'un paquet qui se casse lorsque vous installez une nouvelle version pour une autre application. Pour contourner ce problème, vous pouvez utiliser un paquetage [Environnement virtuel Python](https://docs.python.org/3/library/venv.html), essentiellement une copie de Python dans un dossier dédié, et lorsque vous installez les paquets Pip, ils sont installés uniquement dans ce dossier. Vous n'utiliserez pas d'environnements virtuels lorsque vous utiliserez votre Pi. Le script d'installation de Grove installe les paquets Python Grove de manière globale. Pour utiliser un environnement virtuel, vous devrez donc configurer un environnement virtuel, puis réinstaller manuellement les paquets Grove dans cet environnement. Il est plus facile d'utiliser les paquets globaux, d'autant plus que de nombreux développeurs de Pi re-flashent une carte SD propre pour chaque projet. + +1. Redémarrez le Pi en utilisant le menu ou en exécutant la commande suivante dans le Terminal : + + ```sh + sudo reboot + ``` + +1. Une fois que le Pi a redémarré, relancez le terminal et exécutez la commande suivante pour l'installer [Visual Studio Code (VS Code)](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) - il s'agit de l'éditeur que vous utiliserez pour écrire le code de votre dispositif en Python. + + ```sh + sudo apt install code + ``` + + Une fois installé, VS Code sera disponible dans le menu supérieur. + + > 💁 Vous êtes libre d'utiliser n'importe quel IDE ou éditeur Python pour ces leçons si vous avez un outil préféré, mais les leçons donneront des instructions basées sur l'utilisation de VS Code. + +1. Installez Pylance. Il s'agit d'une extension pour VS Code qui fournit le support du langage Python. Référez-vous à la [documentation d'extension Pylance](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) pour obtenir des instructions sur l'installation de cette extension dans VS Code. + +### Accès à distance pour coder le Pi + +Plutôt que de coder directement sur le Pi, il peut fonctionner "sans tête", c'est-à-dire sans être connecté à un clavier/souris/moniteur, et configurer et coder sur lui depuis votre ordinateur, en utilisant Visual Studio Code. + +#### Configurer le système d'exploitation du Pi + +Pour coder à distance, le système d'exploitation du Pi doit être installé sur une carte SD. + +##### Tâche - Configurer le système d'exploitation du Pi + +Configurer l'OS Pi sans tête. + +1. Télécharger le **Créateur d'image Raspberry Pi** à partir de [Page du logiciel Raspberry Pi OS](https://www.raspberrypi.org/software/) et installer le. + +1. Insérez une carte SD dans votre ordinateur, en utilisant un adaptateur si nécessaire. + +1. Lancer le créateur d'image Raspberry Pi + +1. Dans le créateur d'image Raspberry Pi, appuyer sur le bouton **CHOOSE OS** , puis sélectionnez *Raspberry Pi OS (Other)*, suivi de *Raspberry Pi OS Lite (32-bit)*. + + ![Le créateur d'image Raspberry Pi avec Raspberry Pi OS Lite sélectionné](../../../../images/raspberry-pi-imager.png) + + > 💁 Raspberry Pi OS Lite est une version de Raspberry Pi OS qui n'a pas d'interface utilisateur de bureau ou d'outils basés sur l'interface utilisateur. Ceux-ci ne sont pas nécessaires pour un Pi sans tête et rendent l'installation plus petite et le temps de démarrage plus rapide. + +1. Sélectionner le bouton **CHOOSE STORAGE**, puis sélectionnez votre carte SD + +1. Lancer le **Advanced Options** en appuyant sur `Ctrl+Shift+X`. Ces options permettent une certaine pré-configuration du système d'exploitation du Raspberry Pi avant qu'il ne soit imagé sur la carte SD. + + 1. Cochez la case **Enable SSH**, et définissez un mot de passe pour l'utilisateur `pi`. Il s'agit du mot de passe que vous utiliserez plus tard pour vous connecter au Pi. + + 1. Si vous prévoyez de vous connecter au Pi via le WiFi, cochez la case **Configurer le WiFi** et saisissez votre SSID et votre mot de passe WiFi, ainsi que la sélection de votre pays WiFi. Vous n'avez pas besoin de faire cela si vous utilisez un câble Ethernet. Assurez-vous que le réseau auquel vous vous connectez est le même que celui de votre ordinateur. + + 1. Cochez la case **Set locale settings**, puis définissez votre pays et votre fuseau horaire. + + 1. Sélectionnez le bouton **SAVE**. + +1. Sélectionnez le bouton **WRITE** pour mettre le système d'exploitation sur la carte SD. Si vous utilisez macOS, il vous sera demandé de saisir votre mot de passe, car l'outil sous-jacent qui écrit les images disque nécessite un accès privilégié. + +Le système d'exploitation sera écrit sur la carte SD, et une fois terminé, la carte sera éjectée par le système d'exploitation, et vous en serez informé. Retirez la carte SD de votre ordinateur, insérez-la dans le Pi, allumez le Pi et attendez environ 2 minutes pour qu'il démarre correctement. + +#### Connectez-vous au Pi + +L'étape suivante consiste à accéder à distance au Pi. Vous pouvez le faire en utilisant `ssh`, qui est disponible sur macOS, Linux et les versions récentes de Windows. + +##### Tâche - se connecter au Pi + +Accéder à distance au Pi. + +1. Lancez un terminal ou une invite de commande, et entrez la commande suivante pour vous connecter au Pi: + + ```sh + ssh pi@raspberrypi.local + ``` + + Si vous êtes sous Windows et que vous utilisez une ancienne version qui n'a pas installé `ssh`, vous pouvez utiliser OpenSSH. Vous pouvez trouver les instructions d'installation dans la [documentation d'installation d'OpenSSH](https://docs.microsoft.com//windows-server/administration/openssh/openssh_install_firstuse?WT.mc_id=academic-17441-jabenn). + +1. Cela devrait se connecter à votre Pi et vous demander le mot de passe. + + Pouvoir trouver des ordinateurs sur votre réseau en utilisant `.local` est un ajout assez récent à Linux et Windows. Si vous utilisez Linux ou Windows et que vous obtenez des erreurs concernant le nom d'hôte introuvable, vous devrez installer un logiciel supplémentaire pour activer le réseau ZeroConf (également appelé Bonjour par Apple) : + + 1. Si vous utilisez Linux, installez Avahi en utilisant la commande suivante : + + ```sh + sudo apt-get install avahi-daemon + ``` + + 1. Si vous utilisez Windows, le moyen le plus simple d'activer ZeroConf est d'installer [Bonjour Print Services for Windows](http://support.apple.com/kb/DL999). Vous pouvez également installer [iTunes pour Windows](https://www.apple.com/itunes/download/) pour obtenir une version plus récente de l'utilitaire (qui n'est pas disponible en version autonome). + + > 💁 Si vous ne pouvez pas vous connecter en utilisant `raspberrypi.local`, alors vous pouvez utiliser l'adresse IP de votre Pi. Reportez-vous à la [documentation sur l'adresse IP de Raspberry Pi](https://www.raspberrypi.org/documentation/remote-access/ip-address.md) pour obtenir des instructions sur les différentes manières d'obtenir l'adresse IP. + +1. Saisissez le mot de passe que vous avez défini dans les options avancées du créateur d'image Raspberry Pi + +#### Configurer le logiciel sur le Pi + +Une fois que vous êtes connecté au Pi, vous devez vous assurer que le système d'exploitation est à jour et installer diverses bibliothèques et outils qui interagissent avec le matériel Grove. + +##### Tâche - configurer le logiciel sur le Pi + +Configurez les logiciels installés sur le Pi et installez les bibliothèques Grove. + +1. Depuis votre session `ssh`, exécutez la commande suivante pour mettre à jour puis redémarrer le Pi : + + ```sh + sudo apt update && sudo apt full-upgrade --yes && sudo reboot + ``` + + Le Pi sera mis à jour et redémarré. La session `ssh` se terminera lorsque le Pi sera redémarré, alors laissez-la pendant environ 30 secondes puis reconnectez-vous. + +1. Depuis la session `ssh` reconnectée, exécutez la commande suivante pour installer toutes les bibliothèques nécessaires au matériel Grove : + + ```sh + curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s - + ``` + + L'une des puissantes fonctionnalités de Python est la possibilité d'installer des [Paquets Pip](https://pypi.org). Il s'agit de paquets de code écrits par d'autres personnes et publiés sur Internet. Vous pouvez installer un paquet Pip sur votre ordinateur à l'aide d'une commande, puis utiliser ce paquet dans votre code. Ce script d'installation Grove installera les paquets Pip que vous utiliserez pour travailler avec le matériel Grove à partir de Python. + + + > 💁 Par défaut, lorsque vous installez un paquet, il est disponible partout sur votre ordinateur, ce qui peut entraîner des problèmes avec les versions des paquets - par exemple, une application dépendant d'une version d'un paquet qui se casse lorsque vous installez une nouvelle version pour une autre application. Pour contourner ce problème, vous pouvez utiliser un [environnement virtuel Python](https://docs.python.org/3/library/venv.html), essentiellement une copie de Python dans un dossier dédié, et lorsque vous installez les paquets Pip, ils sont installés uniquement dans ce dossier. Vous n'utiliserez pas d'environnement virtuel lorsque vous utiliserez votre Pi. Le script d'installation de Grove installe les paquets Python de Grove de manière globale. Pour utiliser un environnement virtuel, vous devrez donc configurer un environnement virtuel, puis réinstaller manuellement les paquets Grove dans cet environnement. Il est plus facile d'utiliser les paquets globaux, d'autant plus que de nombreux développeurs de Pi re-flashent une carte SD propre pour chaque projet. + + +1. Redémarrez le Pi en exécutant la commande suivante : + + ```sh + sudo reboot + ``` + + La session `ssh` se terminera lorsque le Pi sera redémarré. Il n'est pas nécessaire de se reconnecter. + +#### Configurer VS Code pour l'accès à distance + +Une fois le Pi configuré, vous pouvez vous y connecter à l'aide de Visual Studio Code (VS Code) depuis votre ordinateur. Il s'agit d'un éditeur de texte gratuit pour développeurs que vous utiliserez pour écrire le code de votre appareil en Python. + +##### Tâche - Configurer VS Code pour l'accès à distance + +Installez le logiciel requis et connectez-vous à distance à votre Pi + +1. Installez VS Code sur votre ordinateur en suivant la [documentation VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn). + +1. Suivez les instructions de la [documentation VS Code Développement à distance par SSH](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn) pour installer les composants nécessaires. + +1. En suivant les mêmes instructions, connectez VS Code au Pi + +1. Une fois connecté, suivez les instructions de [gestion des extensions](https://code.visualstudio.com/docs/remote/ssh#_managing-extensions?WT.mc_id=academic-17441-jabenn) pour installer l'[extension Pylance](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) à distance sur le Pi + +## Bonjour le monde + +Il est traditionnel, lorsqu'on débute avec un nouveau langage de programmation ou une nouvelle technologie, de créer une application "Hello World" - une petite application qui produit quelque chose comme le texte "Hello World" pour montrer que tous les outils sont correctement configurés. + +L'application 'Hello World' pour le Pi vous permettra de vérifier que vous avez installé correctement le code Python et Visual Studio. + +Cette application sera dans un dossier appelé `nightlight`, et elle sera réutilisée avec un code différent dans les parties ultérieures de ce travail pour construire l'application de veilleuse. + +### Tâche - Bonjour le monde + +Créez l'application 'Hello World'. + +1. Lancez VS Code, soit directement sur le Pi, soit sur votre ordinateur et connecté au Pi en utilisant l'extension SSH à distance. + +1. Lancez le terminal VS Code en sélectionnant *Terminal -> Nouveau terminal, ou en appuyant sur `` CTRL+``. Il s'ouvrira sur le répertoire personnel de l'utilisateur du `pi`. + +1. Exécutez les commandes suivantes pour créer un répertoire pour votre code, et créez un fichier Python appelé `app.py` dans ce répertoire : + + ```sh + mkdir nightlight + cd nightlight + touch app.py + ``` + +1. Ouvrez ce dossier dans VS Code en sélectionnant *File -> Open...* et en sélectionnant le dossier *nightlight*, puis sélectionnez **OK**. + + ![Le dialogue d'ouverture de VS Code montrant le dossier nightlight](../../../../images/vscode-open-nightlight-remote.png) + +1. Ouvrez le fichier `app.py` depuis l'explorateur de code VS et ajoutez le code suivant : + + ```python + print('Hello World!') + ``` + + La fonction `print` affiche sur la console ce qui lui est passé. + +1. Depuis le terminal VS Code, exécutez ce qui suit pour lancer votre application Python : + + ```sh + python3 app.py + ``` + + > 💁 Vous devez appeler explicitement `python3` pour exécuter ce code au cas où vous auriez installé Python 2 en plus de Python 3 (la dernière version). Si vous avez installé Python 2, l'appel à `python` utilisera Python 2 au lieu de Python 3. + + La sortie suivante apparaîtra dans le terminal: + + ``sortie + pi@raspberrypi:~/nightlight $ python3 app.py + Bonjour le monde ! + ``` + +> 💁 Vous pouvez trouver ce code dans le dossier [code/pi](code/pi). + +😀 Votre programme "Hello World" a été un succès ! diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.fr.md b/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.fr.md new file mode 100644 index 00000000..fbeea6eb --- /dev/null +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.fr.md @@ -0,0 +1,221 @@ +# Ordinateur monocarte virtuel + +Au lieu d'acheter un dispositif IoT, ainsi que des capteurs et des actionneurs, vous pouvez utiliser votre ordinateur pour simuler le matériel IoT. Le [projet CounterFit](https://github.com/CounterFit-IoT/CounterFit) vous permet d'exécuter localement une application qui simule du matériel IoT, comme des capteurs et des actionneurs, et d'accéder aux capteurs et aux actionneurs à partir d'un code Python local écrit de la même manière que le code que vous écririez sur un Raspberry Pi en utilisant du matériel physique. + + +## Configuration + +Pour utiliser CounterFit, vous devez installer un logiciel gratuit sur votre ordinateur. + +### Tâche + +Installez le logiciel requis. + +1. Installez Python. Reportez-vous à la page [Python downloads page](https://www.python.org/downloads/) pour obtenir des instructions sur l'installation de la dernière version de Python. + +1. Installez Visual Studio Code (VS Code). Il s'agit de l'éditeur que vous utiliserez pour écrire le code de votre dispositif virtuel en Python. Reportez-vous à la [documentation VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) pour obtenir des instructions sur l'installation de VS Code. + + > 💁 Vous êtes libre d'utiliser n'importe quel IDE ou éditeur Python pour ces leçons si vous avez un outil préféré, mais les leçons donneront des instructions basées sur l'utilisation de VS Code. + +1. Installez l'extension Pylance de VS Code. Il s'agit d'une extension pour VS Code qui fournit le support du langage Python. Reportez-vous à la [documentation de l'extension Pylance](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) pour obtenir des instructions sur l'installation de cette extension dans VS Code. + +Les instructions d'installation et de configuration de l'application CounterFit seront données au moment opportun dans les instructions de mission, car elle est installée sur la base de chaque projet. + +## Bonjour le monde + +Il est traditionnel, lorsqu'on commence à utiliser un nouveau langage de programmation ou une nouvelle technologie, de créer une application "Hello World" - une petite application qui produit quelque chose comme le texte "Hello World" pour montrer que tous les outils sont correctement configurés. + +L'application Hello World pour le matériel IoT virtuel s'assurera que les codes Python et Visual Studio sont correctement installés. Elle se connectera également à CounterFit pour les capteurs et actionneurs IoT virtuels. Elle n'utilisera aucun matériel, elle se connectera simplement pour prouver que tout fonctionne. + +Cette application sera dans un dossier appelé `nightlight`, et elle sera réutilisée avec un code différent dans les parties ultérieures de ce travail pour construire l'application de veilleuse. + +### Configurer un environnement virtuel Python + +L'une des puissantes fonctionnalités de Python est la possibilité d'installer des [Pip packages](https://pypi.org). Il s'agit de paquets de code écrits par d'autres personnes et publiés sur Internet. Vous pouvez installer un paquet Pip sur votre ordinateur à l'aide d'une seule commande, puis utiliser ce paquet dans votre code. Vous allez utiliser Pip pour installer un paquetage pour parler à CounterFit. + +Par défaut, lorsque vous installez un paquetage, il est disponible partout sur votre ordinateur, ce qui peut entraîner des problèmes avec les versions du paquetage - par exemple, une application dépendant d'une version d'un paquetage qui se casse lorsque vous installez une nouvelle version pour une autre application. Pour contourner ce problème, vous pouvez utiliser un [environnement virtuel Python](https://docs.python.org/3/library/venv.html), essentiellement une copie de Python dans un dossier dédié, et lorsque vous installez les paquets Pip, ils sont installés uniquement dans ce dossier. + +> 💁 Si vous utilisez un Raspberry Pi, vous n'avez pas configuré d'environnement virtuel sur ce périphérique pour gérer les paquets Pip, mais vous utilisez des paquets globaux, car les paquets Grove sont installés globalement par le script d'installation. + +#### Tâche - configurer un environnement virtuel Python + +Configurez un environnement virtuel Python et installez les paquets Pip pour CounterFit. + +1. À partir de votre terminal ou de votre ligne de commande, exécutez la commande suivante à l'endroit de votre choix pour créer et naviguer vers un nouveau répertoire : + + ```sh + mkdir nightlight + cd nightlight + ``` + +1. Exécutez maintenant ce qui suit pour créer un environnement virtuel dans le dossier `.venv`. + + ```sh + python3 -m venv .venv + ``` + + > 💁 Vous devez appeler explicitement `python3` pour créer l'environnement virtuel au cas où vous auriez installé Python 2 en plus de Python 3 (la dernière version). Si vous avez installé Python 2, l'appel de `python` utilisera Python 2 au lieu de Python 3. + +1. Activez l'environnement virtuel : + + * Sous Windows : + * Si vous utilisez l'Invite de commande, ou l'invite de commande via le Terminal Windows, exécutez : + + ```cmd + .venv\Scripts\activate.bat + ``` + + * Si vous utilisez PowerShell, exécutez : + + ```powershell + .\.venv\Scripts\Activate.ps1 + ``` + + * Sous macOS ou Linux, exécutez: + + ```cmd + source ./.venv/bin/activate + ``` + + > 💁 Ces commandes doivent être exécutées à partir du même endroit que celui où vous avez exécuté la commande de création de l'environnement virtuel. Vous n'aurez jamais besoin de naviguer dans le dossier `.venv`, vous devez toujours exécuter la commande d'activation et toutes les commandes pour installer des paquets ou exécuter du code à partir du dossier dans lequel vous étiez lorsque vous avez créé l'environnement virtuel. + +1. Une fois l'environnement virtuel activé, la commande `python` par défaut lancera la version de Python qui a été utilisée pour créer l'environnement virtuel. Exécutez la commande suivante pour obtenir la version: + + ```sh + python --version + ``` + + La sortie devrait contenir les éléments suivants: + + ```output + (.venv) ➜ nightlight python --version + Python 3.9.1 + ``` + + > 💁 Votre version de Python peut être différente - tant qu'il s'agit de la version 3.6 ou supérieure, tout va bien. Sinon, supprimez ce dossier, installez une version plus récente de Python et réessayez. + +1. Exécutez les commandes suivantes pour installer les paquets Pip pour CounterFit. Ces paquets comprennent l'application principale CounterFit ainsi que des cales pour le matériel Grove. Ces cales vous permettent d'écrire du code comme si vous programmiez à l'aide de capteurs et d'actionneurs physiques de l'écosystème Grove, mais connectés à des dispositifs IoT virtuels. + + ```sh + pip install CounterFit + pip install counterfit-connection + pip install counterfit-shims-grove + ``` + + Ces paquets pip ne seront installés que dans l'environnement virtuel, et ne seront pas disponibles en dehors de celui-ci. +### Écrire le code + +Une fois que l'environnement virtuel Python est prêt, vous pouvez écrire le code de l'application 'Hello World'. + +#### Tâche - écrire le code + +Créez une application Python pour imprimer `"Hello World"` à la console. + +1. Depuis votre terminal ou votre ligne de commande, exécutez ce qui suit à l'intérieur de l'environnement virtuel pour créer un fichier Python appelé `app.py` : + + * Depuis Windows, exécutez: + + ```cmd + type nul > app.py + ``` + + * Sous macOS ou Linux, exécutez: + + ```cmd + touch app.py + ``` + +1. Ouvrez le dossier actuel dans VS Code: + + ```sh + code . + ``` + + > 💁 Si votre terminal retourne `command not found` sous macOS, cela signifie que VS Code n'a pas été ajouté à votre PATH. Vous pouvez ajouter VS Code à votre PATH en suivant les instructions de la section [Lancement depuis la ligne de commande de la documentation VS Code](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) et exécuter la commande ensuite. VS Code est installé par défaut dans votre PATH sous Windows et Linux. + +1. Lorsque VS Code se lance, il active l'environnement virtuel Python. L'environnement virtuel sélectionné apparaîtra dans la barre d'état inférieure: + + ![Code VS montrant l'environnement virtuel sélectionné](../../../images/vscode-virtual-env.png) + +1. Si le terminal VS Code est déjà en cours d'exécution lorsque VS Code démarre, l'environnement virtuel n'y sera pas activé. La chose la plus simple à faire est de tuer le terminal en utilisant le bouton **Kill the active terminal instance** : + + ![Code VS Tuer le bouton d'instance du terminal actif](../../../images/vscode-kill-terminal.png) + + Vous pouvez savoir si l'environnement virtuel est activé sur le terminal car le nom de l'environnement virtuel sera un préfixe sur l'invite du terminal. Par exemple, il peut s'agir de: + + ```sh + (.venv) ➜ nightlight + ``` + + Si vous n'avez pas `.venv` comme préfixe à l'invite, l'environnement virtuel n'est pas actif dans le terminal. + +1. Lancez un nouveau terminal VS Code en sélectionnant *Terminal -> Nouveau terminal, ou en appuyant sur `` CTRL+``. Le nouveau terminal chargera l'environnement virtuel, et l'invite pour l'activer apparaîtra dans le terminal. L'invite aura également le nom de l'environnement virtuel (`.venv`): + + ```output + ➜ nightlight source .venv/bin/activate + (.venv) ➜ nightlight + ``` + +1. Ouvrez le fichier `app.py` depuis l'explorateur de code VS et ajoutez le code suivant: + + ```python + print('Hello World!') + ``` + + La fonction `print` imprime sur la console ce qui lui est passé. + +1. Depuis le terminal VS Code, exécutez ce qui suit pour lancer votre application Python: + + ```sh + python app.py + ``` + + Les éléments suivants figureront dans la sortie: + + ```output + (.venv) ➜ nightlight python app.py + Hello World! + ``` + +😀 Votre programme "Hello World" a été un succès! + +### Connectez le "matériel". + +Dans un deuxième temps, vous allez exécuter l'application CounterFit et y connecter votre code. C'est l'équivalent virtuel de la connexion d'un matériel IoT à un kit de développement. + +#### Tâche - connecter le "matériel". + +1. Depuis le terminal VS Code, lancez l'application CounterFit avec la commande suivante: + + ```sh + counterfit + ``` + + L'application commencera à fonctionner et s'ouvrira dans votre navigateur web: + + ![L'application Counter Fit fonctionnant dans un navigateur](../../../images/counterfit-first-run.png) + + Il sera marqué comme *Déconnecté*, avec la LED dans le coin supérieur droit éteinte. + +1. Ajoutez le code suivant au début du fichier `app.py`: + + ```python + from counterfit_connection import CounterFitConnection + CounterFitConnection.init('127.0.0.1', 5000) + ``` + + Ce code importe la classe `CounterFitConnection` du module `counterfit_connection`, qui provient du paquet pip `counterfit-connection` que vous avez installé précédemment. Il initialise ensuite une connexion à l'application CounterFit qui tourne sur `127.0.0.1`, qui est une adresse IP que vous pouvez toujours utiliser pour accéder à votre ordinateur local (souvent appelé *localhost*), sur le port 5000. + + > 💁 Si vous avez d'autres applications fonctionnant sur le port 5000, vous pouvez changer cela en mettant à jour le port dans le code, et en exécutant CounterFit en utilisant `CounterFit --port `, en remplaçant `` par le port que vous voulez utiliser. + +1. Vous devrez lancer un nouveau terminal VS Code en sélectionnant le bouton **Créer un nouveau terminal intégré**. Ceci est dû au fait que l'application CounterFit fonctionne dans le terminal actuel. + + ![Code VS Créer un nouveau bouton de terminal intégré](../../../images/vscode-new-terminal.png) + +1. Dans ce nouveau terminal, exécutez le fichier `app.py` comme précédemment. Le statut de CounterFit passera à **Connected** et la LED s'allumera. + + ![Counter Fit apparaît comme connecté](../../../images/counterfit-connected.png) + +> 💁 Vous pouvez trouver ce code dans le dossier[code/virtual-device](code/virtual-device). + +😀 Votre connexion au matériel a été un succès!