#include "DHTesp.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, -1);
DHTesp dhtSensor;
void setup() {
// put your setup code here, to run once:
// Serial.println("Hello, ESP32!");
pinMode(12, INPUT);
pinMode(14, INPUT);
pinMode(26, INPUT);
dhtSensor.setup(26, DHTesp::DHT22);
pinMode(0, OUTPUT);
pinMode(16, OUTPUT);
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
}
void loop() {
// put your main code here, to run repeatedly:
int sensorValue = digitalRead(12);
int button_state = digitalRead(14);
// float temp_reading = digitalRead(26);
if(button_state == HIGH)
{
// Serial.println("Button on");
digitalWrite(0, HIGH);
}
else
{
// Serial.println("Button off");
if(sensorValue == HIGH)
{
// Serial.println("sensor low light");
digitalWrite(0, HIGH);
}
else
{
// Serial.println("sensor high light");
digitalWrite(0, LOW);
}
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// Serial.print("temp_reading: ");
// Serial.println(data.temperature);
// Serial.println("---");
float room_temp = data.temperature;
display.clearDisplay();
display.setTextSize(1.2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.print("Temp: ");
display.print(data.temperature);
display.println(" C");
display.display();
if(room_temp >= 35.0 && room_temp < 40.0)
{
tone(16, 1000, 500);
delay(2000);
}
else if(room_temp >= 40.0)
{
tone(16, 1000, 500);
delay(1000);
}
// delay(1000);
}