Skip to content

no found #25

@EluJLM

Description

@EluJLM

#include <Arduino.h>
#include <ESPSupabase.h>

#if defined(ESP8266)
#include <ESP8266WiFi.h>
#else
#include <WiFi.h>
#endif

Supabase db;

// Tu configuración de Supabase

String table = "ping";

// Tus credenciales de WiFi
const char *ssid = "VALENCIA";
const char *password = "07561163";

// Lista de colores primarios
String colors[] = {"rojo", "naranja", "amarillo", "verde", "azul", "indigo", "violeta"};
const int numColors = 7;

// Configuración de IP estática
IPAddress staticIP(192, 168, 1, 100);
IPAddress gateway(192, 168, 1, 1); // Generalmente la dirección del router
IPAddress subnet(255, 255, 255, 0); // Máscara de subred común
IPAddress dns(192, 168, 1, 1);

void setup() {
Serial.begin(115200);

// Conectando a Wi-Fi
Serial.print("Conectando a WiFi");

WiFi.config(staticIP, gateway, subnet, dns);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println("Connected!");
Serial.print("Dirección IP asignada: ");
Serial.println(WiFi.localIP());

// Inicializando la conexión a Supabase
db.begin(supabase_url, anon_key);

readLastColor(); // Leer el último color al inicio
delay(500);
writeRandomColor(); // Escribir un color aleatorio al inicio

// No es necesario resetear la query aquí, se hace dentro de las funciones
}

void loop() {
delay(3 * 24 * 60 * 60 * 1000); // Esperar 3 días (en milisegundos)
readLastColor();
writeRandomColor();
}

void readLastColor() {
Serial.println("Leyendo el último color...");
String response = db.from(table)
.select("*")
.doSelect();
Serial.println("Respuesta de lectura: " + response);

// Aquí podrías necesitar analizar la respuesta JSON para extraer el valor del color
// La estructura de la respuesta dependerá de la librería ESPSupabase.
// Generalmente, será un array JSON con un objeto dentro.

// Ejemplo de cómo podrías intentar extraer el color (dependerá de la librería):
int startIndex = response.indexOf(""color":"");
if (startIndex != -1) {
startIndex += 9; // Saltar la cadena ""color":""
int endIndex = response.indexOf(""", startIndex);
if (endIndex != -1) {
String lastColor = response.substring(startIndex, endIndex);
Serial.println("Último color en la tabla: " + lastColor);
} else {
Serial.println("Error al parsear el valor del color.");
}
} else {
Serial.println("No se encontró el campo 'color' en la respuesta.");
}

db.urlQuery_reset(); // Resetear la query para la siguiente operación
}

void writeRandomColor() {
int randomIndex = random(numColors);
String randomColor = colors[randomIndex];
Serial.printf("Escribiendo color: %s...\n", randomColor.c_str());
String jsonPayload = "{"color": "" + randomColor + ""}";
int responseCode = db.insert(table, jsonPayload, false); // upsert = false para una inserción simple
Serial.printf("Código de respuesta de escritura: %d\n", responseCode);
db.urlQuery_reset(); // Resetear la query
}
no funciona borre los url y el anon para pegarlo aqui, el codigo se para en "leyendo el ultimo color"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions