#include "DHTesp.h"
const int dsPin = 15;
const int pot1Pin = 32;
const int pot2Pin = 33;
const int relayPin = 4;
int timer = 0;
DHTesp dht;
class Boiler
{
private:
int minTemp;
int maxTemp;
// TODO: set potenciometer
int maxWorkingTime;
void setTempRange(int minTemp, int maxTemp)
{
this->minTemp = minTemp;
this->maxTemp = maxTemp;
}
};
class TempRange
{
public:
int min;
int max;
TempRange(int pin1, int pin2)
{
min = map(analogRead(pin1), 0, 4095, -40, 80);
max = map(analogRead(pin2), 0, 4095, -40, 80);
}
void printToSerial()
{
Serial.print("min: ");
Serial.print(min);
Serial.print(", max: ");
Serial.println(max);
}
bool isInRange(float value)
{
if (min <= value && value <= max)
return true;
else
return false;
}
};
class DHTTemperature
{
public:
float temp;
DHTTemperature()
{
temp = dht.getTempAndHumidity().temperature;
}
void printToSerial()
{
Serial.print("temperature: ");
Serial.println(temp);
}
};
void setup() {
Serial.begin(115200);
dht.setup(dsPin, DHTesp::DHT22);
pinMode(relayPin, OUTPUT);
}
void loop() {
DHTTemperature dhtTemp;
float temp = dhtTemp.temp;
dhtTemp.printToSerial();
TempRange tempRange(pot1Pin, pot2Pin);
tempRange.printToSerial();
if (tempRange.isInRange(temp))
{
digitalWrite(relayPin, HIGH);
}
else
{
digitalWrite(relayPin, LOW);
}
timer++;
delay(1000);
}