serveur-web-led.ino

Arduino MKR WiFi 1010 · Archivo : serveur-web-led.ino · Lenguaje : Arduino · Uso : Commander une LED depuis une page web locale

La MKR WiFi 1010 se convierte en objeto conectado: aloja una página HTML ligera con dos enlaces que encienden o apagan un LED en el pin 6. Sin infraestructura cloud; la página se abre desde cualquier aparato de la red local, móvil incluido.

Hardware

Una Arduino MKR WiFi 1010 (microcontrolador SAMD21, módulo Wi-Fi WINC1500, sin Bluetooth, alimentación USB o LiPo en J6). MKR WiFi 1010, LED + resistencia de 330 Ω en el pin 6, la misma red WiFi que el teléfono.

Cableado

LED (+) → resistencia 330 Ω → pin 6, cátodo a GND; la IP impresa por serie se abre en el navegador.

Funcionamiento

WiFiServer escucha en el puerto 80; cada petición HTTP se lee hasta la primera línea, se compara con /on o /off y se devuelve una página mínima. El refresco muestra el estado actual.

Ejecución

Instala Arduino SAMD Boards y la librería WiFi101, selecciona la placa y carga. El Wi-Fi funciona solo en 2,4 GHz: comprueba que tu punto de acceso no sea solo de 5 GHz.

Variantes

Añade parámetros (?valor=512) para un potenciómetro digital o una etiqueta meta refresh para un estado que se actualice solo.

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();
}

← Volver a la ficha