Collège/3ème/Programmation/Objets Connectes/Créer un objet connecté avec ESP8266/ESP32

Créer un objet connecté avec ESP8266/ESP32

Programmation - 3ème

Créer un objet connecté avec ESP8266/ESP32

30 min+20 XPapprentissage

Objectifs

  • Comprendre le rôle d'un microcontrôleur ESP8266/ESP32 dans un objet connecté.
  • Programmer l'ESP pour lire un capteur (ex: température) et se connecter à un réseau Wi-Fi.
  • Envoyer les données collectées vers une plateforme en ligne pour visualisation à distance.

Introduction

Imaginez une plante qui vous envoie un SMS quand elle a soif, ou une boîte aux lettres qui s'allume quand vous avez du courrier. Ces objets ne sont plus de la science-fiction ! Aujourd'hui, nous allons apprendre à les créer nous-mêmes. Nous allons donner une 'intelligence' et une connexion à un objet du quotidien.

Comment programmer un microcontrôleur pour qu'il collecte des données et les transmette sur Internet, créant ainsi un objet connecté simple ?

Le cerveau et les sens : ESP et capteurs

Un objet connecté est composé de deux éléments principaux : un 'cerveau' électronique et des 'sens'. Le cerveau est un microcontrôleur, une petite puce programmable. Nous utiliserons l'ESP8266 ou l'ESP32, qui ont l'énorme avantage d'intégrer directement une puce Wi-Fi. C'est ce qui les rend parfaits pour nos projets. Pour percevoir son environnement, l'objet a besoin de capteurs. Un capteur transforme une grandeur physique (comme la température, la lumière, le mouvement) en un signal électrique que le microcontrôleur peut comprendre. Par exemple, une photorésistance verra sa résistance électrique varier en fonction de la lumière. L'ESP lit cette variation sur une de ses broches d'entrée analogique (notée, par exemple, A0). Concrètement, si on branche une photorésistance pour créer une veilleuse automatique, l'ESP mesure en permanence la luminosité. Si elle tombe en dessous d'un certain seuil (il fait nuit), il allume une LED branchée sur une autre broche. C'est la base de l'interaction avec le monde physique.

Points clés

  • L'ESP8266/ESP32 est un microcontrôleur avec Wi-Fi intégré.
  • Un capteur convertit une information physique (température, lumière) en signal électrique.
  • L'ESP lit les signaux des capteurs via ses broches d'entrée/sortie (GPIO).

Parler le langage de l'ESP : la programmation avec l'IDE Arduino

Pour dire à l'ESP quoi faire, nous devons le programmer. Nous utiliserons l'Environnement de Développement Intégré (IDE) Arduino, un logiciel gratuit. Bien que conçu à l'origine pour les cartes Arduino, il supporte très bien les ESP grâce à des bibliothèques supplémentaires. Nous écrirons notre programme, appelé 'sketch', en langage C++ simplifié. Un sketch a toujours deux fonctions obligatoires : `setup()` et `loop()`. La fonction `setup()` ne s'exécute qu'une fois, au démarrage. C'est là qu'on initialise les broches (en disant 'cette broche est une entrée pour le capteur', 'celle-ci est une sortie pour la LED') et qu'on établit la connexion Wi-Fi. La fonction `loop()` s'exécute en boucle, indéfiniment, comme un cœur qui bat. C'est le cœur du programme : on y lit la valeur du capteur, on prend une décision (ex: 'la température est > 25°C'), et on déclenche une action (ex: allumer un ventilateur). Pour se connecter au Wi-Fi, on utilisera des bibliothèques comme `WiFi.h` qui fournissent des fonctions simples comme `WiFi.begin("nom_du_reseau", "mot_de_passe")`.

Points clés

  • On programme l'ESP avec l'IDE Arduino en langage C++.
  • La fonction `setup()` initialise le programme une fois.
  • La fonction `loop()` contient les instructions qui se répètent en permanence.

Applications pratiques

Prenons l'exemple concret d'une station météo connectée. Matériel : un ESP32, un capteur de température/humidité DHT11, une breadboard et des fils. On branche le capteur à une broche de l'ESP. Dans le code, après la connexion Wi-Fi, dans la `loop()`, on lit la température toutes les 10 secondes. Ensuite, il faut envoyer ces données 'quelque part'. Nous pouvons utiliser un service gratuit et simple comme ThingSpeak ou Blynk. Ces plateformes fournissent une 'clé API' secrète, un identifiant pour notre objet. Notre programme envoie alors les données via une requête HTTP (le langage des pages web) à l'adresse du service. Par exemple : `http://api.thingspeak.com/update?api_key=TA_CLE&field1=22.5`. Sur le tableau de bord ThingSpeak, un graphique se trace automatiquement, visible depuis n'importe quel navigateur web dans le monde. Autre application : un détecteur de présence qui envoie une notification. Un capteur PIR détecte un mouvement, l'ESP envoie une requête vers un service comme IFTTT qui peut alors envoyer un email ou un message sur un téléphone.

Points clés

  • Projet type : station météo avec envoi de données sur ThingSpeak.
  • Les données sont envoyées via des requêtes HTTP vers une plateforme cloud.
  • La visualisation des données se fait sur un tableau de bord en ligne accessible à distance.

Sécurité et vie privée des objets connectés

Créer un objet connecté implique aussi des responsabilités. En connectant un objet à Internet, on l'expose à des risques. Il faut penser à deux aspects : la sécurité de l'objet lui-même et la protection des données qu'il génère. Premièrement, il faut toujours changer les mots de passe par défaut et utiliser des mots de passe forts pour le Wi-Fi et les comptes sur les plateformes cloud (comme ThingSpeak). Deuxièmement, il faut se demander quelles données sont collectées et où elles sont stockées. Par exemple, un thermomètre dans une chambre envoie des données sur vos habitudes. Il est essentiel de choisir des services de confiance qui protègent ces données. Dans nos projets en classe, nous utilisons des comptes éducatifs et des données non sensibles. Dans un projet réel, il faudrait aussi chiffrer les communications si elles sont sensibles. Un objet connecté mal sécurisé peut être piraté et utilisé pour attaquer d'autres réseaux. C'est pourquoi la sécurité doit être intégrée dès la conception, ce qu'on appelle 'security by design'.

Points clés

  • Toujours utiliser des mots de passe forts et uniques.
  • Être conscient des données personnelles collectées et de leur stockage.
  • La sécurité (mot de passe, services fiables) doit être pensée dès le début du projet.

À retenir

Un objet connecté repose sur un microcontrôleur ESP qui lit des capteurs et se connecte en Wi-Fi. On le programme avec l'IDE Arduino en définissant une initialisation dans `setup()` et des actions répétitives dans `loop()`. Les données sont envoyées via Internet vers des plateformes cloud pour être visualisées et exploitées à distance, en gardant à l'esprit les aspects de sécurité et de vie privée.

  • L'ESP est le cerveau Wi-Fi de l'objet, les capteurs sont ses sens.
  • Le programme a une structure fixe avec `setup()` (une fois) et `loop()` (toujours).
  • Les données remontent sur Internet via des requêtes HTTP vers des tableaux de bord cloud.
EdTech AI