#include <Arduino.h>
#include <ArduinoJson.h>
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* registrosEndpoint = "https://opensheet.elk.sh/1_BXCMTy_jb7ujJQK0x407Wy5ivHaqX3vK5ec8eQZQwU/Folha1";
DynamicJsonDocument registros(1024); // Armazenar registros da base de dados
void lerBaseDeDadosRegistros() {
HTTPClient http;
http.begin(registrosEndpoint);
int httpResponseCode = http.GET();
if (httpResponseCode == 200) {
String payload = http.getString();
DeserializationError error = deserializeJson(registros, payload); // Corrigindo a chamada da função
if (error) {
Serial.print(F("deserializeJson() falhou: "));
Serial.println(error.c_str());
}
}
http.end();
}
String obterNomeAssociado(String rfid) {
// Procura o nome associado ao UID da tag RFID na lista de registros
for (JsonObject registro : registros.as<JsonArray>()) {
if (registro.containsKey(rfid)) {
return registro[rfid].as<String>();
}
}
return ""; // Retorna vazio se não encontrado
}
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando ao WiFi...");
}
Serial.println("Conectado ao WiFi.");
}
void loop() {
if (Serial.available() > 0) {
String rfidDigitado = Serial.readStringUntil('\n');
rfidDigitado.trim(); // Remove espaços em branco extras
lerBaseDeDadosRegistros(); // Realiza a leitura dos registros da base de dados
String nomeAssociado = obterNomeAssociado(rfidDigitado);
if (nomeAssociado != "") {
Serial.println("Nome associado à tag RFID '" + rfidDigitado + "': " + nomeAssociado);
} else {
Serial.println("Tag RFID '" + rfidDigitado + "' não registrada.");
}
}
}