#include "Credentials.h"
#define ESP32_MYSQL_DEBUG_PORT Serial
#define _ESP32_MYSQL_LOGLEVEL_ 1
#include <ESP32_MySQL.h>
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define USING_HOST_NAME true
#if USING_HOST_NAME
#else
IPAddress server(128, 100, 001, 010);
#endif
char default_database[] = "bbbuakezt99zx7akvjl9";
char default_table[] = "Temperatura";
ESP32_MySQL_Connection conn((Client *)&client);
ESP32_MySQL_Query *query_mem;
void setup()
{
Serial.begin(115200);
while (!Serial && millis() < 5000);
ESP32_MYSQL_DISPLAY1("\nStarting Basic_Insert_ESP on", ARDUINO_BOARD);
ESP32_MYSQL_DISPLAY1("Connecting to", ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
ESP32_MYSQL_DISPLAY0(".");
}
ESP32_MYSQL_DISPLAY1("Connected to network. My IP address is:", WiFi.localIP());
ESP32_MYSQL_DISPLAY3("Connecting to SQL Server @", server, ", Port =", server_port);
ESP32_MYSQL_DISPLAY5("User =", user, ", PW =", password, ", DB =", default_database);
dht.begin();
}
void runInsert()
{
float t = dht.readTemperature();
if (isnan(t)) {
ESP32_MYSQL_DISPLAY("Failed to read from DHT sensor!");
return;
}
unsigned long currentTime = millis(); // Obtém o tempo em milissegundos desde o início
// Supondo que você tenha um ID_SENSOR, caso contrário, pode ser necessário ajustar essa parte
int id_sensor = 1; // Ajuste conforme necessário, se tiver um sensor específico.
String INSERT_SQL = String("INSERT INTO ") + default_database + "." + default_table
+ " (ID_SENSOR, Temperatura, DATA_HORA)" + " VALUES ('" + id_sensor + "', '" + t + "', NOW())";
ESP32_MySQL_Query query_mem = ESP32_MySQL_Query(&conn);
if (conn.connected())
{
ESP32_MYSQL_DISPLAY(INSERT_SQL);
if ( !query_mem.execute(INSERT_SQL.c_str()) )
{
ESP32_MYSQL_DISPLAY("Insert error");
}
else
{
ESP32_MYSQL_DISPLAY("Data Inserted.");
}
}
else
{
ESP32_MYSQL_DISPLAY("Disconnected from Server. Can't insert.");
}
}
void loop()
{
ESP32_MYSQL_DISPLAY("Connecting...");
if (conn.connectNonBlocking(server, server_port, user, password) != RESULT_FAIL)
{
delay(500);
runInsert();
conn.close();
}
else
{
ESP32_MYSQL_DISPLAY("\nConnect failed. Trying again on next iteration.");
}
ESP32_MYSQL_DISPLAY("\nSleeping...");
ESP32_MYSQL_DISPLAY("================================================");
delay(10000); // A cada 10 segundos
}