🛠 Serveur web embarqué : piloter la matrice depuis le navigateur

Arduino UNO R4 WiFi · intermediaire · Schéma : IMG-uno-r4-wifi-intermediaire-3-ur4wifi-webserver-matrice.svg — UNO R4 WiFi reliée en WiFi à une box, un navigateur affichant un bouton ON/OFF, flèche HTTP GET /led=on vers la carte, matrice LED allumée ou éteinte.

Objectifs

Transformer la carte en serveur web : la bibliothèque WiFiS3 fournit WiFiServer pour écouter le port 80, recevoir une requête HTTP d'un navigateur et renvoyer une page HTML. Vous piloterez la matrice LED par de simples liens GET — l'ossature de toute interface de contrôle embarquée.

Matériel

Code complet

#include <WiFiS3.h>
#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;
WiFiServer server(80);

const char* SSID = "votre-réseau";
const char* PASS = "votre-cle";

void setup {
  Serial.begin(115200);
  WiFi.begin(SSID, PASS);
  while (WiFi.status != WL_CONNECTED) { delay(200); }
  Serial.print(F("Ouvrir http://")); Serial.println(WiFi.localIP);
  matrix.begin;
  server.begin;
}

void loop {
  WiFiClient client = server.available;
  if (!client) { return; }

  String requête = "";
  while (client.connected && !requête.endsWith("\r\n")) {
    if (client.available) {
      requête = client.readStringUntil('\r');   // 1re ligne = GET /chemin HTTP/1.1
      break;
    }
  }

  bool on = requête.indexOf("led=on") >= 0;
  matrix.beginFrame;
  for (uint8_t c = 0; c < 12; c++) matrix.setColumn(c, on ? B11111111 : 0);
  matrix.show;

  client.println(F("HTTP/1.1 200 OK"));
  client.println(F("Content-Type: text/html"));
  client.println(F("Connection: close"));
  client.println;
  client.println(F("<html><body style='font-family:sans-serif'>"));
  client.println(on ? F("<h2>Matrice ALLUMEE</h2>") : F("<h2>Matrice ETEINTE</h2>"));
  client.println(F("<a href='/led=on'><button>ON</button></a> "));
  client.println(F("<a href='/led=off'><button>OFF</button></a>"));
  client.println(F("</body></html>"));
  client.stop;   // indispensable, sinon le navigateur tourne en boucle
}

Vérification attendue

Le Moniteur affiche une URL http://192.168.x.x ; ouverte dans le navigateur, elle montre deux boutons. Un clic sur ON allume les 96 LED, OFF les éteint. Chaque clic génère une requête visible si vous affichez requete sur le Moniteur.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels