#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SSD1306_I2C_ADDRESS 0x3C // Replace with your SSD1306 display I2C address
#define DHTTYPE DHT22
#define DHTPIN 12
int redPin = 9,bluePin = 8, greenPin = 7;
int ButtonUp = 3;
enum ledState {
goodTemperature,
hotTemperature,
coldTemperature
};
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
DHT dht(DHTPIN, DHTTYPE);
ledState state;
void setup() {
Serial.begin(9600);
Wire.begin(); // Initialize the Wire library
if (!display.begin(SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS)) { // Initialize the OLED display
Serial.println(F("SSD1306 allocation failed"));
for(;;); // if the display initialization failed, don't proceed
}
display.display();
// delay(1000);
}
void loop() {
// Wait a few seconds between measurements.
delay(1000);
float temp = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(temp) ) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
if(temp >= 15 && temp <= 27 )
state = goodTemperature;
else if (temp > 27)
state = hotTemperature;
else
state = coldTemperature;
switch(state){
case goodTemperature:
}
// display.clearDisplay();
// display.setTextSize(1);
// display.setTextColor(SSD1306_WHITE);
// display.setCursor(0, 0);
// display.println(F("Hello, World!"));
// display.display();
delay(2000);
}