#include #include #include #include // Definiciones de pines y configuración #define PIN_BUTTON D1 // GPIO0 (D0) en ESP32 #define PIN_NEOPIXEL D10 // GPIO10 en ESP32 #define NUMPIXELS 71 // WiFi credentials const char* ssid = "iPhone"; const char* password = "Gb1234gb"; // Crear instancia del servidor web WebServer server(80); // Crear instancia de la tira de NeoPixels Adafruit_NeoPixel strip(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800); bool buttonPressed = false; uint32_t color = strip.Color(0, 0, 255); // Color inicial azul uint8_t brillo = 50; // Brillo inicial (50 de 255) void lightUpNeoPixels() { for (int i = 0; i < NUMPIXELS; i++) { strip.setPixelColor(i, color); } strip.show(); Serial.println("Neopixels encendidos con el nuevo color."); } void handleColor() { if (server.hasArg("color")) { String colorArg = server.arg("color"); Serial.print("Color recibido: "); Serial.println(colorArg); if (colorArg == "blue") { color = strip.Color(100, 149, 237); } else if (colorArg == "green") { color = strip.Color(143, 204, 0); } else if (colorArg == "purple") { color = strip.Color(102, 0, 102); } else if (colorArg == "yellow") { color = strip.Color(255, 255, 0); } lightUpNeoPixels(); server.send(200, "text/plain", "Color changed"); } else { server.send(400, "text/plain", "Missing color parameter"); } } void handleBrightness() { if (server.hasArg("level")) { brillo = server.arg("level").toInt(); strip.setBrightness(brillo); strip.show(); server.send(200, "text/plain", "Brightness changed"); } else { server.send(400, "text/plain", "Missing level parameter"); } } void setup() { // Inicializar botón pinMode(PIN_BUTTON, INPUT_PULLUP); // Activar resistencia pull-up interna // Inicializar NeoPixels strip.begin(); strip.setBrightness(brillo); strip.show(); // Inicializa todos los pixeles a "apagado" // Iniciar comunicación serie Serial.begin(115200); delay(4000); // Esperar un momento para estabilizar // Conectar a WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // Configurar rutas del servidor web server.on("/color", handleColor); server.on("/brillo", handleBrightness); // Iniciar servidor server.begin(); } void loop() { // Manejar solicitudes del servidor web server.handleClient(); // Verificar si el botón está presionado if (digitalRead(PIN_BUTTON) == LOW && !buttonPressed) { buttonPressed = true; Serial.println("Botón presionado"); lightUpNeoPixels(); } else if (digitalRead(PIN_BUTTON) == HIGH && buttonPressed) { buttonPressed = false; Serial.println("Botón liberado"); } if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin("https://gaby-app.onrender.com/api/gaby/"); // Especificar la URL de la API int httpCode = http.GET(); // Realizar la solicitud GET if (httpCode > 0) { String payload = http.getString(); Serial.println(httpCode); Serial.println(payload); } else { Serial.println("Error on HTTP request"); } http.end(); // Liberar recursos } delay(5000); // Esperar un tiempo antes de la próxima solicitud }