#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFi.h>
//#include <IOXhop_FirebaseESP32.h>
#define FIREBASE_HOST "value"
#define FIREBASE_AUTH "value"
#define WIFI_SSID "value"
#define WIFI_PASSWORD "value"
#define DS18B20_Pin 2
#define tam 24
const int sensorPin = 5; // Pino DO do sensor conectado ao GPIO1 (D1) do ESP32
const int relayPin = 0;
float voltagens[60];
float dadosGravado[tam];
int cont = 0;
int contGravado = 0;
OneWire oneWire(DS18B20_Pin);
DallasTemperature sensors(&oneWire);
void setup() {
pinMode(relayPin, INPUT);
Serial.begin(115200);
/*
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
delay(500);
Serial.println("conectando ao WiFi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
*/
sensors.begin();
delay(1000);
//Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
void loop() {
voltromentro();
ArRele();
temperaturaDaSala();
}
void voltromentro() {
int sensorValue = analogRead(sensorPin);
float voltage = sensorValue / 1024. * 5;
Serial.print("Voltagem medida: ");
Serial.println(voltage);
const int numLeituras = 60;
float somaVoltagens = 0.0;
float media;
while (cont < numLeituras) {
if (voltage >= 100.00 && voltage <= 120.00) {
voltagens[cont] = voltage;
cont++;
} else if (voltage >= 0.0 && voltage < 100.00) {
voltagens[cont] = voltage + 1.0;
cont++;
}else {
for (int i = 0; i < numLeituras; i++) {
somaVoltagens += voltagens[i];
}
media = somaVoltagens / numLeituras;
dadosGravado[contGravado] = media;
contGravado++;
cont = 0;
}
}
for (int i = 0; i < numLeituras; i++) {
somaVoltagens += voltagens[i];
}
media = somaVoltagens / numLeituras;
Serial.print("Voltagem medida: ");
Serial.println(media);
dadosVolt();
delay(5000);
}
int dadosVolt(){
if(contGravado == tam){
float somaGravado = 0.0;
for (int i = 0; i < tam; i++) {
somaGravado += dadosGravado[i];
}
float media = somaGravado / tam;
Serial.print("Voltagem medida: ");
Serial.println(media);
//grava o dados de um dia!! A hora enviado.
// resetar
contGravado = 0;
return true;
}else{
return false;
}
}
void ArRele() {
int relayState = digitalRead(relayPin);
if (relayState == HIGH) {
Serial.println("Ar-condicionado ligado!");
} else {
Serial.println("Ar-condicionado desligado!");
}
delay(5000);
}
// 4.7kΩ no temperatura
void temperaturaDaSala() {
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(2);
Serial.print("Temperatura da sala: ");
Serial.print(tempC);
Serial.println(" °C");
delay(5000);
}
// o NO e pra conectar no aparelho