Retour aux projets

IoT : piloter une LED en Wi-Fi avec l'ESP8266

22/10/25

Projet de groupe : programmation d'un microcontrôleur ESP8266 pour le connecter au Wi-Fi, y héberger un petit serveur web et allumer ou éteindre sa LED depuis une page web.

ESP8266 Arduino (C++) Wi-Fi Serveur web JSON JavaScript

Contexte

TP de découverte de l'Internet des objets réalisé en groupe en octobre 2025. En partant du programme d'exemple « blink », qui fait clignoter une LED, il fallait faire évoluer le microcontrôleur ESP8266 jusqu'à pouvoir le commander à distance depuis un navigateur.

Objectifs

  • Comprendre le fonctionnement d'un microcontrôleur et pourquoi la fonction delay() bloque tout le programme
  • Connecter l'ESP8266 à un réseau Wi-Fi et récupérer ses informations réseau
  • Héberger un serveur web sur l'ESP8266
  • Créer des adresses pour allumer et éteindre la LED, et renvoyer son état en JSON
  • Piloter la LED depuis une page web grâce à l'API Fetch en JavaScript

Réalisation

  • Microcontrôleur : étude de l'ESP8266 (un seul processeur) et de la limite de delay(), avec une approche non bloquante basée sur millis()
  • Wi-Fi : connexion de l'ESP8266 via le partage de connexion d'un téléphone (le Wi-Fi de l'école ne permettant pas de joindre les autres appareils), affichage de son adresse IP, MAC, masque, passerelle et force du signal, puis test avec ping
  • Réseau : réflexion sur le choix entre DHCP et adresse IP fixe pour un objet connecté
  • Serveur web : page d'accueil servie par l'ESP8266, et adresses /on et /off qui allument et éteignent la LED en répondant au format JSON
  • Interface : page HTML avec deux boutons intégrée directement dans le programme de l'ESP8266

Compétences mobilisées

  • Répondre aux incidents et aux demandes : contournement des limites du réseau de l'école et débogage via le moniteur série
  • Mettre à disposition un service informatique : un objet connecté qui expose un service web simple
  • Travailler en mode projet : TP réalisé en groupe, étape par étape
  • Organiser son développement professionnel : première approche de l'IoT, de la programmation embarquée et des échanges en JSON

Captures d'écran

À compléter : ajouter ici les captures du projet (dossier src/screen projets).

Bilan

Ce TP m'a fait découvrir la programmation embarquée et ses contraintes : sur un microcontrôleur, un simple delay() bloque tout le reste. C'était aussi concret de voir un objet physique réagir à une requête web.

Nous n'avons pas terminé toutes les étapes : il resterait à finaliser le clignotement non bloquant, à ajouter l'adresse /state qui renvoie l'état de la LED, et à relier les boutons de la page à l'ESP8266 avec fetch pour piloter la LED sans changer de page.