Par Jeremy Cook
Interagir avec un microcontrôleur via un réseau Wi-Fi pour un serveur web Arduino était autrefois quelque chose d’assez original. Aujourd’hui, vous pouvez mettre en place un serveur web local ESP32 en quelques minutes seulement en utilisant une carte ESP32 et l’IDE Arduino.
Pour cette démo, vous aurez besoin d’une Adafruit ESP32 Feather, ainsi que d’un accès à un réseau Wi-Fi fonctionnant à 2,4 GHz. Nous programmerons l’ESP32 à l’aide de l’IDE Arduino 2.0. Un aimant, une diode électroluminescente et une résistance sont également utilisés, mais ils sont facultatifs.
Préparation du logiciel du serveur Web ESP32
Commencez l’installation du serveur Web ESP32 en installant l’IDE Arduino 2.0. Pour que cela fonctionne avec les dispositifs ESP32, ouvrez le dialogue Arduino IDE > Préférences et ajoutez cette ligne dans le champ Additional Boards Manager URL :
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Naviguez vers Outils > Carte > Gestionnaire de cartes, et recherchez « esp32 ». Installez la définition de la carte « esp32 by Espressif Systems » qui s’affiche et vous serez en mesure de programmer des cartes ESP32, ainsi que d’accéder à une série d’exemples.
Contrôle du serveur par LED
Branchez votre carte ESP32 Feather à votre ordinateur via USB et sélectionnez le port approprié dans le menu déroulant à droite de l’icône de débogage. Une fois sélectionné, une liste de conseils s’affiche. Dans ce cas, tapez Adafruit esp32 et sélectionnez l’option Adafruit ESP32 Feather qui apparaît.
Naviguez vers Fichier > Exemples > WiFi et chargez SimpleWiFiServer. Modifiez les lignes de code 30 et 31 pour inclure votre SSID et votre mot de passe. Assurez-vous que vous accédez à un réseau 2,4 GHz si plusieurs options sont disponibles. Appuyez sur le bouton « charger » et le programme sera compilé et envoyé à votre carte.
Une fois programmé, l’ESP32 Feather tentera de se connecter à votre réseau. Ouvrez le moniteur série dans l’IDE Arduino (icône dans le coin supérieur droit) et réglez-le à 115200 bauds. Il indiquera une adresse IP pour l’accès, mais il se peut que vous deviez réinitialiser et/ou faire défiler vers le bas pour qu’elle s’affiche. Naviguez jusqu’à l’adresse IP indiquée dans votre navigateur et vous trouverez deux lignes de texte et des liens qui vous invitent à activer ou désactiver le pin 5.
Vous pouvez brancher une LED/résistance sur le pin 5 (comme indiqué dans la première image) pour permettre au code de fonctionner tel quel. Vous pouvez également le régler sur la LED intégrée pour éviter cette complication matérielle mineure. Pour ce faire, remplacez LED_BUILTIN par [pin] 5 sur les lignes 38, 103 et 106, et il s’allumera sans aucun matériel externe. Vous pouvez également remplacer « LED on pin 5 » par « builtin LED » dans les lignes 87 et 88 pour que l’interface utilisateur soit correcte. Rechargez pour que les modifications soient prises en compte.
Capteurs à effet Hall pour votre serveur web ESP32
Le contrôle à distance est une bonne chose, mais que voulez-vous que votre serveur web ESP32 détecte dans un endroit éloigné ? Ici, nous allons utiliser le capteur à effet Hall intégré au module ESP32-WROOM-32E pour trouver les champs magnétiques à proximité.
Ajoutez les lignes de code suivantes directement sous la fonction client.print à la ligne 88 :
int val = 0;
val = hallRead();
client.print("magnet status ");
client.print(val);
Ce code établit une variable « val » dans laquelle sont stockées les mesures de l’effet Hall. Il lit le capteur Hall embarqué et imprime les résultats sur le navigateur web du client. Notez qu’il s’agit d’une valeur analogique qui dépend de la direction du champ, comme indiqué dans cet article qui compare les capteurs à effet Hall et les interrupteurs à lames.
Image de Jeremy Cook
Pour tester, téléchargez le code sur votre ESP32 Feather et dirigez votre navigateur vers l’adresse IP correcte. Vous remarquerez maintenant une troisième ligne indiquant les relevés de champ magnétique.
Placez un aimant sur le module ESP32-WROOM-32E, puis actualisez votre navigateur. Cette valeur sera mise à jour en fonction du champ magnétique présent. Vous pouvez toujours éteindre et allumer les lumières en suivant les liens de la page ou en naviguant simplement vers les adresses correspondantes, mais cette action mettra également à jour la valeur du champ magnétique.
Aller plus loin avec le ESP32
Cet article explique comment mettre en place un serveur web très simple avec Arduino en utilisant une carte ESP32 et un réseau Wi-Fi. Les capacités Wi-Fi de l’ESP32 permettent d’accéder au Cloud et à l’Internet au sens large, moyennant une configuration adéquate. Ce module peut être utilisé dans une large gamme d’applications grand public, de bricolage et de prototypage.
Avant de créer votre serveur web ESP32 dans Arduino IDE, consultez la vaste sélection de produits des principaux fabricants sur Arrow.com, comme ceux ci-dessous, pour vous aider à démarrer.