#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define DISPLAY_BOYI 64
#define DISPLAY_ENI 128
#define DHTPIN 2
#define DHT_TURI DHT22
#define KOTARISH 6
#define TUSHIRISH 5
Adafruit_SSD1306 display(DISPLAY_ENI, DISPLAY_BOYI, &Wire, -1);
DHT dht(DHTPIN, DHT_TURI);
int joriyHarorat = 0;
int joriyNamlik = 0;
int kiritilganTemp = 25;
void setup() {
Serial.begin(9600);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 bog'lanishda xatolik"));
}
display.clearDisplay();
pinMode(KOTARISH, INPUT);
pinMode(TUSHIRISH, INPUT);
dht.begin();
}
void loop() {
readSensorData();
handleButtons();
displayData();
delay(500);
}
void readSensorData() {
joriyHarorat = dht.readTemperature();
joriyNamlik = dht.readHumidity();
}
void handleButtons() {
if (digitalRead(KOTARISH) == HIGH ) {
kiritilganTemp++;
Serial.println("Ko'tarish bosildi");
}
if (digitalRead(TUSHIRISH) == HIGH ) {
kiritilganTemp--;
Serial.println("Tushirish bosildi");
}
}
void displayData() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print(F("Harorat: "));
display.print(joriyHarorat);
display.println(F(" C"));
display.setCursor(0, 10);
display.print(F("Namlik: "));
display.print(joriyNamlik);
display.println(F("%"));
display.setCursor(0, 20);
display.print(F("Kiritilgan: "));
display.print(kiritilganTemp);
display.println(F(" C"));
display.display();
}