/* ESP32 WiFi Scanning example */
#include <HTTPClient.h>
#include <WiFi.h>
#include "DHTesp.h"
#include <ESPSupabase.h>
// Configurações do Wi-Fi
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const int LDR_PIN = 34;
const int DHT_PIN = 22;
DHTesp dhtSensor;
Supabase sb;
// URL da API da Supabase
const char* supabase_url = "https://nmnypmqusuecpiacoltm.supabase.co";
const char* anon_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im5tbnlwbXF1c3VlY3BpYWNvbHRtIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MjY1Mjg0NTMsImV4cCI6MjA0MjEwNDQ1M30.shI-oqtvFcQDj9ag_ay68bEuH2ZWcKoP97o5nJUsms8";
const char* table = "Sensores";
bool upsert = false;
void setup() {
Serial.begin(115200);
delay(1000);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Serial.println("Inicializando WiFi...");
WiFi.mode(WIFI_STA);
Serial.println("Setup feito!");
Serial.println("Procurando...");
// WiFi.scanNetworks will return the number of networks found
int n = WiFi.scanNetworks();
Serial.println("Procura feita!");
if (n == 0) {
Serial.println("Redes não foram encontradas. Tentando novamente");
while (n == 0)
Serial.println(". ");
delay(0.1);
n = WiFi.scanNetworks();
} else {
Serial.println();
Serial.print(n);
Serial.println(" redes disponíveis!");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*");
delay(10);
Serial.print("Connectando a ");
Serial.print(WiFi.SSID(i));
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Conectado!");
}
}
Serial.println("");
}
void loop() {
// Wait a bit before scanning again
delay(5000);
// read temperature
float temp = dhtSensor.getTemperature();
Serial.println("Temperatura: " + String(temp));
// read humidity
float humi = dhtSensor.getHumidity();
Serial.println("Umidade: " + String(humi));
float light = analogRead(LDR_PIN);
Serial.println("Luz: " + String(light));
// You can also use library like ArduinoJson generate this
String JSON = "{\"temperatura\": " + String(temp) + ", \"umidade\": " + String(humi) + ", \"luminosidade\": " + String(light) + "}";
// Beginning Supabase Connection
sb.begin(supabase_url, anon_key);
int code = sb.insert(table, JSON, upsert);
// Verifica se a operação foi bem-sucedida (geralmente códigos 200-299 indicam sucesso)
if (code >= 200 && code < 300) {
Serial.println("Conexão bem-sucedida! Código: " + String(code));
} else {
Serial.println("Falha na conexão! Código: " + String(code));
}
Serial.println(code);
// Resetando query e aguardando
sb.urlQuery_reset();
delay(5000);
}