serveur-web-led.ino

Arduino MKR WiFi 1010 · Fichier : serveur-web-led.ino · Langage : Arduino · Usage : Commander une LED depuis une page web locale

La MKR WiFi 1010 devient un objet connecté : elle héberge une page HTML-lite avec deux liens qui allument ou éteignent une LED sur la broche 6. Aucune infrastructure cloud — la page s'ouvre depuis n'importe quel appareil du réseau local, smartphone compris.

Matériel requis

Une Arduino MKR WiFi 1010 (microcontrôleur SAMD21, module Wi-Fi WINC1500, pas de Bluetooth, alimentation USB ou LiPo sur J6). MKR WiFi 1010, LED + résistance 330 Ω sur la broche 6, même réseau WiFi que le téléphone.

Câblage

LED (+) → résistance 330 Ω → broche 6, cathode vers GND ; l'IP affichée série s'ouvre dans le navigateur.

Fonctionnement

WiFiServer écoute le port 80 ; chaque requête HTTP est lue jusqu'à la première ligne, comparée à /on ou /off, puis une page minimale est renvoyée. Le rafraîchissement montre l'état courant.

Exécution

Installez Arduino SAMD Boards et la bibliothèque WiFi101, sélectionnez la carte, téléversez. Le Wi-Fi fonctionne en 2,4 GHz uniquement : vérifiez que votre point d'accès n'est pas en 5 GHz seul.

Variantes

Ajoutez des paramètres (?valeur=512) pour un potentiomètre numérique, ou une balise meta refresh pour un état qui se met à jour seul.

serveur-web-led.ino

// Serveur web MKR WiFi 1010 : /on et /off pilotent la LED broche 6.
#include <SPI.h>
#include <WiFi101.h>

const char SSID[] = "MonReseau";
const char PASS[] = "motdepassewifi";

WiFiServer serveur(80);
const int LED = 6;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  WiFi.begin(WPA_PASS_PHRASE, SSID, PASS);
  while (WiFi.status() != WL_CONNECTED) delay(100); // IP via DHCP
  Serial.println(WiFi.localIP()); // a ouvrir dans le navigateur
  serveur.begin();
}

void loop() {
  WiFiClient client = serveur.available();
  if (!client) return;
  String requete = client.readStringUntil('
'); // ligne GET /...
  if (requete.startsWith("GET /on")) digitalWrite(LED, HIGH);
  if (requete.startsWith("GET /off")) digitalWrite(LED, LOW);
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html\r\n");
  client.println("<a href='/on'>ALLUMER</a><br>");
  client.println("<a href='/off'>ETEINDRE</a><br>");
  client.println(digitalRead(LED) ? "LED : ON" : "LED : OFF");
  delay(10);
  client.stop();
}

← Retour à la fiche