#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <uri/UriBraces.h>
#include "DHTesp.h"
#include <HTTPClient.h>
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define WIFI_CHANNEL 6
WebServer server(80);
const int PINO_DHT = 15;
String temperatura = "0";
String umidade = "0";
String token = "";
DHTesp sensorDHT;
void setup(void) {
Serial.begin(115200);
// Configuração do sensor DHT
sensorDHT.setup(PINO_DHT, DHTesp::DHT22);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
Serial.print("Conectando ao WiFi ");
Serial.print(WIFI_SSID);
// Aguardar a conexão WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Conectado!");
Serial.print("Endereço IP: ");
Serial.println(WiFi.localIP());
server.begin();
Serial.println("Servidor HTTP iniciado");
// Autenticar e obter o token
autenticar();
}
void autenticar() {
HTTPClient http;
// URL de login
String serverName = "https://web2-n2.onrender.com/logar";
// Preparar o corpo da requisição
String payload = "{\"email\": \"[email protected]\", \"senha\": \"davi123\"}";
// Iniciar requisição POST
http.begin(serverName);
http.addHeader("Content-Type", "application/json");
int httpCode = http.POST(payload);
Serial.println(httpCode);
String response = "{}";
if (httpCode > 0) {
response = http.getString();
// Extrair o token do JSON da resposta
int tokenIndex = response.indexOf("token");
if (tokenIndex > 0) {
token = response.substring(response.indexOf(":") + 2, response.lastIndexOf("\""));
Serial.println("Token recebido: " + token);
}
}
http.end();
}
void loop(void) {
TempAndHumidity dados = sensorDHT.getTempAndHumidity();
temperatura = String(dados.temperature, 2);
Serial.println(temperatura);
umidade = String(dados.humidity, 1);
if (WiFi.status() == WL_CONNECTED && token != "") {
WiFiClient client;
HTTPClient http;
// URL para enviar a temperatura
String serverName = "https://web2-n2.onrender.com/laboratorio/temperaturaAtual";
// Preparar o corpo da requisição
String payload = "{\"temperatura\": \"" + temperatura + "\"}";
// Iniciar requisição POST com token no cabeçalho
http.begin(serverName);
http.addHeader("Content-Type", "application/json");
http.addHeader("Authorization", "Bearer " + token);
int httpCode = http.POST(payload);
Serial.println(httpCode);
Serial.printf(http.errorToString(httpCode).c_str());
String response = "{}";
if (httpCode > 0) {
response = http.getString();
}
Serial.println(response);
http.end();
}
delay(5000);
}