serveur-web-led.ino
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();
}