Código Arduino:
#include <WiFiS3.h>
const char* ssid = "proyecto";
const char* password = "lalomora";
//Crear un servidor Web que escucha en el puerto 80
WiFiServer server(80);
const int ledPin = 13;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
//Serial.println("--- Inicio: intento DHCP primero ---");
WiFi.begin(ssid, password);
unsigned long start = millis();
const unsigned long dhcpTimeout = 8000; // ms
bool gotIP = false;
while (millis() - start < dhcpTimeout) {
if (WiFi.status() == WL_CONNECTED && WiFi.localIP() != IPAddress((uint32_t)0)) {
gotIP = true;
break;
}
Serial.print(".");
delay(500);
}
if (gotIP) {
Serial.println();
Serial.println("DHCP OK");
Serial.print("IP (DHCP): "); Serial.println(WiFi.localIP());
}
// info básica
Serial.print("SSID conectado: "); Serial.println(WiFi.SSID());
// iniciar servidor
server.begin();
//Serial.println("Servidor web iniciado en puerto 80");
}
void loop() {
WiFiClient client = server.available();
if (client) {
String request = client.readStringUntil('\r');
client.flush();
// Control LED
if (request.indexOf("/on") >= 0) {
digitalWrite(ledPin, HIGH);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/plain");
client.println();
client.println("LED ON");
}
else if (request.indexOf("/off") >= 0) {
digitalWrite(ledPin, LOW);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/plain");
client.println();
client.println("LED OFF");
}
else if (request.indexOf("/") >= 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/plain");
client.println();
client.println("OK"); // respuesta para verificar conexión
}
delay(1);
client.stop();
}
}
Proyecto de AppInventor