#include "DHT.h"
#include <Adafruit_SSD1306.h>
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define ldr A0
int DHTPIN = 4;
int btn = 3;
int buzz = 6;
int led = 5;
int btnVal = 0;
int btnCount = 0;
float humidity = 0;
float tempC = 0;
float ldrV = 0;
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 oled(128,64);
void setup() {
pinMode(ldr, INPUT);
pinMode(btn, INPUT);
pinMode(led, OUTPUT);
pinMode(buzz, OUTPUT);
Serial.begin(9600);
dht.begin();
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.display();
}
void loop() {
//Reading button value
btnVal = digitalRead(btn);
//Reading light intensity
ldrV = analogRead(ldr);
// Reading temperature or humidity takes about 250 milliseconds!
humidity = dht.readHumidity();
tempC = dht.readTemperature();
if(btnVal == 0){
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
oled.setCursor(0,0);
oled.print("Light Value: ");
oled.print(ldrV);
oled.display();
digitalWrite(buzz, LOW);
digitalWrite(led, LOW);
}
else {
oled.clearDisplay();
oled.setCursor(0,0);
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
oled.print("Humidity: ");
oled.print(humidity);
oled.setCursor(0,10);
oled.print("Temperature: ");
oled.print(tempC);
oled.display();
if(tempC > 51){
digitalWrite(buzz, HIGH);
digitalWrite(led, HIGH);
}
}
Serial.println(tempC);
delay(1000);
}